Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Get the io.test tests working on windows. (CVS 4381) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1be70015e24f715a4276f253d2e0c0ee |
User & Date: | drh 2007-09-03 17:02:50.000 |
Context
2007-09-03
| ||
17:09 | Fix the open file counter on windows. (CVS 4382) (check-in: 40cf0c1776 user: drh tags: trunk) | |
17:02 | Get the io.test tests working on windows. (CVS 4381) (check-in: 1be70015e2 user: drh tags: trunk) | |
16:45 | Fix the incrblob.test on windows. Disable line terminator translation. (CVS 4380) (check-in: ccbd2efeba user: drh tags: trunk) | |
Changes
Changes to src/os_win.c.
︙ | ︙ | |||
707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | OSTRACE3("TRUNCATE %d %lld\n", pFile->h, nByte); SimulateIOError(return SQLITE_IOERR_TRUNCATE); SetFilePointer(pFile->h, lowerBits, &upperBits, FILE_BEGIN); SetEndOfFile(pFile->h); return SQLITE_OK; } /* ** Make sure all writes to a particular file are committed to disk. */ static int winSync(sqlite3_file *id, int flags){ winFile *pFile = (winFile*)id; OSTRACE3("SYNC %d lock=%d\n", pFile->h, pFile->locktype); if( FlushFileBuffers(pFile->h) ){ return SQLITE_OK; }else{ return SQLITE_IOERR; } } | > > > > > > > > > > > > > > > | 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 | OSTRACE3("TRUNCATE %d %lld\n", pFile->h, nByte); SimulateIOError(return SQLITE_IOERR_TRUNCATE); SetFilePointer(pFile->h, lowerBits, &upperBits, FILE_BEGIN); SetEndOfFile(pFile->h); return SQLITE_OK; } #ifdef SQLITE_TEST /* ** Count the number of fullsyncs and normal syncs. This is used to test ** that syncs and fullsyncs are occuring at the right times. */ int sqlite3_sync_count = 0; int sqlite3_fullsync_count = 0; #endif /* ** Make sure all writes to a particular file are committed to disk. */ static int winSync(sqlite3_file *id, int flags){ winFile *pFile = (winFile*)id; OSTRACE3("SYNC %d lock=%d\n", pFile->h, pFile->locktype); #ifdef SQLITE_TEST if( flags & SQLITE_SYNC_FULL ){ sqlite3_fullsync_count++; } sqlite3_sync_count++; #endif if( FlushFileBuffers(pFile->h) ){ return SQLITE_OK; }else{ return SQLITE_IOERR; } } |
︙ | ︙ |
Changes to src/test1.c.
︙ | ︙ | |||
9 10 11 12 13 14 15 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** Code for testing all sorts of SQLite interfaces. This code ** is not included in the SQLite library. It is used for automated ** testing of the SQLite library. ** | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** Code for testing all sorts of SQLite interfaces. This code ** is not included in the SQLite library. It is used for automated ** testing of the SQLite library. ** ** $Id: test1.c,v 1.276 2007/09/03 17:02:50 drh Exp $ */ #include "sqliteInt.h" #include "tcl.h" #include <stdlib.h> #include <string.h> /* |
︙ | ︙ | |||
4465 4466 4467 4468 4469 4470 4471 | (char*)&sqlite_static_bind_value, TCL_LINK_STRING); Tcl_LinkVar(interp, "sqlite_static_bind_nbyte", (char*)&sqlite_static_bind_nbyte, TCL_LINK_INT); Tcl_LinkVar(interp, "sqlite_temp_directory", (char*)&sqlite3_temp_directory, TCL_LINK_STRING); Tcl_LinkVar(interp, "bitmask_size", (char*)&bitmask_size, TCL_LINK_INT|TCL_LINK_READ_ONLY); | < < < | 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 | (char*)&sqlite_static_bind_value, TCL_LINK_STRING); Tcl_LinkVar(interp, "sqlite_static_bind_nbyte", (char*)&sqlite_static_bind_nbyte, TCL_LINK_INT); Tcl_LinkVar(interp, "sqlite_temp_directory", (char*)&sqlite3_temp_directory, TCL_LINK_STRING); Tcl_LinkVar(interp, "bitmask_size", (char*)&bitmask_size, TCL_LINK_INT|TCL_LINK_READ_ONLY); Tcl_LinkVar(interp, "sqlite_sync_count", (char*)&sqlite3_sync_count, TCL_LINK_INT); Tcl_LinkVar(interp, "sqlite_fullsync_count", (char*)&sqlite3_fullsync_count, TCL_LINK_INT); return TCL_OK; } |
Changes to test/io.test.
︙ | ︙ | |||
9 10 11 12 13 14 15 | # #*********************************************************************** # # The focus of this file is testing some specific characteristics of the # IO traffic generated by SQLite (making sure SQLite is not writing out # more database pages than it has to, stuff like that). # | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # #*********************************************************************** # # The focus of this file is testing some specific characteristics of the # IO traffic generated by SQLite (making sure SQLite is not writing out # more database pages than it has to, stuff like that). # # $Id: io.test,v 1.9 2007/09/03 17:02:50 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Test summary: # # io-1.* - Test that quick-balance does not journal pages unnecessarily. |
︙ | ︙ | |||
400 401 402 403 404 405 406 | # Test cases io-4.* test the IOCAP_SAFE_APPEND optimization. # sqlite3_simulate_device -char safe_append # With the SAFE_APPEND flag set, simple transactions require 3, rather # than 4, calls to fsync(). The fsync() calls are on: # | | > > > > > | > | | | | | | | | | > < | | 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | # Test cases io-4.* test the IOCAP_SAFE_APPEND optimization. # sqlite3_simulate_device -char safe_append # With the SAFE_APPEND flag set, simple transactions require 3, rather # than 4, calls to fsync(). The fsync() calls are on: # # 1) The directory in which the journal file is created, (unix only) # 2) The journal file (to sync the page data), # 3) The database file. # # Normally, when the SAFE_APPEND flag is not set, there is another fsync() # on the journal file between steps (2) and (3) above. # if {$::tcl_platform(platform)=="unix"} { set expected_sync_count 3 } else { set expected_sync_count 2 } do_test io-4.1 { execsql { DELETE FROM abc } nSync execsql { INSERT INTO abc VALUES('a', 'b') } nSync } $expected_sync_count # With SAFE_APPEND set, the nRec field of the journal file header should # be set to 0xFFFFFFFF before the first journal sync. The nRec field # occupies bytes 8-11 of the journal file. # do_test io-4.2.1 { execsql { BEGIN } execsql { INSERT INTO abc VALUES('c', 'd') } file exists test.db-journal } {1} if {$::tcl_platform(platform)=="unix"} { do_test io-4.2.2 { set fd [open test.db-journal] fconfigure $fd -translation binary -encoding binary seek $fd 8 set blob [read $fd 4] close $fd binary scan $blob i res format 0x%X $res } {0xFFFFFFFF} } do_test io-4.2.3 { execsql { COMMIT } nSync } $expected_sync_count sqlite3_simulate_device -char safe_append # With SAFE_APPEND set, there should only ever be one journal-header # written to the database, even though the sync-mode is "full". # do_test io-4.3.1 { execsql { |
︙ | ︙ |
Changes to test/mallocD.test.
1 2 3 4 5 6 7 8 9 10 11 | # 2007 Aug 29 # # 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. # #*********************************************************************** # | | > > > > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # 2007 Aug 29 # # 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. # #*********************************************************************** # # $Id: mallocD.test,v 1.3 2007/09/03 17:02:50 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Only run these tests if memory debugging is turned on. # ifcapable !memdebug { puts "Skipping mallocD tests: not compiled with -DSQLITE_MEMDEBUG..." finish_test return } source $testdir/malloc_common.tcl sqlite3_simulate_device -char atomic set PREP { PRAGMA page_size = 1024; CREATE TABLE abc(a, b, c); } |
︙ | ︙ | |||
48 49 50 51 52 53 54 | INSERT INTO abc VALUES(4, 5, 6); COMMIT; } sqlite3_simulate_device -char {} finish_test | < | 55 56 57 58 59 60 61 | INSERT INTO abc VALUES(4, 5, 6); COMMIT; } sqlite3_simulate_device -char {} finish_test |