1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
probe syscall.open {
actualLength = strlen (filename);
if (actualLength > 5 && actualLength < 15 && filename != "<unknown>") {
four = 4;
five = 5;
fifteen = 15;
success = 1;
expected_1_1 = sprintf ("%.1s", filename);
testName = "%m default width and precision";
result = sprintf ("%m", $filename);
if (result != expected_1_1) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_5_5 = sprintf ("%.5s", filename);
testName = "%m static precision smaller than input";
result = sprintf ("%.5m", $filename);
if (result != expected_5_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic precision smaller than input";
result = sprintf ("%.*m", five, $filename);
if (result != expected_5_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic precision equal to input";
expected_actual_actual = filename;
result = sprintf ("%.*m", actualLength, $filename);
if (result != expected_actual_actual) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_5_1 = sprintf (" %.1s", filename);
testName = "%m static width default precision";
result = sprintf ("%5m", $filename);
if (result != expected_5_1) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic width default precision";
result = sprintf ("%*m", five, $filename);
if (result != expected_5_1) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_4_5 = expected_5_5;
testName = "%m static width smaller than static precision";
result = sprintf ("%4.5m", $filename);
if (result != expected_4_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_15_5 = sprintf (" %.5s", filename);
testName = "%m static width larger than static precision";
result = sprintf ("%15.5m", $filename);
if (result != expected_15_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic width smaller than static precision";
result = sprintf ("%*.5m", four, $filename);
if (result != expected_4_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic width larger than static precision";
result = sprintf ("%*.5m", fifteen, $filename);
if (result != expected_15_5) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_4_actual = expected_actual_actual;
testName = "%m static width smaller than dynamic precision";
result = sprintf ("%4.*m", actualLength, $filename);
if (result != expected_4_actual) {
printf ("Test %s failed\n", testName);
success = 0;
}
expected_15_actual = sprintf ("%15s", filename);
testName = "%m static width larger than dynamic precision";
result = sprintf ("%15.*m", actualLength, $filename);
if (result != expected_15_actual) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic width smaller than dynamic precision";
result = sprintf ("%*.*m", four, actualLength, $filename);
if (result != expected_4_actual) {
printf ("Test %s failed\n", testName);
success = 0;
}
testName = "%m dynamic width larger than dynamic precision";
result = sprintf ("%*.*m", fifteen, actualLength, $filename);
if (result != expected_15_actual) {
printf ("Test %s failed\n", testName);
success = 0;
}
if (success)
print ("Test passed\n");
exit();
}
}
|