aboutsummaryrefslogtreecommitdiffstats
path: root/test/posix_compare.awk
diff options
context:
space:
mode:
Diffstat (limited to 'test/posix_compare.awk')
-rw-r--r--test/posix_compare.awk47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/posix_compare.awk b/test/posix_compare.awk
new file mode 100644
index 00000000..dcef124d
--- /dev/null
+++ b/test/posix_compare.awk
@@ -0,0 +1,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)
+ }
+}