64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 2010 July 15
 | 
						|
#
 | 
						|
# 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.
 | 
						|
#
 | 
						|
#***********************************************************************
 | 
						|
# This file implements regression tests for SQLite library.
 | 
						|
#
 | 
						|
 | 
						|
set testdir [file dirname $argv0]
 | 
						|
source $testdir/tester.tcl
 | 
						|
source $testdir/lock_common.tcl
 | 
						|
source $testdir/malloc_common.tcl
 | 
						|
 | 
						|
#-------------------------------------------------------------------------
 | 
						|
# If a connection is required to create a journal file, it creates it with 
 | 
						|
# the same file-system permissions as the database file itself. Test this.
 | 
						|
#
 | 
						|
if {$::tcl_platform(platform) == "unix"} {
 | 
						|
 | 
						|
  # Changed on 2012-02-13:  umask is deliberately ignored for -wal, -journal,
 | 
						|
  # and -shm files.
 | 
						|
  #set umask [exec /bin/sh -c umask]
 | 
						|
  faultsim_delete_and_reopen
 | 
						|
  do_test journal3-1.1 { execsql { CREATE TABLE tx(y, z) } } {}
 | 
						|
 | 
						|
  foreach {tn permissions} {
 | 
						|
   1 00644
 | 
						|
   2 00666
 | 
						|
   3 00600
 | 
						|
   4 00755
 | 
						|
  } {
 | 
						|
    db close
 | 
						|
    #set effective [format %.5o [expr $permissions & ~$umask]]
 | 
						|
    set effective $permissions
 | 
						|
    do_test journal3-1.2.$tn.1 {
 | 
						|
      catch { forcedelete test.db-journal }
 | 
						|
      file attributes test.db -permissions $permissions
 | 
						|
      file attributes test.db -permissions
 | 
						|
    } $permissions
 | 
						|
    do_test journal3-1.2.$tn.2 { file exists test.db-journal } {0}
 | 
						|
    do_test journal3-1.2.$tn.3 {
 | 
						|
      sqlite3 db test.db
 | 
						|
      execsql { 
 | 
						|
        BEGIN;
 | 
						|
          INSERT INTO tx DEFAULT VALUES;
 | 
						|
      }
 | 
						|
      file exists test.db-journal
 | 
						|
    } {1}
 | 
						|
    do_test journal3-1.2.$tn.4 {
 | 
						|
      file attr test.db-journal -perm
 | 
						|
    } $effective
 | 
						|
    do_execsql_test journal3-1.2.$tn.5 { ROLLBACK } {}
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
finish_test
 |