xref: /sqlite-3.40.0/test/uri2.test (revision 635f83c0)
15c35e903Sdan# 2016 October 26
25c35e903Sdan#
35c35e903Sdan# The author disclaims copyright to this source code.  In place of
45c35e903Sdan# a legal notice, here is a blessing:
55c35e903Sdan#
65c35e903Sdan#    May you do good and not evil.
75c35e903Sdan#    May you find forgiveness for yourself and forgive others.
85c35e903Sdan#    May you share freely, never taking more than you give.
95c35e903Sdan#
105c35e903Sdan#***********************************************************************
115c35e903Sdan#
125c35e903Sdan# Tests for SQLITE_ENABLE_URI_00_ERROR builds.
135c35e903Sdan
145c35e903Sdanset testdir [file dirname $argv0]
155c35e903Sdansource $testdir/tester.tcl
165c35e903Sdan
175c35e903Sdanifcapable !uri_00_error {
185c35e903Sdan  finish_test
195c35e903Sdan  return
205c35e903Sdan}
215c35e903Sdan
225c35e903Sdanset testprefix uri2
235c35e903Sdandb close
245c35e903Sdansqlite3_shutdown
255c35e903Sdansqlite3_config_uri 1
265c35e903Sdan
275c35e903Sdanforeach {tn uri} {
285c35e903Sdan  1 file:test.db%00trailing
295c35e903Sdan  2 file:test.db?%00trailing=1
305c35e903Sdan  3 file:test.db?trailing=1%00
315c35e903Sdan  4 file:test.db?trailing=1&abc%00def
325c35e903Sdan  5 file:test.db?trailing=1&abc%00def
335c35e903Sdan} {
345c35e903Sdan  do_test 1.$tn.1 {
355c35e903Sdan    set rc [catch { sqlite3 db $uri } msg]
365c35e903Sdan    list $rc $msg
375c35e903Sdan  } {1 {unexpected %00 in uri}}
385c35e903Sdan
395c35e903Sdan  do_test 1.$tn.2 {
40*635f83c0Sdan    set DB2 [sqlite3_open $uri]
41*635f83c0Sdan    sqlite3_errcode $DB2
42*635f83c0Sdan  } {SQLITE_ERROR}
43*635f83c0Sdan
44*635f83c0Sdan  catch { sqlite3_close $DB2 }
45*635f83c0Sdan
46*635f83c0Sdan  do_test 1.$tn.2 {
475c35e903Sdan    sqlite3 db ""
485c35e903Sdan    catchsql { ATTACH $uri AS aux }
495c35e903Sdan  } {1 {unexpected %00 in uri}}
505c35e903Sdan
51*635f83c0Sdan  do_test 1.$tn.3 {
52*635f83c0Sdan    sqlite3_errcode db
53*635f83c0Sdan  } {SQLITE_ERROR}
54*635f83c0Sdan
555c35e903Sdan  catch { db close }
565c35e903Sdan}
575c35e903Sdan
585c35e903Sdanreset_db
595c35e903Sdando_test 2.0 {
605c35e903Sdan  expr {[lsearch [execsql {PRAGMA compile_options}] ENABLE_URI_00_ERROR] >= 0}
615c35e903Sdan} 1
625c35e903Sdan
635c35e903Sdanfinish_test
64