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
 | 
