| OLD | NEW | 
 | (Empty) | 
|   1 # 2007 September 5 |  | 
|   2 # |  | 
|   3 # The author disclaims copyright to this source code.  In place of |  | 
|   4 # a legal notice, here is a blessing: |  | 
|   5 # |  | 
|   6 #    May you do good and not evil. |  | 
|   7 #    May you find forgiveness for yourself and forgive others. |  | 
|   8 #    May you share freely, never taking more than you give. |  | 
|   9 # |  | 
|  10 #*********************************************************************** |  | 
|  11 # |  | 
|  12 # The focus of this file is testing the code in test_async.c. |  | 
|  13 # Specifically, it tests that the xFullPathname() method of |  | 
|  14 # of the asynchronous vfs works correctly. |  | 
|  15 # |  | 
|  16 # $Id: async3.test,v 1.5 2009/04/25 08:39:15 danielk1977 Exp $ |  | 
|  17  |  | 
|  18 set testdir [file dirname $argv0] |  | 
|  19 source $testdir/tester.tcl |  | 
|  20  |  | 
|  21 if { [info commands sqlite3async_initialize]==""  } { |  | 
|  22   # The async logic is not built into this system |  | 
|  23   puts "Skipping async3 tests: not compiled with required features" |  | 
|  24   finish_test |  | 
|  25   return |  | 
|  26 } |  | 
|  27  |  | 
|  28 db close |  | 
|  29 sqlite3async_initialize "" 1 |  | 
|  30 #set sqlite3async_trace 1 |  | 
|  31 sqlite3async_start |  | 
|  32  |  | 
|  33 set paths { |  | 
|  34   chocolate/banana/vanilla/file.db |  | 
|  35   chocolate//banana/vanilla/file.db |  | 
|  36   chocolate/./banana//vanilla/file.db |  | 
|  37   chocolate/banana/./vanilla/file.db |  | 
|  38   chocolate/banana/../banana/vanilla/file.db |  | 
|  39   chocolate/banana/./vanilla/extra_bit/../file.db |  | 
|  40 } |  | 
|  41  |  | 
|  42 do_test async3-1.0 { |  | 
|  43   file mkdir [file join chocolate banana vanilla] |  | 
|  44   file delete -force chocolate/banana/vanilla/file.db |  | 
|  45   file delete -force chocolate/banana/vanilla/file.db-journal |  | 
|  46 } {} |  | 
|  47  |  | 
|  48 do_test async3-1.1 { |  | 
|  49   sqlite3 db chocolate/banana/vanilla/file.db |  | 
|  50   execsql { |  | 
|  51     CREATE TABLE abc(a, b, c); |  | 
|  52     BEGIN; |  | 
|  53     INSERT INTO abc VALUES(1, 2, 3); |  | 
|  54   } |  | 
|  55 } {} |  | 
|  56  |  | 
|  57 set N 2 |  | 
|  58 foreach p $paths { |  | 
|  59   sqlite3 db2 $p |  | 
|  60   do_test async3-1.$N.1 { |  | 
|  61     execsql {SELECT * FROM abc} db2 |  | 
|  62   } {} |  | 
|  63   do_test async3-1.$N.2 { |  | 
|  64     catchsql {INSERT INTO abc VALUES(4, 5, 6)} db2 |  | 
|  65   } {1 {database is locked}} |  | 
|  66   db2 close |  | 
|  67   incr N |  | 
|  68 } |  | 
|  69  |  | 
|  70 db close |  | 
|  71  |  | 
|  72 sqlite3async_control halt idle |  | 
|  73 sqlite3async_wait |  | 
|  74 sqlite3async_control halt never |  | 
|  75 sqlite3async_shutdown |  | 
|  76 finish_test |  | 
| OLD | NEW |