xref: /sqlite-3.40.0/ext/rtree/rtreeD.test (revision a690ff36)
13afca7d1Sdan# 2014 March 11
23afca7d1Sdan#
33afca7d1Sdan# The author disclaims copyright to this source code.  In place of
43afca7d1Sdan# a legal notice, here is a blessing:
53afca7d1Sdan#
63afca7d1Sdan#    May you do good and not evil.
73afca7d1Sdan#    May you find forgiveness for yourself and forgive others.
83afca7d1Sdan#    May you share freely, never taking more than you give.
93afca7d1Sdan#
103afca7d1Sdan#***********************************************************************
113afca7d1Sdan#
123afca7d1Sdan# Miscellaneous tests for errors in the rtree constructor.
133afca7d1Sdan#
143afca7d1Sdan
153afca7d1Sdan
163afca7d1Sdanif {![info exists testdir]} {
173afca7d1Sdan  set testdir [file join [file dirname [info script]] .. .. test]
183afca7d1Sdan}
193afca7d1Sdansource [file join [file dirname [info script]] rtree_util.tcl]
203afca7d1Sdansource $testdir/tester.tcl
213afca7d1Sdansource $testdir/lock_common.tcl
22*9c8753c0Sdanifcapable !rtree||!builtin_test {
233afca7d1Sdan  finish_test
243afca7d1Sdan  return
253afca7d1Sdan}
263afca7d1Sdanset testprefix rtreeD
273afca7d1Sdan
283afca7d1Sdan#-------------------------------------------------------------------------
293afca7d1Sdan# Test that if an SQLITE_BUSY is encountered within the vtable
303afca7d1Sdan# constructor, a relevant error message is returned.
313afca7d1Sdan#
323afca7d1Sdando_multiclient_test tn {
333afca7d1Sdan  do_test 1.$tn.1 {
343afca7d1Sdan    sql1 {
353afca7d1Sdan      CREATE TABLE t1(a, b);
363afca7d1Sdan      INSERT INTO t1 VALUES(1,2);
373afca7d1Sdan      CREATE VIRTUAL TABLE rt USING rtree(id, minx, maxx, miny, maxy);
383afca7d1Sdan      INSERT INTO rt VALUES(1,2,3,4,5);
393afca7d1Sdan    }
403afca7d1Sdan  } {}
413afca7d1Sdan
423afca7d1Sdan  do_test 1.$tn.2 {
433afca7d1Sdan    sql2 { SELECT * FROM t1; }
443afca7d1Sdan  } {1 2}
453afca7d1Sdan
463afca7d1Sdan  do_test 1.$tn.3 {
473afca7d1Sdan    sql1 { BEGIN EXCLUSIVE; INSERT INTO t1 VALUES(3, 4); }
483afca7d1Sdan  } {}
493afca7d1Sdan
503afca7d1Sdan  do_test 1.$tn.4 {
513afca7d1Sdan    list [catch { sql2 { SELECT * FROM rt } } msg] $msg
523afca7d1Sdan  } {1 {database is locked}}
533afca7d1Sdan}
543afca7d1Sdan
553afca7d1Sdanfinish_test
56