summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.printf/memory1.stp
blob: f9cbf60bdf198411837502e6130a89bb70f6fc11 (plain)
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();
    }
}