/ Hex Artifact Content
Login

Artifact 9d493160caf4f9906cc72d6fa3b19dba91265a70:


0000: 23 20 32 30 31 36 20 4f 63 74 6f 62 65 72 20 32  # 2016 October 2
0010: 36 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f 72  6.#.# The author
0020: 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79 72   disclaims copyr
0030: 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f 75  ight to this sou
0040: 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c  rce code.  In pl
0050: 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c  ace of.# a legal
0060: 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69 73   notice, here is
0070: 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23   a blessing:.#.#
0080: 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20 67      May you do g
0090: 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c  ood and not evil
00a0: 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 66  ..#    May you f
00b0: 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73 20  ind forgiveness 
00c0: 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e 64  for yourself and
00d0: 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73 2e   forgive others.
00e0: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73 68  .#    May you sh
00f0: 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76 65  are freely, neve
0100: 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68  r taking more th
0110: 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23  an you give..#.#
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 0a 23 0a 23 20 54 65 73 74  *******.#.# Test
0170: 73 20 66 6f 72 20 53 51 4c 49 54 45 5f 45 4e 41  s for SQLITE_ENA
0180: 42 4c 45 5f 55 52 49 5f 30 30 5f 45 52 52 4f 52  BLE_URI_00_ERROR
0190: 20 62 75 69 6c 64 73 2e 0a 0a 73 65 74 20 74 65   builds...set te
01a0: 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e  stdir [file dirn
01b0: 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f 75 72  ame $argv0].sour
01c0: 63 65 20 24 74 65 73 74 64 69 72 2f 74 65 73 74  ce $testdir/test
01d0: 65 72 2e 74 63 6c 0a 0a 69 66 63 61 70 61 62 6c  er.tcl..ifcapabl
01e0: 65 20 21 75 72 69 5f 30 30 5f 65 72 72 6f 72 20  e !uri_00_error 
01f0: 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65 73 74 0a  {.  finish_test.
0200: 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 73 65 74 20    return.}..set 
0210: 74 65 73 74 70 72 65 66 69 78 20 75 72 69 32 0a  testprefix uri2.
0220: 64 62 20 63 6c 6f 73 65 0a 73 71 6c 69 74 65 33  db close.sqlite3
0230: 5f 73 68 75 74 64 6f 77 6e 0a 73 71 6c 69 74 65  _shutdown.sqlite
0240: 33 5f 63 6f 6e 66 69 67 5f 75 72 69 20 31 0a 0a  3_config_uri 1..
0250: 66 6f 72 65 61 63 68 20 7b 74 6e 20 75 72 69 7d  foreach {tn uri}
0260: 20 7b 0a 20 20 31 20 66 69 6c 65 3a 74 65 73 74   {.  1 file:test
0270: 2e 64 62 25 30 30 74 72 61 69 6c 69 6e 67 0a 20  .db%00trailing. 
0280: 20 32 20 66 69 6c 65 3a 74 65 73 74 2e 64 62 3f   2 file:test.db?
0290: 25 30 30 74 72 61 69 6c 69 6e 67 3d 31 0a 20 20  %00trailing=1.  
02a0: 33 20 66 69 6c 65 3a 74 65 73 74 2e 64 62 3f 74  3 file:test.db?t
02b0: 72 61 69 6c 69 6e 67 3d 31 25 30 30 0a 20 20 34  railing=1%00.  4
02c0: 20 66 69 6c 65 3a 74 65 73 74 2e 64 62 3f 74 72   file:test.db?tr
02d0: 61 69 6c 69 6e 67 3d 31 26 61 62 63 25 30 30 64  ailing=1&abc%00d
02e0: 65 66 0a 20 20 35 20 66 69 6c 65 3a 74 65 73 74  ef.  5 file:test
02f0: 2e 64 62 3f 74 72 61 69 6c 69 6e 67 3d 31 26 61  .db?trailing=1&a
0300: 62 63 25 30 30 64 65 66 0a 7d 20 7b 0a 20 20 64  bc%00def.} {.  d
0310: 6f 5f 74 65 73 74 20 31 2e 24 74 6e 2e 31 20 7b  o_test 1.$tn.1 {
0320: 0a 20 20 20 20 73 65 74 20 72 63 20 5b 63 61 74  .    set rc [cat
0330: 63 68 20 7b 20 73 71 6c 69 74 65 33 20 64 62 20  ch { sqlite3 db 
0340: 24 75 72 69 20 7d 20 6d 73 67 5d 0a 20 20 20 20  $uri } msg].    
0350: 6c 69 73 74 20 24 72 63 20 24 6d 73 67 0a 20 20  list $rc $msg.  
0360: 7d 20 7b 31 20 7b 75 6e 65 78 70 65 63 74 65 64  } {1 {unexpected
0370: 20 25 30 30 20 69 6e 20 75 72 69 7d 7d 0a 0a 20   %00 in uri}}.. 
0380: 20 64 6f 5f 74 65 73 74 20 31 2e 24 74 6e 2e 32   do_test 1.$tn.2
0390: 20 7b 0a 20 20 20 20 73 71 6c 69 74 65 33 20 64   {.    sqlite3 d
03a0: 62 20 22 22 0a 20 20 20 20 63 61 74 63 68 73 71  b "".    catchsq
03b0: 6c 20 7b 20 41 54 54 41 43 48 20 24 75 72 69 20  l { ATTACH $uri 
03c0: 41 53 20 61 75 78 20 7d 0a 20 20 7d 20 7b 31 20  AS aux }.  } {1 
03d0: 7b 75 6e 65 78 70 65 63 74 65 64 20 25 30 30 20  {unexpected %00 
03e0: 69 6e 20 75 72 69 7d 7d 0a 0a 20 20 63 61 74 63  in uri}}..  catc
03f0: 68 20 7b 20 64 62 20 63 6c 6f 73 65 20 7d 0a 7d  h { db close }.}
0400: 0a 0a 72 65 73 65 74 5f 64 62 0a 64 6f 5f 74 65  ..reset_db.do_te
0410: 73 74 20 32 2e 30 20 7b 0a 20 20 65 78 70 72 20  st 2.0 {.  expr 
0420: 7b 5b 6c 73 65 61 72 63 68 20 5b 65 78 65 63 73  {[lsearch [execs
0430: 71 6c 20 7b 50 52 41 47 4d 41 20 63 6f 6d 70 69  ql {PRAGMA compi
0440: 6c 65 5f 6f 70 74 69 6f 6e 73 7d 5d 20 45 4e 41  le_options}] ENA
0450: 42 4c 45 5f 55 52 49 5f 30 30 5f 45 52 52 4f 52  BLE_URI_00_ERROR
0460: 5d 20 3e 3d 20 30 7d 0a 7d 20 31 0a 0a 66 69 6e  ] >= 0}.} 1..fin
0470: 69 73 68 5f 74 65 73 74 0a                       ish_test.