summaryrefslogtreecommitdiff
path: root/test/glob.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/glob.test')
-rw-r--r--test/glob.test190
1 files changed, 190 insertions, 0 deletions
diff --git a/test/glob.test b/test/glob.test
new file mode 100644
index 0000000..1b817af
--- /dev/null
+++ b/test/glob.test
@@ -0,0 +1,190 @@
+#
+# Copyright (c) 2013 D. Richard Hipp
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the Simplified BSD License (also
+# known as the "2-Clause License" or "FreeBSD License".)
+#
+# This program is distributed in the hope that it will be useful,
+# but without any warranty; without even the implied warranty of
+# merchantability or fitness for a particular purpose.
+#
+# Author contact information:
+# drh@hwaci.com
+# http://www.hwaci.com/drh/
+#
+############################################################################
+#
+# Test glob pattern parsing
+#
+
+test_setup ""
+
+proc glob-parse {testname args} {
+ set i 1
+ foreach {pattern string result} $args {
+ fossil test-glob $pattern $string
+ test glob-parse-$testname.$i {$::RESULT eq $result}
+ incr i
+ }
+}
+
+glob-parse 100 test test [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'test')
+pattern[0] = [test]
+1 1 test}]
+
+glob-parse 101 "one two" one [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'one' OR x GLOB 'two')
+pattern[0] = [one]
+pattern[1] = [two]
+1 1 one}]
+
+glob-parse 102 t* test [string map [list \r\n \n] \
+{SQL expression: (x GLOB 't*')
+pattern[0] = [t*]
+1 1 test}]
+
+glob-parse 103 "o* two" one [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*' OR x GLOB 'two')
+pattern[0] = [o*]
+pattern[1] = [two]
+1 1 one}]
+
+glob-parse 104 {"o* two" "three four"} "one two" [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
+pattern[0] = [o* two]
+pattern[1] = [three four]
+1 1 one two}]
+
+glob-parse 105 {"o* two" "three four"} "two one" [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
+pattern[0] = [o* two]
+pattern[1] = [three four]
+0 0 two one}]
+
+glob-parse 106 "\"o*\ntwo\" \"three\nfour\"" "one\ntwo" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+1 1 one
+two}]
+
+glob-parse 107 "\"o*\ntwo\" \"three\nfour\"" "two\none" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+0 0 two
+one}]
+
+glob-parse 108 "\"o*\rtwo\" \"three\rfour\"" "one\rtwo" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+1 1 one
+two}]
+
+glob-parse 109 "\"o*\rtwo\" \"three\rfour\"" "two\rone" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+0 0 two
+one}]
+
+glob-parse 110 "'o*\ntwo' 'three\nfour'" "one\ntwo" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+1 1 one
+two}]
+
+glob-parse 111 "'o*\ntwo' 'three\nfour'" "two\none" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*
+two' OR x GLOB 'three
+four')
+pattern[0] = [o*
+two]
+pattern[1] = [three
+four]
+0 0 two
+one}]
+
+glob-parse 112 "\"'o*' 'two'\" \"'three' 'four'\"" "'one' 'two'" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
+pattern[0] = ['o*' 'two']
+pattern[1] = ['three' 'four']
+1 1 'one' 'two'}]
+
+glob-parse 113 "\"'o*' 'two'\" \"'three' 'four'\"" "two one" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
+pattern[0] = ['o*' 'two']
+pattern[1] = ['three' 'four']
+0 0 two one}]
+
+glob-parse 114 o*,two one [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*' OR x GLOB 'two')
+pattern[0] = [o*]
+pattern[1] = [two]
+1 1 one}]
+
+glob-parse 115 "o*,two three,four" "one two" [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*' OR x GLOB 'two' OR x GLOB 'three' OR x GLOB 'four')
+pattern[0] = [o*]
+pattern[1] = [two]
+pattern[2] = [three]
+pattern[3] = [four]
+1 1 one two}]
+
+glob-parse 116 'o*,two' one [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*,two')
+pattern[0] = [o*,two]
+0 0 one}]
+
+glob-parse 117 'o*,two' one,two [string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*,two')
+pattern[0] = [o*,two]
+1 1 one,two}]
+
+glob-parse 118 "'o*,two three,four'" "one two three,four" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*,two three,four')
+pattern[0] = [o*,two three,four]
+0 0 one two three,four}]
+
+glob-parse 119 "'o*,two three,four'" "one,two three,four" \
+[string map [list \r\n \n] \
+{SQL expression: (x GLOB 'o*,two three,four')
+pattern[0] = [o*,two three,four]
+1 1 one,two three,four}]
+
+###############################################################################
+
+test_cleanup