From bf2609781b811c9cbcdcd3ae307fa32bc13f568e Mon Sep 17 00:00:00 2001 From: danielk1977 Date: Tue, 22 Jan 2008 11:50:13 +0000 Subject: [PATCH] Move the test (sqlite3_simulate_device) functionality out of the main code and into a test vfs. (CVS 4737) FossilOrigin-Name: 17e7bd6c3f507ffc6b56f54ae8c70730e8246f39 --- Makefile.in | 1 + main.mk | 1 + manifest | 25 ++-- manifest.uuid | 2 +- src/os.c | 36 +---- src/test6.c | 13 +- src/test_devsym.c | 347 ++++++++++++++++++++++++++++++++++++++++++++++ test/io.test | 14 +- test/mallocD.test | 4 +- 9 files changed, 385 insertions(+), 58 deletions(-) create mode 100644 src/test_devsym.c diff --git a/Makefile.in b/Makefile.in index 5efb24a775..9076de78a3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -244,6 +244,7 @@ TESTSRC = \ $(TOP)/src/test_async.c \ $(TOP)/src/test_btree.c \ $(TOP)/src/test_config.c \ + $(TOP)/src/test_devsym.c \ $(TOP)/src/test_hexio.c \ $(TOP)/src/test_malloc.c \ $(TOP)/src/test_md5.c \ diff --git a/main.mk b/main.mk index b4825a372f..db0807d7f9 100644 --- a/main.mk +++ b/main.mk @@ -212,6 +212,7 @@ TESTSRC = \ $(TOP)/src/test_async.c \ $(TOP)/src/test_btree.c \ $(TOP)/src/test_config.c \ + $(TOP)/src/test_devsym.c \ $(TOP)/src/test_hexio.c \ $(TOP)/src/test_malloc.c \ $(TOP)/src/test_md5.c \ diff --git a/manifest b/manifest index 474bc51a7e..9a673c55b7 100644 --- a/manifest +++ b/manifest @@ -1,7 +1,7 @@ -C Changes\sto\slemon\sto\sgenerate\sadditional\scomments\sin\sthe\soutput\sfile\sand\nto\sremove\sunreachable\scode.\s\sAdditional\stest\scases\sfor\simproved\stest\ncoverage.\s(CVS\s4736) -D 2008-01-22T01:48:06 +C Move\sthe\stest\s(sqlite3_simulate_device)\sfunctionality\sout\sof\sthe\smain\scode\sand\sinto\sa\stest\svfs.\s(CVS\s4737) +D 2008-01-22T11:50:13 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 -F Makefile.in 30789bf70614bad659351660d76b8e533f3340e9 +F Makefile.in 936bcacced594b24b8fdcfc0fc0efc00e15de8a8 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F VERSION 6055d543dbd832b5c0209d6cc787413c1814efdc @@ -64,7 +64,7 @@ F ext/icu/README.txt 3b130aa66e7a681136f6add198b076a2f90d1e33 F ext/icu/icu.c 12e763d288d23b5a49de37caa30737b971a2f1e2 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 F ltmain.sh 56abb507100ed2d4261f6dd1653dec3cf4066387 -F main.mk 5ffa15b4f43f4e9720f216b6d8fc7cb96e6e4411 +F main.mk b49a8c68baf8c17f72bb1ac78ef183b62f6e3f97 F mkdll.sh 5f8438dcac98e795d7df6529159a1ec566de0183 F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f F mkextw.sh 1a866b53637dab137191341cc875575a5ca110fb @@ -113,7 +113,7 @@ F src/mutex.h 079fa6fe9da18ceb89e79012c010594c6672addb F src/mutex_os2.c 4058d04e81a6c1e240020d299a3192d92352c7ef F src/mutex_unix.c a6e111947a3cdaa2cda394ed060d7f496fcb4af8 F src/mutex_w32.c 6e197765f283815496193e78e9548b5d0e53b68e -F src/os.c 8360932f1450b2b45edb608a3b184b031f7d00cc +F src/os.c 32251c046e86772cedd56a18a2ff317bf493fa53 F src/os.h d04706d54a072c7a30ab9e346ad916ef28c842d5 F src/os_common.h 98862f120ca6bf7a48ce8b16f158b77d00bc9d2f F src/os_os2.c 4aca68faa5fe20e41e1b123a46087ebd9e0bb170 @@ -145,7 +145,7 @@ F src/test2.c 77b34303883b9d722c65a6879bb0163a400e3789 F src/test3.c 6b49ddb0946907a07210998810807ace51be00a5 F src/test4.c c2c0f5dc907f1346f5d4b65eb5799f11eb9e4071 F src/test5.c 3a6a5717a149d7ca2e6d14f5be72cf7555d54dc4 -F src/test6.c 8944b6482be3a54505c4f14339392448e4cabe66 +F src/test6.c f8b34a6ff04937092327798ddf0ab46863535bc5 F src/test7.c acec2256c7c2d279db5a8b5fa1a2a68fcc942c67 F src/test8.c 6399d2f0561f1f65785c63e94f2cdd36fb248872 F src/test9.c b46c8fe02ac7cca1a7316436d8d38d50c66f4b2f @@ -153,6 +153,7 @@ F src/test_async.c 5f21392d66869a4c87dc9153e40d0dc0e085261f F src/test_autoext.c 855157d97aa28cf84233847548bfacda21807436 F src/test_btree.c c1308ba0b88ab577fa56c9e493a09829dfcded9c F src/test_config.c fd6ba4c62dd943e794f00f6ea1e9e32d97bf27f1 +F src/test_devsym.c 6341971bf1c7769c740501b36bc6192cd975c335 F src/test_hexio.c 1a1cd8324d57585ea86b922f609fa1fbaaf9662d F src/test_loadext.c 22065d601a18878e5542191001f0eaa5d77c0ed8 F src/test_malloc.c 72ceed192f7b229db34a2869ff9285b41a5cb796 @@ -342,7 +343,7 @@ F test/insert4.test 6e382eaf7295a4463e6f29ea20fcd8e63d097eeb F test/insert5.test 509017213328147d3acdfa2c441bfd82362dda41 F test/interrupt.test 42e7cf98646fd9cb4a3b131a93ed3c50b9e149f1 F test/intpkey.test 537669fd535f62632ca64828e435b9e54e8d677f -F test/io.test 80a7a7f1a2792e037d447b03e8c22ee1f6eaf339 +F test/io.test f2e9890eb3f159973fcb11008054596b0caeca4f F test/ioerr.test 5382046b2ef19b9084652e7d2d1e82ab33c0deda F test/ioerr2.test e3d52c40f43f9b61da9b38951a737e7b84ebae96 F test/ioerr3.test d3cec5e1a11ad6d27527d0d38573fbff14c71bdd @@ -376,7 +377,7 @@ F test/mallocA.test 5ee8d42ff90e5b1aeee6fb645e73ffcb35bffd21 F test/mallocAll.test 2a2222a5e447be6c6579055a9a26e507e4586f4e F test/mallocB.test 82ecf4d3fa6c389cabc747daa2deddfe94af2a74 F test/mallocC.test 9daac0aa8e5b0afa7b0a3fb0cd792f02fe0cc838 -F test/mallocD.test d638fb8f214b47fd31edfae8af738b92bd943dc0 +F test/mallocD.test 24c1d07a00e605831d0d627b036bd690b2952416 F test/mallocE.test e15333c394d7c330c8372a7cdf7b0f7c16573082 F test/mallocF.test 6f25bc474f2b29954e5fac274d0e6ed9d86efea5 F test/mallocG.test ac896f96098a30ed0dcc001b6f9243770a463081 @@ -610,7 +611,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 51452d20f99ecbe0fdb73cfafde5270711aeacad -R 9db7de996b03087357a154a15493b9be -U drh -Z 821a8fe0db1ecdef250b265a178867b8 +P 2a0bc1e186532a0bfe36ca18fda74a5e7a199227 +R 8aeac68813d7cfbc6958a810d0c1e1d8 +U danielk1977 +Z 298f0f8d954eedc2b3f36fd2e741cf3e diff --git a/manifest.uuid b/manifest.uuid index 33bc45eb5f..661b50ad1d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -2a0bc1e186532a0bfe36ca18fda74a5e7a199227 \ No newline at end of file +17e7bd6c3f507ffc6b56f54ae8c70730e8246f39 \ No newline at end of file diff --git a/src/os.c b/src/os.c index f9291652ba..71284cd904 100644 --- a/src/os.c +++ b/src/os.c @@ -89,35 +89,13 @@ int sqlite3OsCheckReservedLock(sqlite3_file *id){ int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){ return id->pMethods->xFileControl(id,op,pArg); } - -#ifdef SQLITE_TEST - /* The following two variables are used to override the values returned - ** by the xSectorSize() and xDeviceCharacteristics() vfs methods for - ** testing purposes. They are usually set by a test command implemented - ** in test6.c. - */ - int sqlite3_test_sector_size = 0; - int sqlite3_test_device_characteristics = 0; - int sqlite3OsDeviceCharacteristics(sqlite3_file *id){ - int dc = id->pMethods->xDeviceCharacteristics(id); - return dc | sqlite3_test_device_characteristics; - } - int sqlite3OsSectorSize(sqlite3_file *id){ - if( sqlite3_test_sector_size==0 ){ - int (*xSectorSize)(sqlite3_file*) = id->pMethods->xSectorSize; - return (xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE); - } - return sqlite3_test_sector_size; - } -#else - int sqlite3OsSectorSize(sqlite3_file *id){ - int (*xSectorSize)(sqlite3_file*) = id->pMethods->xSectorSize; - return (xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE); - } - int sqlite3OsDeviceCharacteristics(sqlite3_file *id){ - return id->pMethods->xDeviceCharacteristics(id); - } -#endif +int sqlite3OsSectorSize(sqlite3_file *id){ + int (*xSectorSize)(sqlite3_file*) = id->pMethods->xSectorSize; + return (xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE); +} +int sqlite3OsDeviceCharacteristics(sqlite3_file *id){ + return id->pMethods->xDeviceCharacteristics(id); +} /* ** The next group of routines are convenience wrappers around the diff --git a/src/test6.c b/src/test6.c index 2e8c4f69dd..9330a1ddcb 100644 --- a/src/test6.c +++ b/src/test6.c @@ -849,22 +849,15 @@ static int devSymObjCmd( int objc, Tcl_Obj *CONST objv[] ){ - - extern int sqlite3_test_device_characteristics; - extern int sqlite3_test_sector_size; + void devsym_register(int iDeviceChar, int iSectorSize); int iDc = -1; int iSectorSize = -1; + if( processDevSymArgs(interp, objc-1, &objv[1], &iDc, &iSectorSize) ){ return TCL_ERROR; } - - if( iDc>=0 ){ - sqlite3_test_device_characteristics = iDc; - } - if( iSectorSize>=0 ){ - sqlite3_test_sector_size = iSectorSize; - } + devsym_register(iDc, iSectorSize); return TCL_OK; } diff --git a/src/test_devsym.c b/src/test_devsym.c new file mode 100644 index 0000000000..588f5d286d --- /dev/null +++ b/src/test_devsym.c @@ -0,0 +1,347 @@ +/* +** 2008 Jan 22 +** +** 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 contains code that modified the OS layer in order to simulate +** different device types (by overriding the return values of the +** xDeviceCharacteristics() and xSectorSize() methods). +*/ +#if SQLITE_TEST /* This file is used for testing only */ + +#include +#include "sqliteInt.h" + +/* +** Maximum pathname length supported by the devsym backend. +*/ +#define DEVSYM_MAX_PATHNAME 512 + +/* +** Name used to identify this VFS. +*/ +#define DEVSYM_VFS_NAME "devsym" + +typedef struct devsym_file devsym_file; +struct devsym_file { + sqlite3_file base; + sqlite3_file *pReal; +}; + +/* +** Method declarations for devsym_file. +*/ +static int devsymClose(sqlite3_file*); +static int devsymRead(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); +static int devsymWrite(sqlite3_file*,const void*,int iAmt, sqlite3_int64 iOfst); +static int devsymTruncate(sqlite3_file*, sqlite3_int64 size); +static int devsymSync(sqlite3_file*, int flags); +static int devsymFileSize(sqlite3_file*, sqlite3_int64 *pSize); +static int devsymLock(sqlite3_file*, int); +static int devsymUnlock(sqlite3_file*, int); +static int devsymCheckReservedLock(sqlite3_file*); +static int devsymFileControl(sqlite3_file*, int op, void *pArg); +static int devsymSectorSize(sqlite3_file*); +static int devsymDeviceCharacteristics(sqlite3_file*); + +/* +** Method declarations for devsym_vfs. +*/ +static int devsymOpen(sqlite3_vfs*, const char *, sqlite3_file*, int , int *); +static int devsymDelete(sqlite3_vfs*, const char *zName, int syncDir); +static int devsymAccess(sqlite3_vfs*, const char *zName, int flags); +static int devsymGetTempName(sqlite3_vfs*, int nOut, char *zOut); +static int devsymFullPathname(sqlite3_vfs*, const char *zName, int, char *zOut); +static void *devsymDlOpen(sqlite3_vfs*, const char *zFilename); +static void devsymDlError(sqlite3_vfs*, int nByte, char *zErrMsg); +static void *devsymDlSym(sqlite3_vfs*,void*, const char *zSymbol); +static void devsymDlClose(sqlite3_vfs*, void*); +static int devsymRandomness(sqlite3_vfs*, int nByte, char *zOut); +static int devsymSleep(sqlite3_vfs*, int microseconds); +static int devsymCurrentTime(sqlite3_vfs*, double*); + +static sqlite3_vfs devsym_vfs = { + 1, /* iVersion */ + sizeof(devsym_file), /* szOsFile */ + DEVSYM_MAX_PATHNAME, /* mxPathname */ + 0, /* pNext */ + DEVSYM_VFS_NAME, /* zName */ + 0, /* pAppData */ + devsymOpen, /* xOpen */ + devsymDelete, /* xDelete */ + devsymAccess, /* xAccess */ + devsymGetTempName, /* xGetTempName */ + devsymFullPathname, /* xFullPathname */ + devsymDlOpen, /* xDlOpen */ + devsymDlError, /* xDlError */ + devsymDlSym, /* xDlSym */ + devsymDlClose, /* xDlClose */ + devsymRandomness, /* xRandomness */ + devsymSleep, /* xSleep */ + devsymCurrentTime /* xCurrentTime */ +}; + +static sqlite3_io_methods devsym_io_methods = { + 1, /* iVersion */ + devsymClose, /* xClose */ + devsymRead, /* xRead */ + devsymWrite, /* xWrite */ + devsymTruncate, /* xTruncate */ + devsymSync, /* xSync */ + devsymFileSize, /* xFileSize */ + devsymLock, /* xLock */ + devsymUnlock, /* xUnlock */ + devsymCheckReservedLock, /* xCheckReservedLock */ + devsymFileControl, /* xFileControl */ + devsymSectorSize, /* xSectorSize */ + devsymDeviceCharacteristics /* xDeviceCharacteristics */ +}; + +struct DevsymGlobal { + sqlite3_vfs *pVfs; + int iDeviceChar; + int iSectorSize; +}; +struct DevsymGlobal g = {0, 0, 512}; + +/* +** Close an devsym-file. +*/ +static int devsymClose(sqlite3_file *pFile){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsClose(p->pReal); +} + +/* +** Read data from an devsym-file. +*/ +static int devsymRead( + sqlite3_file *pFile, + void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsRead(p->pReal, zBuf, iAmt, iOfst); +} + +/* +** Write data to an devsym-file. +*/ +static int devsymWrite( + sqlite3_file *pFile, + const void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsWrite(p->pReal, zBuf, iAmt, iOfst); +} + +/* +** Truncate an devsym-file. +*/ +static int devsymTruncate(sqlite3_file *pFile, sqlite_int64 size){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsTruncate(p->pReal, size); +} + +/* +** Sync an devsym-file. +*/ +static int devsymSync(sqlite3_file *pFile, int flags){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsSync(p->pReal, flags); +} + +/* +** Return the current file-size of an devsym-file. +*/ +static int devsymFileSize(sqlite3_file *pFile, sqlite_int64 *pSize){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsFileSize(p->pReal, pSize); +} + +/* +** Lock an devsym-file. +*/ +static int devsymLock(sqlite3_file *pFile, int eLock){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsLock(p->pReal, eLock); +} + +/* +** Unlock an devsym-file. +*/ +static int devsymUnlock(sqlite3_file *pFile, int eLock){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsUnlock(p->pReal, eLock); +} + +/* +** Check if another file-handle holds a RESERVED lock on an devsym-file. +*/ +static int devsymCheckReservedLock(sqlite3_file *pFile){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsCheckReservedLock(p->pReal); +} + +/* +** File control method. For custom operations on an devsym-file. +*/ +static int devsymFileControl(sqlite3_file *pFile, int op, void *pArg){ + devsym_file *p = (devsym_file *)pFile; + return sqlite3OsFileControl(p->pReal, op, pArg); +} + +/* +** Return the sector-size in bytes for an devsym-file. +*/ +static int devsymSectorSize(sqlite3_file *pFile){ + return g.iSectorSize; +} + +/* +** Return the device characteristic flags supported by an devsym-file. +*/ +static int devsymDeviceCharacteristics(sqlite3_file *pFile){ + return g.iDeviceChar; +} + +/* +** Open an devsym file handle. +*/ +static int devsymOpen( + sqlite3_vfs *pVfs, + const char *zName, + sqlite3_file *pFile, + int flags, + int *pOutFlags +){ + devsym_file *p = (devsym_file *)pFile; + pFile->pMethods = &devsym_io_methods; + p->pReal = (sqlite3_file *)&p[1]; + return sqlite3OsOpen(g.pVfs, zName, p->pReal, flags, pOutFlags); +} + +/* +** Delete the file located at zPath. If the dirSync argument is true, +** ensure the file-system modifications are synced to disk before +** returning. +*/ +static int devsymDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync){ + return sqlite3OsDelete(g.pVfs, zPath, dirSync); +} + +/* +** Test for access permissions. Return true if the requested permission +** is available, or false otherwise. +*/ +static int devsymAccess(sqlite3_vfs *pVfs, const char *zPath, int flags){ + return sqlite3OsAccess(g.pVfs, zPath, flags); +} + +/* +** Populate buffer zBufOut with a pathname suitable for use as a +** temporary file. zBufOut is guaranteed to point to a buffer of +** at least (DEVSYM_MAX_PATHNAME+1) bytes. +*/ +static int devsymGetTempName(sqlite3_vfs *pVfs, int nOut, char *zBufOut){ + return sqlite3OsGetTempname(g.pVfs, nOut, zBufOut); +} + +/* +** Populate buffer zOut with the full canonical pathname corresponding +** to the pathname in zPath. zOut is guaranteed to point to a buffer +** of at least (DEVSYM_MAX_PATHNAME+1) bytes. +*/ +static int devsymFullPathname( + sqlite3_vfs *pVfs, + const char *zPath, + int nOut, + char *zOut +){ + return sqlite3OsFullPathname(g.pVfs, zPath, nOut, zOut); +} + +/* +** Open the dynamic library located at zPath and return a handle. +*/ +static void *devsymDlOpen(sqlite3_vfs *pVfs, const char *zPath){ + return sqlite3OsDlOpen(g.pVfs, zPath); +} + +/* +** Populate the buffer zErrMsg (size nByte bytes) with a human readable +** utf-8 string describing the most recent error encountered associated +** with dynamic libraries. +*/ +static void devsymDlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg){ + sqlite3OsDlError(g.pVfs, nByte, zErrMsg); +} + +/* +** Return a pointer to the symbol zSymbol in the dynamic library pHandle. +*/ +static void *devsymDlSym(sqlite3_vfs *pVfs, void *pHandle, const char *zSymbol){ + return sqlite3OsDlSym(g.pVfs, pHandle, zSymbol); +} + +/* +** Close the dynamic library handle pHandle. +*/ +static void devsymDlClose(sqlite3_vfs *pVfs, void *pHandle){ + sqlite3OsDlClose(g.pVfs, pHandle); +} + +/* +** Populate the buffer pointed to by zBufOut with nByte bytes of +** random data. +*/ +static int devsymRandomness(sqlite3_vfs *pVfs, int nByte, char *zBufOut){ + return sqlite3OsRandomness(g.pVfs, nByte, zBufOut); +} + +/* +** Sleep for nMicro microseconds. Return the number of microseconds +** actually slept. +*/ +static int devsymSleep(sqlite3_vfs *pVfs, int nMicro){ + return sqlite3OsSleep(g.pVfs, nMicro); +} + +/* +** Return the current time as a Julian Day number in *pTimeOut. +*/ +static int devsymCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut){ + return sqlite3OsCurrentTime(g.pVfs, pTimeOut); +} + +/* +** This procedure registers the devsym vfs with SQLite. If the argument is +** true, the devsym vfs becomes the new default vfs. It is the only publicly +** available function in this file. +*/ +void devsym_register(int iDeviceChar, int iSectorSize){ + if( g.pVfs==0 ){ + g.pVfs = sqlite3_vfs_find(0); + devsym_vfs.szOsFile += g.pVfs->szOsFile; + sqlite3_vfs_register(&devsym_vfs, 0); + } + if( iDeviceChar>=0 ){ + g.iDeviceChar = iDeviceChar; + } + if( iSectorSize>=0 ){ + g.iSectorSize = iSectorSize; + } +} + +#endif + diff --git a/test/io.test b/test/io.test index 297ccf9bfc..70d0a96511 100644 --- a/test/io.test +++ b/test/io.test @@ -13,11 +13,15 @@ # 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.13 2007/11/27 23:11:45 drh Exp $ +# $Id: io.test,v 1.14 2008/01/22 11:50:13 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl +db close +sqlite3_simulate_device +sqlite3 db test.db -vfs devsym + # Test summary: # # io-1.* - Test that quick-balance does not journal pages unnecessarily. @@ -157,7 +161,7 @@ do_test io-2.4.1 { BEGIN; INSERT INTO abc VALUES(5, 6); } - sqlite3 db2 test.db + sqlite3 db2 test.db -vfs devsym execsql { SELECT * FROM abc } db2 } {1 2 3 4} do_test io-2.4.2 { @@ -296,7 +300,7 @@ do_test io-2.9.2 { execsql { ROLLBACK; } db close file delete -force test.db test.db-journal - sqlite3 db test.db + sqlite3 db test.db -vfs devsym execsql { PRAGMA auto_vacuum = OFF; PRAGMA page_size = 2048; @@ -369,7 +373,7 @@ ifcapable pager_pragmas { do_test io-3.1 { db close file delete -force test.db test.db-journal - sqlite3 db test.db + sqlite3 db test.db -vfs devsym db eval { PRAGMA auto_vacuum=OFF; } @@ -526,7 +530,7 @@ foreach {char sectorsize pgsize} { db close file delete -force test.db test.db-journal sqlite3_simulate_device -char $char -sectorsize $sectorsize - sqlite3 db test.db + sqlite3 db test.db -vfs devsym db eval { PRAGMA auto_vacuum=OFF; } diff --git a/test/mallocD.test b/test/mallocD.test index 074224b2e4..bd44449d2b 100644 --- a/test/mallocD.test +++ b/test/mallocD.test @@ -9,7 +9,7 @@ # #*********************************************************************** # -# $Id: mallocD.test,v 1.4 2007/10/09 08:29:33 danielk1977 Exp $ +# $Id: mallocD.test,v 1.5 2008/01/22 11:50:13 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -23,7 +23,9 @@ ifcapable !memdebug { } source $testdir/malloc_common.tcl +db close sqlite3_simulate_device -char atomic +sqlite3 db test.db -vfs devsym set PREP { PRAGMA page_size = 1024;