58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 2014 March 11
 | |
| #
 | |
| # 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.
 | |
| #
 | |
| #***********************************************************************
 | |
| #
 | |
| # Miscellaneous tests for errors in the rtree constructor.
 | |
| #
 | |
| 
 | |
| 
 | |
| if {![info exists testdir]} {
 | |
|   set testdir [file join [file dirname [info script]] .. .. test]
 | |
| } 
 | |
| source [file join [file dirname [info script]] rtree_util.tcl]
 | |
| source $testdir/tester.tcl
 | |
| source $testdir/lock_common.tcl
 | |
| ifcapable !rtree {
 | |
|   finish_test
 | |
|   return
 | |
| }
 | |
| set testprefix rtreeD
 | |
| 
 | |
| #-------------------------------------------------------------------------
 | |
| # Test that if an SQLITE_BUSY is encountered within the vtable 
 | |
| # constructor, a relevant error message is returned.
 | |
| #
 | |
| do_multiclient_test tn {
 | |
|   do_test 1.$tn.1 {
 | |
|     sql1 {
 | |
|       CREATE TABLE t1(a, b);
 | |
|       INSERT INTO t1 VALUES(1,2);
 | |
|       CREATE VIRTUAL TABLE rt USING rtree(id, minx, maxx, miny, maxy);
 | |
|       INSERT INTO rt VALUES(1,2,3,4,5);
 | |
|     }
 | |
|   } {}
 | |
| 
 | |
|   do_test 1.$tn.2 {
 | |
|     sql2 { SELECT * FROM t1; }
 | |
|   } {1 2}
 | |
| 
 | |
|   do_test 1.$tn.3 {
 | |
|     sql1 { BEGIN EXCLUSIVE; INSERT INTO t1 VALUES(3, 4); }
 | |
|   } {}
 | |
| 
 | |
|   do_test 1.$tn.4 {
 | |
|     list [catch { sql2 { SELECT * FROM rt } } msg] $msg
 | |
|   } {1 {database is locked}}
 | |
| }
 | |
| 
 | |
| finish_test
 | |
| 
 | |
| 
 | 
