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