modernc.org/cc@v1.0.1/v2/testdata/_sqlite/test/mjournal.test (about)

     1  # 2017 September 15
     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  # This file implements regression tests for SQLite library.
    12  #
    13  
    14  set testdir [file dirname $argv0]
    15  source $testdir/tester.tcl
    16  set testprefix mjournal
    17  
    18  # Test that nothing bad happens if a journal file contains a pointer to
    19  # a master journal file that does not have a "-" in the name. At one point
    20  # this was causing a segfault on unix.
    21  #
    22  do_execsql_test 1.0 {
    23    CREATE TABLE t1(a, b);
    24  }
    25  
    26  do_test 1.1 {
    27    forcedelete test.db2journal test.db-journal
    28  
    29    close [open test.db-journal w]
    30    
    31    hexio_write test.db-journal 0 746573742e6462326a6f75726e616c00
    32    hexio_write test.db-journal 16 00000010
    33    hexio_write test.db-journal 20 000005e1
    34    hexio_write test.db-journal 24 d9d505f920a163d7
    35  
    36    close [open test.db2journal w]
    37    hexio_write test.db2journal 0 abcd
    38  } {2}
    39  
    40  do_execsql_test 1.2 {
    41    SELECT * FROM t1;
    42  }
    43  
    44  do_test 1.3 {
    45    forcedelete test0db2journal test.db-journal
    46    close [open test.db-journal w]
    47    hexio_write test.db-journal 0 74657374306462326a6f75726e616c00
    48    hexio_write test.db-journal 16 00000010
    49    hexio_write test.db-journal 20 000005e3
    50    hexio_write test.db-journal 24 d9d505f920a163d7
    51  
    52    close [open test0db2journal w]
    53    hexio_write test0db2journal 0 abcd
    54  } {2}
    55  
    56  do_execsql_test 1.4 {
    57    SELECT * FROM t1;
    58  }
    59  
    60  # And now test that nothing bad happens if a master journal contains a
    61  # pointer to a journal file that does not have a "-" in the name. 
    62  #
    63  do_test 1.5 {
    64    forcedelete test.db2-master test.db-journal test1
    65    close [open test.db-journal w]
    66    hexio_write test.db-journal 0 746573742e6462322d6d617374657200
    67    hexio_write test.db-journal 16 00000010
    68    hexio_write test.db-journal 20 0000059f
    69    hexio_write test.db-journal 24 d9d505f920a163d7
    70  
    71    close [open test.db2-master w]
    72    hexio_write test.db2-master 0 746573743100
    73  
    74    close [open test1 w]
    75    hexio_write test1 0 abcd
    76  } {2}
    77  
    78  do_execsql_test 1.6 {
    79    SELECT * FROM t1;
    80  }
    81  
    82    
    83  finish_test