88 lines
2.5 KiB
Plaintext
88 lines
2.5 KiB
Plaintext
|
# 2011 December 1
|
||
|
#
|
||
|
# The author disclaims copyright to this source code. In place of
|
||
|
# a legal notice, here is a blessing:
|
||
|
#
|
||
|
# May you do good and not evil.
|
||
|
# May you find forgiveness for yourself and forgive others.
|
||
|
# May you share freely, never taking more than you give.
|
||
|
#
|
||
|
#***********************************************************************
|
||
|
#
|
||
|
# Tests for the glob-style string compare operator embedded in the
|
||
|
# quota shim.
|
||
|
#
|
||
|
|
||
|
set testdir [file dirname $argv0]
|
||
|
source $testdir/tester.tcl
|
||
|
|
||
|
catch { unset testnum }
|
||
|
catch { unset pattern }
|
||
|
catch { unset text }
|
||
|
catch { unset ans }
|
||
|
|
||
|
foreach {testnum pattern text ans} {
|
||
|
1 abcdefg abcdefg 1
|
||
|
2 abcdefG abcdefg 0
|
||
|
3 abcdef abcdefg 0
|
||
|
4 abcdefgh abcdefg 0
|
||
|
5 abcdef? abcdefg 1
|
||
|
6 abcdef? abcdef 0
|
||
|
7 abcdef? abcdefgh 0
|
||
|
8 abcdefg abcdef? 0
|
||
|
9 abcdef? abcdef? 1
|
||
|
10 abc/def abc/def 1
|
||
|
11 abc//def abc/def 0
|
||
|
12 */abc/* x/abc/y 1
|
||
|
13 */abc/* /abc/ 1
|
||
|
16 */abc/* x///a/ab/abc 0
|
||
|
17 */abc/* x//a/ab/abc/ 1
|
||
|
16 */abc/* x///a/ab/abc 0
|
||
|
17 */abc/* x//a/ab/abc/ 1
|
||
|
18 **/abc/** x//a/ab/abc/ 1
|
||
|
19 *?/abc/*? x//a/ab/abc/y 1
|
||
|
20 ?*/abc/?* x//a/ab/abc/y 1
|
||
|
21 {abc[cde]efg} abcbefg 0
|
||
|
22 {abc[cde]efg} abccefg 1
|
||
|
23 {abc[cde]efg} abcdefg 1
|
||
|
24 {abc[cde]efg} abceefg 1
|
||
|
25 {abc[cde]efg} abcfefg 0
|
||
|
26 {abc[^cde]efg} abcbefg 1
|
||
|
27 {abc[^cde]efg} abccefg 0
|
||
|
28 {abc[^cde]efg} abcdefg 0
|
||
|
29 {abc[^cde]efg} abceefg 0
|
||
|
30 {abc[^cde]efg} abcfefg 1
|
||
|
31 {abc[c-e]efg} abcbefg 0
|
||
|
32 {abc[c-e]efg} abccefg 1
|
||
|
33 {abc[c-e]efg} abcdefg 1
|
||
|
34 {abc[c-e]efg} abceefg 1
|
||
|
35 {abc[c-e]efg} abcfefg 0
|
||
|
36 {abc[^c-e]efg} abcbefg 1
|
||
|
37 {abc[^c-e]efg} abccefg 0
|
||
|
38 {abc[^c-e]efg} abcdefg 0
|
||
|
39 {abc[^c-e]efg} abceefg 0
|
||
|
40 {abc[^c-e]efg} abcfefg 1
|
||
|
41 {abc[c-e]efg} abc-efg 0
|
||
|
42 {abc[-ce]efg} abc-efg 1
|
||
|
43 {abc[ce-]efg} abc-efg 1
|
||
|
44 {abc[][*?]efg} {abc]efg} 1
|
||
|
45 {abc[][*?]efg} {abc*efg} 1
|
||
|
46 {abc[][*?]efg} {abc?efg} 1
|
||
|
47 {abc[][*?]efg} {abc[efg} 1
|
||
|
48 {abc[^][*?]efg} {abc]efg} 0
|
||
|
49 {abc[^][*?]efg} {abc*efg} 0
|
||
|
50 {abc[^][*?]efg} {abc?efg} 0
|
||
|
51 {abc[^][*?]efg} {abc[efg} 0
|
||
|
52 {abc[^][*?]efg} {abcdefg} 1
|
||
|
53 {*[xyz]efg} {abcxefg} 1
|
||
|
54 {*[xyz]efg} {abcwefg} 0
|
||
|
} {
|
||
|
do_test quota-glob-$testnum.1 {
|
||
|
sqlite3_quota_glob $::pattern $::text
|
||
|
} $::ans
|
||
|
do_test quota-glob-$testnum.2 {
|
||
|
sqlite3_quota_glob $::pattern [string map {/ \\} $::text]
|
||
|
} $::ans
|
||
|
}
|
||
|
finish_test
|