blob: 28c813c30f27b71b2f50c012e5dd57d725c8fc69 [file] [log] [blame]
drhc8ccda62011-12-01 22:07:22 +00001# 2011 December 1
2#
3# The author disclaims copyright to this source code. In place of
4# a legal notice, here is a blessing:
5#
6# May you do good and not evil.
7# May you find forgiveness for yourself and forgive others.
8# May you share freely, never taking more than you give.
9#
10#***********************************************************************
11#
12# Tests for the glob-style string compare operator embedded in the
13# quota shim.
14#
15
16set testdir [file dirname $argv0]
17source $testdir/tester.tcl
18
19catch { unset testnum }
20catch { unset pattern }
21catch { unset text }
22catch { unset ans }
23
24foreach {testnum pattern text ans} {
25 1 abcdefg abcdefg 1
26 2 abcdefG abcdefg 0
27 3 abcdef abcdefg 0
28 4 abcdefgh abcdefg 0
29 5 abcdef? abcdefg 1
30 6 abcdef? abcdef 0
31 7 abcdef? abcdefgh 0
32 8 abcdefg abcdef? 0
33 9 abcdef? abcdef? 1
34 10 abc/def abc/def 1
drheff14332011-12-02 15:27:41 +000035 11 abc//def abc/def 0
drhc8ccda62011-12-01 22:07:22 +000036 12 */abc/* x/abc/y 1
37 13 */abc/* /abc/ 1
38 16 */abc/* x///a/ab/abc 0
39 17 */abc/* x//a/ab/abc/ 1
40 16 */abc/* x///a/ab/abc 0
41 17 */abc/* x//a/ab/abc/ 1
drheff14332011-12-02 15:27:41 +000042 18 **/abc/** x//a/ab/abc/ 1
43 19 *?/abc/*? x//a/ab/abc/y 1
44 20 ?*/abc/?* x//a/ab/abc/y 1
45 21 {abc[cde]efg} abcbefg 0
46 22 {abc[cde]efg} abccefg 1
47 23 {abc[cde]efg} abcdefg 1
48 24 {abc[cde]efg} abceefg 1
49 25 {abc[cde]efg} abcfefg 0
50 26 {abc[^cde]efg} abcbefg 1
51 27 {abc[^cde]efg} abccefg 0
52 28 {abc[^cde]efg} abcdefg 0
53 29 {abc[^cde]efg} abceefg 0
54 30 {abc[^cde]efg} abcfefg 1
55 31 {abc[c-e]efg} abcbefg 0
56 32 {abc[c-e]efg} abccefg 1
57 33 {abc[c-e]efg} abcdefg 1
58 34 {abc[c-e]efg} abceefg 1
59 35 {abc[c-e]efg} abcfefg 0
60 36 {abc[^c-e]efg} abcbefg 1
61 37 {abc[^c-e]efg} abccefg 0
62 38 {abc[^c-e]efg} abcdefg 0
63 39 {abc[^c-e]efg} abceefg 0
64 40 {abc[^c-e]efg} abcfefg 1
65 41 {abc[c-e]efg} abc-efg 0
66 42 {abc[-ce]efg} abc-efg 1
67 43 {abc[ce-]efg} abc-efg 1
68 44 {abc[][*?]efg} {abc]efg} 1
69 45 {abc[][*?]efg} {abc*efg} 1
70 46 {abc[][*?]efg} {abc?efg} 1
71 47 {abc[][*?]efg} {abc[efg} 1
72 48 {abc[^][*?]efg} {abc]efg} 0
73 49 {abc[^][*?]efg} {abc*efg} 0
74 50 {abc[^][*?]efg} {abc?efg} 0
75 51 {abc[^][*?]efg} {abc[efg} 0
76 52 {abc[^][*?]efg} {abcdefg} 1
77 53 {*[xyz]efg} {abcxefg} 1
78 54 {*[xyz]efg} {abcwefg} 0
drhc8ccda62011-12-01 22:07:22 +000079} {
80 do_test quota-glob-$testnum.1 {
81 sqlite3_quota_glob $::pattern $::text
82 } $::ans
83 do_test quota-glob-$testnum.2 {
84 sqlite3_quota_glob $::pattern [string map {/ \\} $::text]
85 } $::ans
86}
87finish_test