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
|
function print_str(str, i, n, chars, result)
{
n = split(str, chars, "")
result = ""
for (i = 1; i <= n; i++) {
if (chars[i] == "\0")
result = result "\\0"
else
result = result chars[i]
}
return result
}
function do_compare(left, comp, right)
{
if (comp == "<")
return left < right ? "TRUE" : "FALSE"
return left > right ? "TRUE" : "FALSE"
}
BEGIN {
left[1] = "abc\0z1"; compare[1] = "<"; right[1] = "abc\0z2"; expected[1] = "TRUE"
left[2] = "abc\0z2"; compare[2] = "<"; right[2] = "abc\0z2"; expected[2] = "FALSE"
left[3] = "abc\0z3"; compare[3] = "<"; right[3] = "abc\0z2"; expected[3] = "FALSE"
left[4] = "abc\0z1"; compare[4] = ">"; right[4] = "abc\0z2"; expected[4] = "FALSE"
left[5] = "abc\0z2"; compare[5] = ">"; right[5] = "abc\0z2"; expected[5] = "FALSE"
left[6] = "abc\0z3"; compare[6] = ">"; right[6] = "abc\0z2"; expected[6] = "TRUE"
left[7] = "abc\0z1"; compare[7] = "<"; right[7] = "abc\0z21"; expected[7] = "TRUE"
left[8] = "abc\0z2"; compare[8] = "<"; right[8] = "abc\0z21"; expected[8] = "TRUE"
left[9] = "abc\0z3"; compare[9] = "<"; right[9] = "abc\0z21"; expected[9] = "FALSE"
left[10] = "abc\0z11"; compare[10] = ">"; right[10] = "abc\0z2"; expected[10] = "FALSE"
left[11] = "abc\0z21"; compare[11] = ">"; right[11] = "abc\0z2"; expected[11] = "TRUE"
left[12] = "abc\0z31"; compare[12] = ">"; right[12] = "abc\0z2"; expected[12] = "TRUE"
l = 12
for (i = 1; i <= l; i++) {
result = do_compare(left[i], compare[i], right[i])
lstr = print_str(left[i])
rstr = print_str(right[i])
printf("\"%s\" %s \"%s\": Expecting %s: Got %s\n",
lstr, compare[i], rstr, expected[i], result)
}
}
|