# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1276259362 -10800 # Node ID 63532cdadd44f868011715cee1a7f42109c67b43 # Parent a7ba600cb39dfbc71365dfaed445c2340fa665e7 Revision: 201023 Kit: 2010123 diff -r a7ba600cb39d -r 63532cdadd44 layers.sysdef.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layers.sysdef.xml Fri Jun 11 15:29:22 2010 +0300 @@ -0,0 +1,166 @@ + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/Rom/logengtest.iby --- a/loggingservices/eventlogger/Rom/logengtest.iby Thu May 27 14:29:47 2010 +0300 +++ b/loggingservices/eventlogger/Rom/logengtest.iby Fri Jun 11 15:29:22 2010 +0300 @@ -61,11 +61,13 @@ file=ABI_DIR\BUILD_DIR\t_logcompat.exe Test\t_logcompat.exe file=ABI_DIR\BUILD_DIR\t_logsimid.exe Test\t_logsimid.exe -data=ZSYSTEM\test\logengtests.bat Test\logengtests.bat -data=ZSYSTEM\data\oldLogdbu.dat system\data\oldLogdbu.dat -data=ZSYSTEM\data\corruptLogdbu.dat system\data\corruptLogdbu.dat -data=ZSYSTEM\data\corruptDamagedLogdbu.dat system\data\corruptDamagedLogdbu.dat -data=ZSYSTEM\data\101f401d.txt system\data\101f401d.txt +data=DATAZ_\test\logengtests.bat Test\logengtests.bat + +data=DATAZ_\test\oldLogdbu.dat Test\oldLogdbu.dat +data=DATAZ_\test\corruptLogdbu.dat Test\corruptLogdbu.dat +data=DATAZ_\test\corruptDamagedLogdbu.dat Test\corruptDamagedLogdbu.dat +data=DATAZ_\test\101f401d.txt Test\101f401d.txt + //The next line to be uncommented if the testing is performed locally. Otherwise t_logview2 fails - //the following file is missing and needed by the time zone server. //data=ZPRIVATE\10202BE9\1020383e.txt private\10202be9\1020383e.txt diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/group/BLD.INF --- a/loggingservices/eventlogger/group/BLD.INF Thu May 27 14:29:47 2010 +0300 +++ b/loggingservices/eventlogger/group/BLD.INF Fri Jun 11 15:29:22 2010 +0300 @@ -20,6 +20,7 @@ */ PRJ_EXPORTS + ../LogWrap/inc/LOGWRAP.H SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(logwrap.h) ../LogWrap/inc/LOGWRAPCONST.H SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(logwrapconst.h) ../LogWrap/inc/LOGWRAPLIMITS.H SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(logwraplimits.h) @@ -51,6 +52,7 @@ ../conf/eventlogger_101f401d.crml OS_LAYER_EXPORTS_CRML(eventlogger_101f401d.crml) PRJ_MMPFILES + LOGWRAP.MMP logstub.mmp logserv.mmp @@ -58,14 +60,17 @@ logcntmodel.mmp PRJ_TESTEXPORTS -../Rom/logengtest.iby /epoc32/rom/include/logengtest.iby -../group/logengtests.bat /epoc32/data/z/system/test/logengtests.bat -../test/contacttestmanualpost.bat /epoc32/data/z/system/test/contacttestmanualpost.bat -../test/contacttestmanualpre.bat /epoc32/data/z/system/test/contacttestmanualpre.bat -../test/logservcntmatch.rsc /epoc32/data/z/system/test/logservcntmatch.rsc + +../Rom/logengtest.iby /epoc32/rom/include/logengtest.iby +../group/logengtests.bat z:/test/logengtests.bat +../test/src/oldLogdbu.dat z:/test/oldLogdbu.dat +../test/src/corruptLogdbu.dat z:/test/corruptLogdbu.dat +../test/src/corruptDamagedLogdbu.dat z:/test/corruptDamagedLogdbu.dat +../test/101f401d.txt z:/test/101f401d.txt PRJ_TESTMMPFILES + ../test/t_logtype.mmp ../test/t_logapi.mmp ../test/t_logapi2.mmp @@ -101,8 +106,4 @@ ../test/t_logsimid.mmp ../test/t_logcntmatchplugin.mmp support -PRJ_TESTEXTENSIONS -start extension syslibs/test/logeng_copytestfiles -end - #include "../test/tef/group/bld.inf" diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/contacttestmanualpost.bat --- a/loggingservices/eventlogger/test/contacttestmanualpost.bat Thu May 27 14:29:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -@echo off -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -if not exist %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC.TMP goto noTmpFiles - -rem Delete new ( matching disabled ) rsc files -del /f %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC -del /f %EPOCROOT%EPOC32\RELEASE\WINSCW\UREL\Z\private\101f401d\LOGSERV.RSC -del /f %EPOCROOT%EPOC32\data\Z\Private\101f401d\logserv.rsc - -rem Restore original ( matching disabled ) rsc files -rename %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC.TMP LOGSERV.RSC -rename %EPOCROOT%EPOC32\RELEASE\WINSCW\UREL\Z\private\101f401d\LOGSERV.RSC.TMP LOGSERV.RSC -rename %EPOCROOT%EPOC32\data\Z\Private\101f401d\logserv.rsc.tmp logserv.rsc -goto :EOF - -:noTmpFiles -@echo No temp files exist, pre bat file hasn't been run or %0 already called diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/contacttestmanualpre.bat --- a/loggingservices/eventlogger/test/contacttestmanualpre.bat Thu May 27 14:29:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -@echo off -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -@rem This call is so that the batch file can be used unaltered by the ONB -@if exist \textshell.bat call \textshell.bat - -@if not exist %EPOCROOT%EPOC32\DATA\Z\SYSTEM\TEST\LOGSERVCNTMATCH.RSC goto notBuilt -@if exist %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC.TMP goto TmpFilesExist - -@rem Save original ( matching disabled ) rsc files -@rename %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC LOGSERV.RSC.TMP -@rename %EPOCROOT%EPOC32\RELEASE\WINSCW\UREL\Z\private\101f401d\LOGSERV.RSC LOGSERV.RSC.TMP -@rename %EPOCROOT%EPOC32\data\Z\Private\101f401d\logserv.rsc logserv.rsc.tmp - -@rem Copy over new ( matching enabled ) rsc file -@copy /y %EPOCROOT%EPOC32\DATA\Z\SYSTEM\TEST\LOGSERVCNTMATCH.RSC %EPOCROOT%EPOC32\RELEASE\WINSCW\UDEB\Z\private\101f401d\LOGSERV.RSC -@copy /y %EPOCROOT%EPOC32\DATA\Z\SYSTEM\TEST\LOGSERVCNTMATCH.RSC %EPOCROOT%EPOC32\RELEASE\WINSCW\UREL\Z\private\101f401d\LOGSERV.RSC -@copy /y %EPOCROOT%EPOC32\DATA\Z\SYSTEM\TEST\LOGSERVCNTMATCH.RSC %EPOCROOT%EPOC32\data\Z\Private\101f401d\logserv.rsc -@goto :EOF - -:TmpFilesExist -@echo Tmp files exist %0 already called -@goto :EOF - -:notBuilt -@echo %EPOCROOT%EPOC32\DATA\Z\SYSTEM\TEST\LOGSERVCNTMATCH.RSC doesn't exist, test files not exported. diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/logservcntmatch.rsc Binary file loggingservices/eventlogger/test/logservcntmatch.rsc has changed diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/src/CntModel.ini Binary file loggingservices/eventlogger/test/src/CntModel.ini has changed diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/src/SQLite__Contacts.cdb Binary file loggingservices/eventlogger/test/src/SQLite__Contacts.cdb has changed diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/src/t_logapi.cpp --- a/loggingservices/eventlogger/test/src/t_logapi.cpp Thu May 27 14:29:47 2010 +0300 +++ b/loggingservices/eventlogger/test/src/t_logapi.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -786,7 +786,7 @@ User::After(1000); //copy the repository file to the folder 10202be9 - _LIT(KCommandParameters1, "z:\\system\\data\\101f401d.txt;c:\\private\\10202be9\\101f401d.txt;0"); + _LIT(KCommandParameters1, "z:\\test\\101f401d.txt;c:\\private\\10202be9\\101f401d.txt;0"); r = process.Create(KExecutableFileName, KCommandParameters1); process.Resume(); process.Close(); diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/eventlogger/test/src/t_loghicaphelper.cpp --- a/loggingservices/eventlogger/test/src/t_loghicaphelper.cpp Thu May 27 14:29:47 2010 +0300 +++ b/loggingservices/eventlogger/test/src/t_loghicaphelper.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -69,9 +69,9 @@ EIsMatchingEnabled } ; -_LIT(KOldCorruptDatabase,"z:\\system\\data\\corruptLogdbu.dat"); -_LIT(KOldCorruptDamagedDatabase,"z:\\system\\data\\corruptDamagedLogdbu.dat"); -_LIT(KOldFormatDatabase,"z:\\system\\data\\oldLogdbu.dat"); +_LIT(KOldCorruptDatabase,"z:\\test\\corruptLogdbu.dat"); +_LIT(KOldCorruptDamagedDatabase,"z:\\test\\corruptDamagedLogdbu.dat"); +_LIT(KOldFormatDatabase,"z:\\test\\oldLogdbu.dat"); CTestActive::CTestActive(TInt aPriority) @@ -149,7 +149,7 @@ //This eventually calls CLogBackup::ChangeFileLockL(..) which closes the database //file and notifies all handles to that file that it has closed. backup->CloseFileL(KLogDatabaseName, MBackupObserver::EReleaseLockNoAccess); - User::After(300000); + User::After(1000000); //Since the log engine database file is closed we can replace it. //Once this file is deleted, the backup server notices this and attempts to reopen @@ -387,7 +387,7 @@ //This eventually calls CLogBackup::ChangeFileLockL(..) which closes the database //file and notifies all handles to that file that it has closed. backup->CloseFileL(aDbPath, MBackupObserver::EReleaseLockNoAccess); - User::After(300000); + User::After(1000000); } //Since the log engine database file is closed we can delete it. diff -r a7ba600cb39d -r 63532cdadd44 loggingservices/filelogger/SCLI/FLOGCLI.CPP --- a/loggingservices/filelogger/SCLI/FLOGCLI.CPP Thu May 27 14:29:47 2010 +0300 +++ b/loggingservices/filelogger/SCLI/FLOGCLI.CPP Fri Jun 11 15:29:22 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -423,11 +423,26 @@ TBuf8<1600> buf; //Want at least an mtu sized buffer //PG 14/08/2002 - If mode is set to *Raw, Don't change format of client buffer if(aMode == EFileLoggingModeAppendRaw || aMode == EFileLoggingModeOverwriteRaw) - buf.Copy(aText); + { + TPtrC8 ptr8; + if (logger.LogSTI()) + { + ptr8.Set(aText.Left(KLogBufferSize)); //in LogSTI mode, truncate to KLogBufferSize + } + else + { + ptr8.Set(aText.Left(1600)); // truncate to 1600 + } + buf.Copy(ptr8); + } else + { ret=logger.iFormatter.FormatTextToWritableBuffer(buf,aText); + } if (ret==KErrNone) + { logger.DoStaticWrite(buf); + } } logger.Close(); } @@ -597,11 +612,12 @@ n.Copy(aBuf); TFileName logFileName = iLogFile.Name(); RDebug::Print(_L("FLG %S %S"),&logFileName,&n); - } else - { - TPckg logFilePckg(iLogFile); - iLastError=SendReceive(EWriteLog,TIpcArgs (&logFilePckg, &aBuf)); - } + } + else + { + TPckg logFilePckg(iLogFile); + iLastError=SendReceive(EWriteLog,TIpcArgs (&logFilePckg, &aBuf)); + } } void RFileLogger::DoStaticWrite(const TDesC8& aBuf) @@ -624,10 +640,11 @@ n.Copy(aBuf); TFileName logFileName = iLogFile.Name(); RDebug::Print(_L("FLG %S %S"),&logFileName,&n); - } else - { - SendReceive(ECreateWriteAndCloseLog, TIpcArgs( &logFilePckg, &aBuf)); // ignore error - } + } + else + { + SendReceive(ECreateWriteAndCloseLog, TIpcArgs( &logFilePckg, &aBuf)); // ignore error + } } void RFileLogger::DoWriteFormat(TRefByValue aFmt, VA_LIST& aList) diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/dbms/group/BLD.INF --- a/persistentstorage/dbms/group/BLD.INF Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/dbms/group/BLD.INF Fri Jun 11 15:29:22 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -40,6 +40,7 @@ ../bmake/EDBSRV.MMP PRJ_TESTMMPFILES + ../tdbms/t_dbenvcreate.mmp ../tdbms/t_dbalter.mmp ../tdbms/t_dbbench.mmp @@ -77,11 +78,28 @@ ../tdbms/t_dbperf3.mmp ../tdbms/t_dbenvdestroy.mmp -PRJ_TESTEXTENSIONS -start extension syslibs/test/dbms_copytestdbscfiles -end - PRJ_TESTEXPORTS -DBMSTests.iby /epoc32/rom/include/dbmstests.iby -DbmsTests.bat /epoc32/data/z/system/test/dbmstests.bat +DBMSTests.iby /epoc32/rom/include/dbmstests.iby +DbmsTests.bat z:/test/dbmstests.bat + +../tdbms/11335577.spd z:/private/100012a5/policy/11335577.spd +../tdbms/11335578.spd z:/private/100012a5/policy/11335578.spd +../tdbms/11335579.spd z:/private/100012a5/policy/11335579.spd +../tdbms/1133557A.spd z:/private/100012a5/policy/1133557a.spd +../tdbms/12344321.spd z:/private/100012a5/policy/12344321.spd +../tdbms/dbs_11335578_A.DB z:/private/100012a5/dbs_11335578_a.db +../tdbms/dbs_11335578_B.DB z:/private/100012a5/dbs_11335578_b.db +../tdbms/dbs_11335578_Z.DB z:/private/100012a5/dbs_11335578_z.db +../tdbms/dbs_11335579_TESTDB.DB z:/private/100012a5/dbs_11335579_testdb.db +../tdbms/dbs_1133557A_ZZZ.DB z:/private/100012a5/dbs_1133557a_zzz.db +../tdbms/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.DB z:/private/100012a5/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.db +../tdbms/11335577.txt z:/test/11335577.txt +../tdbms/11335578.txt z:/test/11335578.txt +../tdbms/11335579.txt z:/test/11335579.txt +../tdbms/1133557A.txt z:/test/1133557A.txt +../tdbms/t_dbperf1.sql z:/test/t_dbperf1.sql +../tdbms/t_script.txt z:/test/t_script.txt +../tdbms/typetextktests44.dat z:/test/typetextktests44.dat +../tdbms/typetextktests46.dat z:/test/typetextktests46.dat +../tdbms/typetextktests47.dat z:/test/typetextktests47.dat diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/dbms/group/DBMSTests.iby --- a/persistentstorage/dbms/group/DBMSTests.iby Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/dbms/group/DBMSTests.iby Fri Jun 11 15:29:22 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -20,30 +20,31 @@ REM DBMS Tests #include -data=ZSYSTEM\TEST\T_SCRIPT.TXT \TEST\T_SCRIPT.TXT -data=ZSYSTEM\TEST\11335577.TXT \TEST\11335577.TXT -data=ZSYSTEM\TEST\11335578.TXT \TEST\11335578.TXT -data=ZSYSTEM\TEST\11335579.TXT \TEST\11335579.TXT -data=ZSYSTEM\TEST\1133557A.TXT \TEST\1133557A.TXT -data=ZSYSTEM\test\DBMStests.bat \TEST\DBMStests.bat -data=ZSYSTEM\TEST\t_dbperf1.sql \TEST\t_dbperf1.sql +data=DATAZ_\test\DBMStests.bat \TEST\DBMStests.bat + +data=DATAZ_\TEST\T_SCRIPT.TXT \TEST\T_SCRIPT.TXT +data=DATAZ_\TEST\11335577.TXT \TEST\11335577.TXT +data=DATAZ_\TEST\11335578.TXT \TEST\11335578.TXT +data=DATAZ_\TEST\11335579.TXT \TEST\11335579.TXT +data=DATAZ_\TEST\1133557A.TXT \TEST\1133557A.TXT +data=DATAZ_\TEST\t_dbperf1.sql \TEST\t_dbperf1.sql // Work around for DEF063276 -data=ZSYSTEM\test\TypeTextKTests44.dat \TEST\TypeTextKTests44.dat -data=ZSYSTEM\test\TypeTextKTests46.dat \TEST\TypeTextKTests46.dat -data=ZSYSTEM\test\TypeTextKTests47.dat \TEST\TypeTextKTests47.dat +data=DATAZ_\test\TypeTextKTests44.dat \TEST\TypeTextKTests44.dat +data=DATAZ_\test\TypeTextKTests46.dat \TEST\TypeTextKTests46.dat +data=DATAZ_\test\TypeTextKTests47.dat \TEST\TypeTextKTests47.dat -data=ZPRIVATE\100012A5\POLICY\11335577.SPD \PRIVATE\100012A5\POLICY\11335577.SPD -data=ZPRIVATE\100012A5\POLICY\11335578.SPD \PRIVATE\100012A5\POLICY\11335578.SPD -data=ZPRIVATE\100012A5\POLICY\11335579.SPD \PRIVATE\100012A5\POLICY\11335579.SPD -data=ZPRIVATE\100012A5\POLICY\1133557A.SPD \PRIVATE\100012A5\POLICY\1133557A.SPD -data=ZPRIVATE\100012A5\POLICY\12344321.SPD \PRIVATE\100012A5\POLICY\12344321.SPD -data=ZPRIVATE\100012A5\DBS_11335578_A.DB \PRIVATE\100012A5\Dbs_11335578_a.dB -data=ZPRIVATE\100012A5\DBS_11335578_B.DB \PRIVATE\100012A5\dbs_11335578_b.DB -data=ZPRIVATE\100012A5\DBS_11335578_Z.DB \PRIVATE\100012A5\dBS_11335578_z.db -data=ZPRIVATE\100012A5\DBS_11335579_TESTDB.DB \PRIVATE\100012A5\DbS_11335579_TEStdB.DB +data=ZPRIVATE\100012A5\POLICY\11335577.SPD \PRIVATE\100012A5\POLICY\11335577.SPD +data=ZPRIVATE\100012A5\POLICY\11335578.SPD \PRIVATE\100012A5\POLICY\11335578.SPD +data=ZPRIVATE\100012A5\POLICY\11335579.SPD \PRIVATE\100012A5\POLICY\11335579.SPD +data=ZPRIVATE\100012A5\POLICY\1133557A.SPD \PRIVATE\100012A5\POLICY\1133557A.SPD +data=ZPRIVATE\100012A5\POLICY\12344321.SPD \PRIVATE\100012A5\POLICY\12344321.SPD +data=ZPRIVATE\100012A5\DBS_11335578_A.DB \PRIVATE\100012A5\Dbs_11335578_a.dB +data=ZPRIVATE\100012A5\DBS_11335578_B.DB \PRIVATE\100012A5\dbs_11335578_b.DB +data=ZPRIVATE\100012A5\DBS_11335578_Z.DB \PRIVATE\100012A5\dBS_11335578_z.db +data=ZPRIVATE\100012A5\DBS_11335579_TESTDB.DB \PRIVATE\100012A5\DbS_11335579_TEStdB.DB data=ZPRIVATE\100012A5\DBS_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.DB \PRIVATE\100012A5\DBS_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.DB -data=ZPRIVATE\100012A5\DBS_1133557A_ZZZ.DB \PRIVATE\100012A5\DBS_1133557A_ZZZ.db +data=ZPRIVATE\100012A5\DBS_1133557A_ZZZ.DB \PRIVATE\100012A5\DBS_1133557A_ZZZ.db file=ABI_DIR\BUILD_DIR\TEST.DBX \SYSTEM\LIBS\TEST.DBX file=ABI_DIR\BUILD_DIR\T_DBENVCREATE.EXE \TEST\T_DBENVCREATE.EXE diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/dbms/pcdbms/ustor/US_FILE.CPP --- a/persistentstorage/dbms/pcdbms/ustor/US_FILE.CPP Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/dbms/pcdbms/ustor/US_FILE.CPP Fri Jun 11 15:29:22 2010 +0300 @@ -91,11 +91,13 @@ { default: __LEAVE(KErrNotSupported); +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . case TDbFormat::ECreate: - store=CPermanentFileStore::CreateL(iFs,aName,EFileRead|EFileWrite); + store=CPermanentFileStore::CreateL(iFs,aName,EFileRead|EFileWrite|EFileWriteDirectIO); break; +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . case TDbFormat::EReplace: - store=CPermanentFileStore::ReplaceL(iFs,aName,EFileRead|EFileWrite); + store=CPermanentFileStore::ReplaceL(iFs,aName,EFileRead|EFileWrite|EFileWriteDirectIO); break; }; iStore=store; @@ -138,6 +140,8 @@ // iName=aName.AllocL(); const TUint mode=aMode==TDbFormat::EReadOnly ? EFileShareReadersOnly : EFileWrite; +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . + mode=mode|EFileWriteDirectIO; CFileStore* store=CPermanentFileStore::OpenL(iFs,*iName,mode); iStore=store; CDbStoreDatabase::RestoreL(DatabaseIdL(store->Root())); diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/dbms/ustor/US_FILE.CPP --- a/persistentstorage/dbms/ustor/US_FILE.CPP Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/dbms/ustor/US_FILE.CPP Fri Jun 11 15:29:22 2010 +0300 @@ -98,10 +98,12 @@ default: __LEAVE(KErrNotSupported); case TDbFormat::ECreate: - store=CPermanentFileStore::CreateL(iFs,aName,EFileRead|EFileWrite); +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . + store=CPermanentFileStore::CreateL(iFs,aName,EFileRead|EFileWrite/EFileWriteDirectIO); break; case TDbFormat::EReplace: - store=CPermanentFileStore::ReplaceL(iFs,aName,EFileRead|EFileWrite); +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . + store=CPermanentFileStore::ReplaceL(iFs,aName,EFileRead|EFileWrite/EFileWriteDirectIO); break; }; iStore=store; @@ -143,7 +145,9 @@ __ASSERT(!iName); // check construction phase // iName=aName.AllocL(); - const TUint mode=aMode==TDbFormat::EReadOnly ? EFileShareReadersOnly : EFileWrite; + TUint mode=aMode==TDbFormat::EReadOnly ? EFileShareReadersOnly : EFileWrite; +// When the file cache in file server is on, the order of file writing is not guaranteed which could cause data inconsistency in some circumstances, for example, when the power is lost in the middle of data transaction. Therefore, the file write cache is switched off here to maintain the file integrity . + mode = mode|EFileWriteDirectIO; CFileStore* store=CPermanentFileStore::OpenL(iFs,*iName,mode); iStore=store; CDbStoreDatabase::RestoreL(DatabaseIdL(store->Root())); diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/GROUP/BLD.INF --- a/persistentstorage/sql/GROUP/BLD.INF Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/GROUP/BLD.INF Fri Jun 11 15:29:22 2010 +0300 @@ -43,8 +43,34 @@ PRJ_TESTEXPORTS -sqltests.iby /epoc32/rom/include/sqltests.iby -sqltests.bat /epoc32/data/z/system/test/sqltests.bat +sqltests.iby /epoc32/rom/include/sqltests.iby +sqltests.bat z:/test/sqltests.bat + +../TEST/TestDb1.db z:/test/testdb1.db +../TEST/CorruptDb.db z:/test/corruptdb.db +../TEST/contacts_schema_to_vendors.sql z:/test/contacts_schema_to_vendors.sql +../TEST/add_simple_contacts.sql z:/test/add_simple_contacts.sql +../TEST/t_SqlShortNonDb.db z:/test/t_sqlshortnondb.db +../TEST/contacts_startup_time.sql z:/test/contacts_startup_time.sql +../TEST/t_inc095412.db z:/test/t_inc095412.db +../TEST/default_avacon.dbSQL z:/test/default_avacon.dbSQL +../TEST/t_sqlbur_backup_ver0.bak z:/test/t_sqlbur_backup_ver0.bak +../TEST/t_sqlperformance4.sql z:/test/t_sqlperformance4.sql +../TEST/{21212122}AADb2.db z:/private/10281e17/[21212122]aadb2.db +../TEST/{21212122}BBDb2.db z:/private/10281e17/[21212122]bbdb2.db +../TEST/{21212125}T_AB.db z:/private/10281e17/[21212125]t_ab.db +../TEST/{1111CCCC}T_AB.db z:/private/10281e17/[1111CCCC]t_ab.db +../TEST/{21212125}T_OneDefPolicy.db z:/private/10281e17/[21212125]t_onedefpolicy.db +//../TEST/SqlServer.cfg z:/private/10281e17/sqlserver.cfg +../TEST/t_sqldb1.db z:/private/21212124/t_sqldb1.db +../TEST/{98765432}t_2defaultpolicies.db z:/private/10281e17/[98765432]t_2defaultpolicies.db +../TEST/{98765432}t_emptysettings.db z:/private/10281e17/[98765432]t_emptysettings.db +../TEST/{98765432}t_invobject.db z:/private/10281e17/[98765432]t_invobject.db +../TEST/{98765432}t_invversion.db z:/private/10281e17/[98765432]t_invversion.db +../TEST/{98765432}t_longcollation.db z:/private/10281e17/[98765432]t_longcollation.db +../TEST/{98765432}t_nocollation.db z:/private/10281e17/[98765432]t_nocollation.db +../TEST/{98765432}t_nodefaultpolicy.db z:/private/10281e17/[98765432]t_nodefaultpolicy.db +../TEST/{98765432}t_nosettings.db z:/private/10281e17/[98765432]t_nosettings.db PRJ_TESTMMPFILES @@ -85,6 +111,7 @@ t_sqlperformance2.mmp t_sqlperformance3.mmp t_sqlperformance4.mmp +t_sqlperformance5.mmp t_sqlood.mmp t_sqloslayer.mmp t_sqldefect.mmp @@ -113,10 +140,5 @@ t_sqlcorrupt.mmp t_sqlenvdestroy.mmp - -PRJ_TESTEXTENSIONS -start extension syslibs/test/sql_copysqltestfiles -end - #include "../TEST/testexecute/group/bld.inf" diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/GROUP/sqltests.bat --- a/persistentstorage/sql/GROUP/sqltests.bat Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/GROUP/sqltests.bat Fri Jun 11 15:29:22 2010 +0300 @@ -42,6 +42,7 @@ T_SQLPERFORMANCE2.EXE T_SQLPERFORMANCE3.EXE T_SQLPERFORMANCE4.EXE +T_SQLPERFORMANCE5.EXE T_SQLOOD.EXE T_SQLOSLAYER.EXE T_SQLDEFECT.EXE diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/GROUP/sqltests.iby --- a/persistentstorage/sql/GROUP/sqltests.iby Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/GROUP/sqltests.iby Fri Jun 11 15:29:22 2010 +0300 @@ -22,8 +22,6 @@ #include #include #include -#include - //Include the following to enable the ulogger server and the client tool. //This is used to perform tracing using the UTF2 @@ -31,32 +29,32 @@ //#include //#include -data=ZSYSTEM\test\sqlTests.bat \TEST\sqlTests.bat -data=ZSYSTEM\test\contacts_schema_to_vendors.sql \TEST\contacts_schema_to_vendors.sql -data=ZSYSTEM\test\add_simple_contacts.sql \TEST\add_simple_contacts.sql -data=ZSYSTEM\test\contacts_startup_time.sql \TEST\contacts_startup_time.sql -data=ZSYSTEM\test\TestDb1.DB \TEST\TestDb1.dB -data=ZSYSTEM\test\CorruptDb.DB \TEST\CorruptDb.dB -data=ZSYSTEM\test\t_SqlShortNonDb.db \TEST\t_SqlShortNonDb.db -data=ZPRIVATE\10281e17\[21212122]AADb2.db \PRIVATE\10281e17\[21212122]AADb2.db -data=ZPRIVATE\10281e17\[21212122]BBDb2.db \PRIVATE\10281e17\[21212122]BBDb2.db -data=ZPRIVATE\10281e17\[21212125]T_AB.db \PRIVATE\10281e17\[21212125]T_AB.db -data=ZPRIVATE\10281e17\[1111CCCC]T_AB.db \PRIVATE\10281e17\[1111CCCC]T_AB.db -data=ZPRIVATE\21212124\t_sqldb1.db \PRIVATE\21212124\t_sqldb1.db -data=ZSYSTEM\test\t_inc095412.db \TEST\t_inc095412.db -data=ZPRIVATE\10281e17\[21212125]T_OneDefPolicy.db \PRIVATE\10281e17\[21212125]T_OneDefPolicy.db -data=ZSYSTEM\test\default_avacon.dbSQL \TEST\default_avacon.dbSQL -data=ZPRIVATE\10281e17\[98765432]t_2defaultpolicies.db \PRIVATE\10281e17\[98765432]t_2defaultpolicies.db -data=ZPRIVATE\10281e17\[98765432]t_emptysettings.db \PRIVATE\10281e17\[98765432]t_emptysettings.db -data=ZPRIVATE\10281e17\[98765432]t_invobject.db \PRIVATE\10281e17\[98765432]t_invobject.db -data=ZPRIVATE\10281e17\[98765432]t_invversion.db \PRIVATE\10281e17\[98765432]t_invversion.db -data=ZPRIVATE\10281e17\[98765432]t_longcollation.db \PRIVATE\10281e17\[98765432]t_longcollation.db -data=ZPRIVATE\10281e17\[98765432]t_nocollation.db \PRIVATE\10281e17\[98765432]t_nocollation.db +data=DATAZ_\test\sqlTests.bat \TEST\sqlTests.bat + +data=DATAZ_\test\contacts_schema_to_vendors.sql \TEST\contacts_schema_to_vendors.sql +data=DATAZ_\test\add_simple_contacts.sql \TEST\add_simple_contacts.sql +data=DATAZ_\test\contacts_startup_time.sql \TEST\contacts_startup_time.sql +data=DATAZ_\test\TestDb1.DB \TEST\TestDb1.dB +data=DATAZ_\test\CorruptDb.DB \TEST\CorruptDb.dB +data=DATAZ_\test\t_SqlShortNonDb.db \TEST\t_SqlShortNonDb.db +data=DATAZ_\test\t_inc095412.db \TEST\t_inc095412.db +data=DATAZ_\test\default_avacon.dbSQL \TEST\default_avacon.dbSQL +data=DATAZ_\test\t_sqlbur_backup_ver0.bak \TEST\t_sqlbur_backup_ver0.bak +data=DATAZ_\test\t_sqlperformance4.sql \TEST\t_sqlperformance4.sql +data=ZPRIVATE\10281e17\[21212122]AADb2.db \PRIVATE\10281e17\[21212122]AADb2.db +data=ZPRIVATE\10281e17\[21212122]BBDb2.db \PRIVATE\10281e17\[21212122]BBDb2.db +data=ZPRIVATE\10281e17\[21212125]T_AB.db \PRIVATE\10281e17\[21212125]T_AB.db +data=ZPRIVATE\10281e17\[1111CCCC]T_AB.db \PRIVATE\10281e17\[1111CCCC]T_AB.db +data=ZPRIVATE\21212124\t_sqldb1.db \PRIVATE\21212124\t_sqldb1.db +data=ZPRIVATE\10281e17\[21212125]T_OneDefPolicy.db \PRIVATE\10281e17\[21212125]T_OneDefPolicy.db +data=ZPRIVATE\10281e17\[98765432]t_2defaultpolicies.db \PRIVATE\10281e17\[98765432]t_2defaultpolicies.db +data=ZPRIVATE\10281e17\[98765432]t_emptysettings.db \PRIVATE\10281e17\[98765432]t_emptysettings.db +data=ZPRIVATE\10281e17\[98765432]t_invobject.db \PRIVATE\10281e17\[98765432]t_invobject.db +data=ZPRIVATE\10281e17\[98765432]t_invversion.db \PRIVATE\10281e17\[98765432]t_invversion.db +data=ZPRIVATE\10281e17\[98765432]t_longcollation.db \PRIVATE\10281e17\[98765432]t_longcollation.db +data=ZPRIVATE\10281e17\[98765432]t_nocollation.db \PRIVATE\10281e17\[98765432]t_nocollation.db data=ZPRIVATE\10281e17\[98765432]t_nodefaultpolicy.db \PRIVATE\10281e17\[98765432]t_nodefaultpolicy.db -data=ZPRIVATE\10281e17\[98765432]t_nosettings.db \PRIVATE\10281e17\[98765432]t_nosettings.db -data=ZSYSTEM\test\t_sqlbur_backup_ver0.bak \TEST\t_sqlbur_backup_ver0.bak -data=ZSYSTEM\test\t_sqlperformance4.sql \TEST\t_sqlperformance4.sql - +data=ZPRIVATE\10281e17\[98765432]t_nosettings.db \PRIVATE\10281e17\[98765432]t_nosettings.db file=ABI_DIR\BUILD_DIR\T_SQLENVCREATE.EXE \TEST\T_SQLENVCREATE.EXE file=ABI_DIR\BUILD_DIR\T_SQLITE.EXE \TEST\T_SQLITE.EXE @@ -87,6 +85,7 @@ file=ABI_DIR\BUILD_DIR\T_SQLPERFORMANCE2.EXE \TEST\T_SQLPERFORMANCE2.EXE file=ABI_DIR\BUILD_DIR\T_SQLPERFORMANCE3.EXE \TEST\T_SQLPERFORMANCE3.EXE file=ABI_DIR\BUILD_DIR\T_SQLPERFORMANCE4.EXE \TEST\T_SQLPERFORMANCE4.EXE +file=ABI_DIR\BUILD_DIR\T_SQLPERFORMANCE5.EXE \TEST\T_SQLPERFORMANCE5.EXE file=ABI_DIR\BUILD_DIR\T_SQLOOD.EXE \TEST\T_SQLOOD.EXE file=ABI_DIR\BUILD_DIR\T_SQLOSLAYER.EXE \TEST\T_SQLOSLAYER.EXE file=ABI_DIR\BUILD_DIR\T_SQLDEFECT.EXE \TEST\T_SQLDEFECT.EXE diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/GROUP/t_sqlcompact.mmp --- a/persistentstorage/sql/GROUP/t_sqlcompact.mmp Thu May 27 14:29:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -TARGET t_sqlcompact.exe -TARGETTYPE EXE -CAPABILITY None - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -OS_LAYER_ESTLIB_SYSTEMINCLUDE -USERINCLUDE . -USERINCLUDE ../SRC/Common -USERINCLUDE ../SRC/Server/Compact -USERINCLUDE ../SRC/Server -#ifdef SYMBIAN_USE_SQLITE_VERSION_3_6_4 -USERINCLUDE ../SQLite364 -#else -USERINCLUDE ../SQLite -#endif - -SOURCEPATH ../SRC/Common -SOURCE SqlUtil.cpp - -SOURCEPATH ../SRC/Server/Compact -SOURCE SqlCompact.cpp SqlCompactEntry.cpp SqlCompactTimer.cpp - -SOURCEPATH ../SRC/Server -SOURCE SqlSrvStatementUtil.cpp SqlSrvStrings.cpp SqlSrvUtil.cpp - -SOURCEPATH ../TEST -SOURCE t_sqlcompact.cpp - -LIBRARY euser.lib -LIBRARY estlib.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib -LIBRARY estor.lib -LIBRARY hal.lib -STATICLIBRARY sqlite.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/GROUP/t_sqlperformance5.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/persistentstorage/sql/GROUP/t_sqlperformance5.mmp Fri Jun 11 15:29:22 2010 +0300 @@ -0,0 +1,36 @@ +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: MDS harvesting performance test +// + +TARGET t_sqlperformance5.exe +TARGETTYPE EXE +CAPABILITY All -Tcb + +USERINCLUDE . +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +SOURCEPATH ../TEST +SOURCE t_sqlperformance5.cpp t_sqlcmdlineutil.cpp + +LIBRARY euser.lib +LIBRARY efsrv.lib +LIBRARY sqldb.lib +LIBRARY bafl.lib +LIBRARY hal.lib +LIBRARY estor.lib + +UID 0 0x2121228F +VENDORID 0x70000001 + +SMPSAFE diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/OsLayer/os_symbian.cpp --- a/persistentstorage/sql/OsLayer/os_symbian.cpp Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/OsLayer/os_symbian.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -2652,9 +2652,11 @@ Memory allocation routine. +EXPORT_C required to match IMPORT_C in stdlib.h and avoid compiler warning + @internalComponent */ -extern "C" void* sqlite3SymbianMalloc(size_t aSize) +extern "C" EXPORT_C void* sqlite3SymbianMalloc(size_t aSize) { __MEM_CALL(EMemOpAlloc, aSize, 0); return Allocator().Alloc(aSize); @@ -2665,9 +2667,11 @@ Memory reallocation routine. +EXPORT_C required to match IMPORT_C in stdlib.h and avoid compiler warning + @internalComponent */ -extern "C" void* sqlite3SymbianRealloc(void* aPtr, size_t aSize) +extern "C" EXPORT_C void* sqlite3SymbianRealloc(void* aPtr, size_t aSize) { #ifdef _SQLPROFILER TInt size = Allocator().AllocLen(aPtr); @@ -2681,9 +2685,11 @@ Memory free routine. +EXPORT_C required to match IMPORT_C in stdlib.h and avoid compiler warning + @internalComponent */ -extern "C" void sqlite3SymbianFree(void* aPtr) +extern "C" EXPORT_C void sqlite3SymbianFree(void* aPtr) { #ifdef _SQLPROFILER TInt size = Allocator().AllocLen(aPtr); diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/SQLite/parse.h --- a/persistentstorage/sql/SQLite/parse.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/SQLite/parse.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #define TK_SEMI 1 #define TK_EXPLAIN 2 #define TK_QUERY 3 diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/SQLite/printf.c --- a/persistentstorage/sql/SQLite/printf.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/SQLite/printf.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* ** The "printf" code that follows dates from the 1980's. It is in ** the public domain. The original comments are included here for diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/SQLite364/parse.h --- a/persistentstorage/sql/SQLite364/parse.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/SQLite364/parse.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #define TK_SEMI 1 #define TK_EXPLAIN 2 #define TK_QUERY 3 diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/SQLite364/printf.c --- a/persistentstorage/sql/SQLite364/printf.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/SQLite364/printf.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* ** The "printf" code that follows dates from the 1980's. It is in ** the public domain. The original comments are included here for diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/SRC/Server/SqlSrvStrings.h --- a/persistentstorage/sql/SRC/Server/SqlSrvStrings.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/SRC/Server/SqlSrvStrings.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -55,7 +55,7 @@ CONST_LIT16(KSettingsTable16, "symbian_settings"); // config consts -#ifdef SYSLIBS_TEST +#if defined SYSLIBS_TEST || defined SQL_SOFT_HEAP_LIMIT_TEST CONST_LIT16(KSqlSrvDefaultConfigFile, "c:\\test\\t_sqlserver.cfg"); CONST_LIT16(KSqlSrvDbConfigFileFormat, "c:cfg*"); #else diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlapi.cpp --- a/persistentstorage/sql/TEST/t_sqlapi.cpp Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/TEST/t_sqlapi.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -299,22 +299,24 @@ { maxFileName = KMaxFileName -150;//The test will panic in PlatSim when the file name is too long. This line should be removed when platsim team fixes the file system defect. } - HBufC* dbPath = HBufC::NewLC(maxFileName); + HBufC* dbPath = HBufC::New(maxFileName); + TEST(dbPath != NULL); + TPtr dbPathPtr = dbPath->Des(); _LIT(KExt, ".DB"); - dbPath->Des().Copy(_L("C:")); - dbPath->Des().Append(KSecureUid.Name()); - TInt len = maxFileName + 1 - (dbPath->Length() + KExt().Length() + privatePath.Length()); + dbPathPtr.Copy(_L("C:")); + dbPathPtr.Append(KSecureUid.Name()); + TInt len = maxFileName + 1 - (dbPathPtr.Length() + KExt().Length() + privatePath.Length()); while(--len) { - dbPath->Des().Append(TChar('A')); + dbPathPtr.Append(TChar('A')); } - dbPath->Des().Append(KExt); - TEST(dbPath->Length() == (maxFileName - privatePath.Length())); - rc = db.Create(dbPath->Des(), securityPolicy); + dbPathPtr.Append(KExt); + TEST(dbPathPtr.Length() == (maxFileName - privatePath.Length())); + rc = db.Create(dbPathPtr, securityPolicy); TEST2(rc, KErrNone); db.Close(); - rc2 = RSqlDatabase::Delete(dbPath->Des()); + rc2 = RSqlDatabase::Delete(dbPathPtr); TEST2(rc2, KErrNone); // Private database with config @@ -330,19 +332,20 @@ //Public shared database file on an existing drive (C:). //Very long database file name. - dbPath->Des().Copy(_L("C:\\TEST\\D")); - len = maxFileName + 1 - (dbPath->Length() + KExt().Length()); + dbPathPtr.Copy(_L("C:\\TEST\\D")); + len = maxFileName + 1 - (dbPathPtr.Length() + KExt().Length()); while(--len) { - dbPath->Des().Append(TChar('A')); + dbPathPtr.Append(TChar('A')); } - dbPath->Des().Append(KExt); - TEST(dbPath->Length() == maxFileName); - rc = db.Create(dbPath->Des()); + dbPathPtr.Append(KExt); + TEST(dbPathPtr.Length() == maxFileName); + rc = db.Create(dbPathPtr); db.Close(); - rc2 = RSqlDatabase::Delete(dbPath->Des()); + rc2 = RSqlDatabase::Delete(dbPathPtr); - CleanupStack::PopAndDestroy(dbPath); + delete dbPath; + TEST2(rc, KErrNone); TEST2(rc2, KErrNone); diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlcmdlineutil.cpp --- a/persistentstorage/sql/TEST/t_sqlcmdlineutil.cpp Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/TEST/t_sqlcmdlineutil.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -21,7 +21,7 @@ aCmdLine.TrimAll(); if(aCmdLine.Length() == 0) { - aTest.Printf(_L("Usage: %S [ [/enc=<16/8>] /drv=:] [/page=<512/1024/2048/4096/8192/16384/32768>] ] [/cache=]\r\n"), &aTestName); + aTest.Printf(_L("Usage: %S [ [/enc=<16/8>] /drv=:] [/page=<512/1024/2048/4096/8192/16384/32768>] ] [/cache=] [/hlimit=]\r\n"), &aTestName); return; } aCmdLine.Append(TChar('/')); @@ -139,6 +139,16 @@ aCmdLineParams.iCacheSize = cacheSize; } } + else if(aPrmNames[i].CompareF(_L("hlimit")) == 0) + { + TLex lex(aPrmValues[i]); + TInt softHeapLimit = 0; + TInt err = lex.Val(softHeapLimit); + if(err == KErrNone && (softHeapLimit >= 0 && softHeapLimit < 1000000000)) + { + aCmdLineParams.iSoftHeapLimitKb = softHeapLimit; + } + } } } @@ -168,8 +178,93 @@ aConfigStr.Append(cacheSizeBuf); aTest.Printf(_L("--PRM--Database drive: %S\r\n"), &aCmdLineParams.iDriveName); + + if(aCmdLineParams.iSoftHeapLimitKb > 0) + { + aTest.Printf(_L("--PRM--Soft heap limit: %d Kb\r\n"), aCmdLineParams.iSoftHeapLimitKb); + } + else + { + aTest.Printf(_L("--PRM--Soft heap limit: default\r\n")); + } } +#ifdef SQL_SOFT_HEAP_LIMIT_TEST + +static TInt KillProcess(const TDesC& aProcessName) + { + TFullName name; + TBuf<64> pattern(aProcessName); + TInt length = pattern.Length(); + pattern += _L("*"); + TFindProcess procFinder(pattern); + + while (procFinder.Next(name) == KErrNone) + { + if (name.Length() > length) + {//If found name is a string containing aProcessName string. + TChar c(name[length]); + if (c.IsAlphaDigit() || + c == TChar('_') || + c == TChar('-')) + { + // If the found name is other valid application name + // starting with aProcessName string. + continue; + } + } + RProcess proc; + if (proc.Open(name) == KErrNone) + { + proc.Kill(0); + } + proc.Close(); + } + return KErrNone; + } + +_LIT(KSqlSrvName, "sqlsrv.exe"); +_LIT(KSqlSrvConfigFile, "c:\\test\\t_sqlserver.cfg"); + +static void ReplaceConfigFile(const TDesC16& aConfig) + { + RFs fs; + TInt err = fs.Connect(); + __ASSERT_ALWAYS(err == KErrNone, User::Invariant()); + + (void)KillProcess(KSqlSrvName); + + (void)fs.MkDirAll(KSqlSrvConfigFile); + (void)fs.Delete(KSqlSrvConfigFile); + + RFile file; + err = file.Create(fs, KSqlSrvConfigFile, EFileRead | EFileWrite); + __ASSERT_ALWAYS(err == KErrNone, User::Invariant()); + + TPtrC8 p((const TUint8*)aConfig.Ptr(), aConfig.Length() * sizeof(TUint16)); + err = file.Write(p); + file.Close(); + __ASSERT_ALWAYS(err == KErrNone, User::Invariant()); + + fs.Close(); + } + +static void DeleteConfigFile() + { + RFs fs; + TInt err = fs.Connect(); + __ASSERT_ALWAYS(err == KErrNone, User::Invariant()); + + (void)KillProcess(KSqlSrvName); + + (void)fs.MkDirAll(KSqlSrvConfigFile); + (void)fs.Delete(KSqlSrvConfigFile); + + fs.Close(); + } + +#endif //SQL_SOFT_HEAP_LIMIT_TEST + void GetCmdLineParamsAndSqlConfigString(RTest& aTest, const TDesC& aTestName, TCmdLineParams& aCmdLineParams, TDes8& aConfigStr) { TBuf<200> cmdLine; @@ -190,3 +285,29 @@ const TDesC& dbFilePath = parse.FullName(); aDbName.Copy(dbFilePath); } + +void SetSoftHeapLimit(TInt aSoftHeapLimit) + { + if(aSoftHeapLimit > 0) + { +#ifdef SQL_SOFT_HEAP_LIMIT_TEST + TBuf<50> configBuf; + configBuf.Format(_L("soft_heap_limit_kb=%d"), aSoftHeapLimit); + ReplaceConfigFile(configBuf); +#else + RDebug::Print(_L("The soft heap limit cannot be set if \"SQL_SOFT_HEAP_LIMIT_TEST\" macro is not defined!\r\n")); +#endif + } + else if(aSoftHeapLimit < 0) + { + RDebug::Print(_L("Soft heap limit of %d Kb cannot be set!\r\n"), aSoftHeapLimit); + } + } + +void ResetSoftHeapLimit() + { +#ifdef SQL_SOFT_HEAP_LIMIT_TEST + DeleteConfigFile(); +#endif + } + diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlcmdlineutil.h --- a/persistentstorage/sql/TEST/t_sqlcmdlineutil.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/TEST/t_sqlcmdlineutil.h Fri Jun 11 15:29:22 2010 +0300 @@ -44,6 +44,7 @@ iPageSize = iDefaultPageSize; iCacheSize = iDefaultCacheSize; iDriveName.Copy(_L("c:")); + iSoftHeapLimitKb = 0; } const TDbEncoding iDefaultEncoding; @@ -54,9 +55,12 @@ TInt iPageSize; TInt iCacheSize; TDriveName iDriveName; + TInt iSoftHeapLimitKb; }; void GetCmdLineParamsAndSqlConfigString(RTest& aTest, const TDesC& aTestName, TCmdLineParams& aCmdLineParams, TDes8& aConfigStr); void PrepareDbName(const TDesC& aDeafultDbName, const TDriveName& aDriveName, TDes& aDbName); +void SetSoftHeapLimit(TInt aSoftHeapLimit); +void ResetSoftHeapLimit(); #endif//T_SQLCMDLINEUTIL_H diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlcompact1.cpp --- a/persistentstorage/sql/TEST/t_sqlcompact1.cpp Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/TEST/t_sqlcompact1.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -77,6 +77,39 @@ /////////////////////////////////////////////////////////////////////////////////////// +//t_sqlcompact1 timeouts in WDP builds. +//This function is used to check whether the time limit is reaqched or not. +TBool IsTimeLimitReached() + { + struct TStartTime + { + TStartTime() + { + iTime.HomeTime(); + } + TTime iTime; + }; + + static TStartTime startTime; + const TInt KTestTimeLimit = 100;//seconds + + TTime currTime; + currTime.HomeTime(); + + TTimeIntervalSeconds s; + TInt err = currTime.SecondsFrom(startTime.iTime, s); + TEST2(err, KErrNone); + return s.Int() > KTestTimeLimit; + } + +void GetHomeTimeAsString(TDes& aStr) + { + TTime time; + time.HomeTime(); + TDateTime dt = time.DateTime(); + aStr.Format(_L("%02d:%02d:%02d.%06d"), dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond()); + } + void CreateTestEnv() { RFs fs; @@ -116,6 +149,8 @@ { TInt err = TheDb.Open(aDbName); TEST2(err, KErrNone); + err = TheDb.Exec(_L("BEGIN TRANSACTION")); + TEST(err >= 0); TheText.SetLength(TheText.MaxLength()); TheText.Fill(TChar('A')); for(TInt i=0;i<100;++i) @@ -124,6 +159,8 @@ err = TheDb.Exec(TheSqlBuf); TEST2(err, 1); } + err = TheDb.Exec(_L("COMMIT TRANSACTION")); + TEST(err >= 0); TheDb.Close(); } @@ -132,6 +169,8 @@ TInt freePageCount = -1; TInt err = TheDb.Open(aDbName); TEST2(err, KErrNone); + err = TheDb.Exec(_L("BEGIN TRANSACTION")); + TEST(err >= 0); for(TInt i=0;;++i) { TheSqlBuf.Format(_L("DELETE FROM A WHERE I=%d"), i + 1); @@ -146,6 +185,8 @@ break; } } + err = TheDb.Exec(_L("COMMIT TRANSACTION")); + TEST(err >= 0); TheDb.Close(); return freePageCount; } @@ -177,6 +218,10 @@ TInt i; + TBuf<50> timeBuf; + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time1: %S\r\n"), &timeBuf); + //Create databases, tables, insert records, delete part of the just inserted records. for(i=0;i= 0); err = TheDb.Exec(_L("CREATE TABLE A(I INTEGER, T TEXT)")); TEST(err >= 0); //Insert records @@ -263,6 +322,8 @@ err = TheDb.Exec(TheSqlBuf); TEST2(err, 1); } + err = TheDb.Exec(_L("COMMIT TRANSACTION")); + TEST(err >= 0); //Delete all records making a lot of free pages. This operation should kick-off the background compaction err = TheDb.Exec(_L("DELETE FROM A WHERE 1")); TEST2(err, aRecordCount); @@ -288,11 +349,18 @@ */ void CompactDbTest2() { + TBuf<50> timeBuf; + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time1: %S\r\n"), &timeBuf); + const TInt KPageSize = 1024; //Number of records to be added and removed from database. Need to be increased when testing on a faster // hardware, otherwise at fastest case the background compaction could be finished in just 1 step. - const TInt KRecordCount = 2000; + const TInt KRecordCount = 2000; PrepareDb(KPageSize, KRecordCount); + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time2: %S\r\n"), &timeBuf); //Check the free space-1 RSqlDatabase::TSize size1; @@ -321,6 +389,9 @@ { TEST(size2.iFree == size1.iFree); } + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time3: %S\r\n"), &timeBuf); //Wait (KSqlCompactStepIntervalMs + KSqlCompactStepLengthMs) ms. During the pause only part of the free pages //should be removed (whatever can be completed for KSqlCompactStepLengthMs ms). @@ -335,6 +406,9 @@ TheTest.Printf(_L("WARNING: Background compaction finished in 1 step. Initial number of records need to be increased.\r\n")); } TEST(size3.iFree > 0 && size3.iFree < size2.iFree); + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time4: %S\r\n"), &timeBuf); //Wait another (KSqlCompactStepIntervalMs + KSqlCompactStepLengthMs) ms. During the pause only part of the free pages //should be removed (whatever can be completed for KSqlCompactStepLengthMs ms). @@ -345,6 +419,9 @@ TEST2(err, KErrNone); TheTest.Printf(_L("===Free space after compaction-3, pages=%d\r\n"), size4.iFree / KPageSize); TEST((size4.iFree > 0 && size4.iFree < size3.iFree) || (size4.iFree == 0)); + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time5: %S\r\n"), &timeBuf); //Cleanup TheDb.Close(); @@ -370,10 +447,17 @@ */ void CompactDbTest3() { + TBuf<50> timeBuf; + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time1: %S\r\n"), &timeBuf); + const TInt KPageSize = 1024; const TInt KRecordCount = 1000; PrepareDb(KPageSize, KRecordCount); + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time2: %S\r\n"), &timeBuf); + //Check the free space-1 RSqlDatabase::TSize size1; TInt err = TheDb.Size(size1); @@ -406,6 +490,10 @@ break; } } + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time3: %S\r\n"), &timeBuf); + //Check the free space-2 RSqlDatabase::TSize size2; err = TheDb.Size(size2); @@ -432,10 +520,18 @@ */ void ManualCompactTest() { + TBuf<50> timeBuf; + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time1: %S\r\n"), &timeBuf); + //Create a database with 1000 free pages const TInt KPageSize = 1024; const TInt KRecordCount = 1000; PrepareDb(KPageSize, KRecordCount, ETrue);//create the database with manual compaction mode + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time2: %S\r\n"), &timeBuf); + //Check the free space-1 RSqlDatabase::TSize size1; TInt err = TheDb.Size(size1); @@ -446,6 +542,10 @@ //Compact err = TheDb.Compact(RSqlDatabase::EMaxCompaction); TEST2(err, size1.iFree); + + GetHomeTimeAsString(timeBuf); + TheTest.Printf(_L("===Time3: %S\r\n"), &timeBuf); + //Cleanup TheDb.Close(); (void)RSqlDatabase::Delete(KDbName1); @@ -456,12 +556,30 @@ TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-SQL-UT-4072 Manual Compact() - attached databases, different page sizes")); CompactDbTest1(); + if(IsTimeLimitReached()) + { + TheTest.Printf(_L("===Test timeout!\r\n")); + return; + } + TheTest.Next( _L(" @SYMTestCaseID:SYSLIB-SQL-UT-4073 Background compaction steps test")); CompactDbTest2(); + if(IsTimeLimitReached()) + { + TheTest.Printf(_L("===Test timeout!\r\n")); + return; + } + TheTest.Next( _L(" @SYMTestCaseID:SYSLIB-SQL-UT-4074 Background compaction timer test")); CompactDbTest3(); + if(IsTimeLimitReached()) + { + TheTest.Printf(_L("===Test timeout!\r\n")); + return; + } + TheTest.Next( _L(" @SYMTestCaseID:SYSLIB-SQL-UT-4103 Big manual compaction test")); ManualCompactTest(); } diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlload.cpp --- a/persistentstorage/sql/TEST/t_sqlload.cpp Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sql/TEST/t_sqlload.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -137,7 +137,7 @@ }; static TStartTime startTime; - const TInt KTestTimeLimit = 250;//seconds + const TInt KTestTimeLimit = 150;//seconds TTime currTime; currTime.HomeTime(); diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sql/TEST/t_sqlperformance5.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/persistentstorage/sql/TEST/t_sqlperformance5.cpp Fri Jun 11 15:29:22 2010 +0300 @@ -0,0 +1,421 @@ +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: MDS harvesting performance test +// +#include +#include +#include +#include +#include +#include "t_sqlcmdlineutil.h" + +RTest TheTest(_L("t_sqlperformance5 test")); +RSqlDatabase TheDb; + +_LIT(KDbName, "c:\\test\\t_sqlperformance5.db"); + +TFileName TheDbFileName; +TBuf<200> TheTestTitle; +TCmdLineParams TheCmdLineParams(TCmdLineParams::EDbUtf16, 16384, 32); +TBuf8<200> TheSqlConfigString; + +_LIT(KUtf8, "UTF8 "); +_LIT(KUtf16, "UTF16"); + +const TInt KThumbnailCount = 60; +const TInt KMaxThumbnailSize = 40 * 1024; + +const TInt KThumbnailSizes[KThumbnailCount] = + { + //1 2 3 4 5 6 7 8 9 10 + 22054, 24076, 33281, 24733, 33094, 31443, 29264, 28725, 31798, 29322, //1 + 25002, 26926, 31097, 21988, 33659, 29081, 33050, 36857, 37686, 24034, //2 + 21093, 28314, 20186, 27222, 28600, 32735, 27279, 31898, 31380, 36316, //3 + 34295, 31642, 21829, 32912, 31584, 32557, 36601, 22744, 32808, 26130, //4 + 31222, 21545, 35899, 22257, 25856, 31169, 34893, 23496, 23034, 30381, //5 + 25810, 27123, 33442, 22275, 30260, 31028, 32415, 27345, 26614, 33704 //6 + }; + +TInt TheFastCounterFreq = 0; + +TInt TheCreateDbTime = 0; +TInt TheCreateTablesTime = 0; +TInt TheBindParamsTime = 0; +TInt TheStmtExecTime = 0; +TInt TheStmtResetTime = 0; +TInt ThePopulateTempTableTime = 0; +TInt TheFlushTime = 0; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void TestEnvDestroy() + { + TheDb.Close(); + (void)RSqlDatabase::Delete(TheDbFileName); + ResetSoftHeapLimit(); + } + +/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// +//Test macros and functions +void Check1(TInt aValue, TInt aLine) + { + if(!aValue) + { + TestEnvDestroy(); + TheTest.Printf(_L("*** Line %d\r\n"), aLine); + TheTest(EFalse, aLine); + } + } +void Check2(TInt aValue, TInt aExpected, TInt aLine) + { + if(aValue != aExpected) + { + TSqlRetCodeClass cl = SqlRetCodeClass(aValue); + if(cl == ESqlDbError) + { + TPtrC errmsg = TheDb.LastErrorMessage(); + TheTest.Printf(_L("*** SQLite err=\"%S\"\r\n"), &errmsg); + } + TestEnvDestroy(); + TheTest.Printf(_L("*** Line %d, Expected error: %d, got: %d\r\n"), aLine, aExpected, aValue); + TheTest(EFalse, aLine); + } + } +#define TEST(arg) ::Check1((arg), __LINE__) +#define TEST2(aValue, aExpected) ::Check2(aValue, aExpected, __LINE__) + +/////////////////////////////////////////////////////////////////////////////////////// + +void TestEnvInit() + { + RFs fs; + TInt err = fs.Connect(); + TEST2(err, KErrNone); + err = fs.MkDirAll(TheDbFileName); + TEST(err == KErrNone || err == KErrAlreadyExists); + fs.Close(); + } + +TInt TimeDiffUs(TUint32 aStartTicks, TUint32 aEndTicks) + { + if(TheFastCounterFreq == 0) + { + TEST2(HAL::Get(HAL::EFastCounterFrequency, TheFastCounterFreq), KErrNone); + TheTest.Printf(_L("==Fast counter frequency: %d Hz\r\n"), TheFastCounterFreq); + } + TInt64 diffTicks = (TInt64)aEndTicks - (TInt64)aStartTicks; + if(diffTicks < 0) + { + diffTicks = KMaxTUint32 + diffTicks + 1; + } + const TInt KMicroSecIn1Sec = 1000000; + TInt us = (diffTicks * KMicroSecIn1Sec) / TheFastCounterFreq; + return us; + } + +void PrintTime(const TDesC& aFmt, TUint32 aStartTicks, TUint32 aEndTicks) + { + TInt us = TimeDiffUs(aStartTicks, aEndTicks); + TheTest.Printf(aFmt, us); + } + +//============================================================================= + +/** +@SYMTestCaseID PDS-SQL-CT-4205 +@SYMTestCaseDesc Thumbnail database performance test. +@SYMTestPriority Medium +@SYMTestActions The test executes statements to create the thumbnail database. +@SYMTestExpectedResults The test must not fail +@SYMDEF ou1cimx1#362240 +*/ +void CreateDb() + { + (void)RSqlDatabase::Delete(TheDbFileName); + + TUint32 fc1 = User::FastCounter(); + + TInt err = TheDb.Create(TheDbFileName, &TheSqlConfigString); + + TUint32 fc2 = User::FastCounter(); + TheCreateDbTime = TimeDiffUs(fc1, fc2); + + TEST2(err, KErrNone); + + fc1 = User::FastCounter(); + + err = TheDb.Exec(_L("CREATE TABLE ThumbnailInfo (Path TEXT COLLATE NOCASE,TNId INTEGER,Size INTEGER,Format INTEGER,TNPath TEXT COLLATE NOCASE,Width INTEGER,Height INTEGER,OrigWidth INTEGER,OrigHeight INTEGER,Flags INTEGER,VideoPosition INTEGER,Orientation INTEGER,humbFromPath INTEGER,Modified LARGEINT);")); + TEST(err >= 0); + + err = TheDb.Exec(_L("CREATE TABLE ThumbnailInfoData(Data BLOB);")); + TEST(err >= 0); + + err = TheDb.Exec(_L("CREATE TABLE ThumbnailDeleted(Path TEXT UNIQUE COLLATE NOCASE);")); + TEST(err >= 0); + + err = TheDb.Exec(_L("CREATE INDEX idx1 ON ThumbnailInfo(Path, Size);")); + TEST(err >= 0); + + err = TheDb.Exec(_L("CREATE INDEX idx4 ON ThumbnailDeleted(Path);")); + TEST(err >= 0); + + err = TheDb.Exec(_L("CREATE TABLE ThumbnailVersion (Major INTEGER,Minor INTEGER,IMEI TEXT COLLATE NOCASE);")); + TEST(err >= 0); + + fc2 = User::FastCounter(); + TheCreateTablesTime = TimeDiffUs(fc1, fc2); + + TheDb.Close(); + } + +void PoulateTempTables(RSqlStatement& aStmt1, RSqlStatement& aStmt2) + { + HBufC8* thumbnailBuf = HBufC8::New(KMaxThumbnailSize); + TEST(thumbnailBuf != NULL); + TPtr8 thumbnailData = thumbnailBuf->Des(); + thumbnailData.SetLength(KMaxThumbnailSize); + thumbnailData.Fill(TChar('A')); + + TUint32 fc3 = User::FastCounter(); + + for(TInt i=0;i= 0); + TInt err = aStmt1.BindText(paramIndex, _L("c:\\test\\abcdefgh123456789.jpg")); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Width")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 50); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Height")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 40); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":OrigWidth")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 1000); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":OrigHeight")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 2000); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Format")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 10); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Flags")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 0x1E); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Size")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 1200); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Orient")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 2); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":ThumbFromPath")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt(paramIndex, 1); + TEST2(err, KErrNone); + + paramIndex = aStmt1.ParameterIndex(_L(":Modified")); + TEST(paramIndex >= 0); + err = aStmt1.BindInt64(paramIndex, 3212398543392LL); + TEST2(err, KErrNone); + + TUint32 fc2 = User::FastCounter(); + TheBindParamsTime += TimeDiffUs(fc1, fc2); + + fc1 = User::FastCounter(); + err = aStmt1.Exec(); + fc2 = User::FastCounter(); + TheStmtExecTime += TimeDiffUs(fc1, fc2); + + TEST2(err, 1); + + fc1 = User::FastCounter(); + err = aStmt1.Reset(); + fc2 = User::FastCounter(); + TheStmtResetTime += TimeDiffUs(fc1, fc2); + + TEST2(err, KErrNone); + + thumbnailData.SetLength(KThumbnailSizes[i]); + + fc1 = User::FastCounter(); + paramIndex = aStmt2.ParameterIndex(_L(":Data")); + TEST(paramIndex >= 0); + err = aStmt2.BindBinary(paramIndex, thumbnailData); + TEST2(err, KErrNone); + fc2 = User::FastCounter(); + TheBindParamsTime += TimeDiffUs(fc1, fc2); + + fc1 = User::FastCounter(); + err = aStmt2.Exec(); + fc2 = User::FastCounter(); + TheStmtExecTime += TimeDiffUs(fc1, fc2); + + TEST2(err, 1); + + fc1 = User::FastCounter(); + err = aStmt2.Reset(); + fc2 = User::FastCounter(); + TheStmtResetTime += TimeDiffUs(fc1, fc2); + + TEST2(err, KErrNone); + } + + TUint32 fc4 = User::FastCounter(); + ThePopulateTempTableTime += TimeDiffUs(fc3, fc4); + + delete thumbnailBuf; + } + +void FlushTemptTables() + { + TUint32 fc1 = User::FastCounter(); + + TInt err = TheDb.Exec(_L("BEGIN TRANSACTION")); + TEST(err >= 0); + + err = TheDb.Exec(_L("INSERT INTO ThumbnailInfo SELECT * FROM TempThumbnailInfo;")); + TEST2(err, KThumbnailCount); + + err = TheDb.Exec(_L("INSERT INTO ThumbnailInfoData SELECT * FROM TempThumbnailInfoData;")); + TEST2(err, KThumbnailCount); + + err = TheDb.Exec(_L("DELETE FROM TempThumbnailInfo;")); + TEST(err >= 0); + + err = TheDb.Exec(_L("DELETE FROM TempThumbnailInfoData;")); + TEST(err >= 0); + + err = TheDb.Exec(_L("COMMIT;")); + TEST(err >= 0); + + TUint32 fc2 = User::FastCounter(); + TheFlushTime += TimeDiffUs(fc1, fc2); + } + +/** +@SYMTestCaseID PDS-SQL-CT-4206 +@SYMTestCaseDesc Thumbnail database performance test. +@SYMTestPriority Medium +@SYMTestActions The test inserts 60 thumbnails with summary size of 1.7Mb into the thumbnail database. +@SYMTestExpectedResults The test must not fail +@SYMDEF ou1cimx1#362240 +*/ +void PopulateDb() + { + TInt dataToCommit = 0; + for(TInt i=0;i= 0); + + err = TheDb.Exec(_L("CREATE TEMP TABLE TempThumbnailInfoData (Data BLOB);")); + TEST(err >= 0); + + RSqlStatement stmt1; + err = stmt1.Prepare(TheDb, _L("INSERT INTO TempThumbnailInfo(Path,Size,Format,Width,Height,OrigWidth,OrigHeight,Flags,Orientation,ThumbFromPath,Modified) VALUES (:Path,:Size,:Format,:Width,:Height,:OrigWidth,:OrigHeight,:Flags,:Orient,:ThumbFromPath,:Modified);")); + TEST2(err, KErrNone); + + RSqlStatement stmt2; + err = stmt2.Prepare(TheDb, _L("INSERT INTO TempThumbnailInfoData (Data) VALUES (:Data);")); + TEST2(err, KErrNone); + + PoulateTempTables(stmt1, stmt2); + FlushTemptTables(); + + stmt2.Close(); + stmt1.Close(); + TheDb.Close(); + + TheTest.Printf(_L("==Create database, time=%d microseconds\r\n"), TheCreateDbTime); + TheTest.Printf(_L("==Create tables, time=%d microseconds\r\n"), TheCreateTablesTime); + TheTest.Printf(_L("==Bind parameters time, time=%d microseconds\r\n"), TheBindParamsTime); + TheTest.Printf(_L("==Temp tables, statement exec, time=%d microseconds\r\n"), TheStmtExecTime); + TheTest.Printf(_L("==Temp tables, statement reset, time=%d microseconds\r\n"), TheStmtResetTime); + TheTest.Printf(_L("==Populate temp tables, time=%d microseconds\r\n"), ThePopulateTempTableTime); + TheTest.Printf(_L("==Copy temp tables to main tables, time=%d microseconds\r\n"), TheFlushTime); + } + +void DoTestsL() + { + TheTestTitle.Format(_L("@SYMTestCaseID:PDS-SQL-CT-4205 Create database, encoding: \"%S\", page size: %d\r\n"), + TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize); + TheTest.Start(TheTestTitle); + CreateDb(); + + TheTestTitle.Format(_L("@SYMTestCaseID:PDS-SQL-CT-4206 Populate database, encoding: \"%S\", page size: %d\r\n"), + TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize); + TheTest.Next(TheTestTitle); + PopulateDb(); + + (void)RSqlDatabase::Delete(TheDbFileName); + } + +TInt E32Main() + { + TheTest.Title(); + + CTrapCleanup* tc = CTrapCleanup::New(); + TheTest(tc != NULL); + + __UHEAP_MARK; + + GetCmdLineParamsAndSqlConfigString(TheTest, _L("t_sqlperformance5"), TheCmdLineParams, TheSqlConfigString); + PrepareDbName(KDbName, TheCmdLineParams.iDriveName, TheDbFileName); + SetSoftHeapLimit(TheCmdLineParams.iSoftHeapLimitKb); + + TheTest.Printf(_L("==Databases: %S\r\n"), &TheDbFileName); + + TestEnvDestroy(); + TestEnvInit(); + TRAPD(err, DoTestsL()); + TestEnvDestroy(); + TEST2(err, KErrNone); + + __UHEAP_MARKEND; + + TheTest.End(); + TheTest.Close(); + + delete tc; + + User::Heap().Check(); + return KErrNone; + } diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/GROUP/BLD.INF --- a/persistentstorage/sqlite3api/GROUP/BLD.INF Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/GROUP/BLD.INF Fri Jun 11 15:29:22 2010 +0300 @@ -33,9 +33,414 @@ PRJ_TESTEXPORTS -../GROUP/sqlite3tests.iby /epoc32/rom/include/sqlite3tests.iby -../GROUP/sqlite3tests.bat /epoc32/data/z/system/test/sqlite3tests.bat -../GROUP/config.ini /epoc32/data/z/system/test/config.ini +../GROUP/sqlite3tests.iby /epoc32/rom/include/sqlite3tests.iby +../GROUP/sqlite3tests.bat z:/test/sqlite3tests.bat +../GROUP/config.ini z:/test/config.ini + +../TEST/TclScript/speed1p.explain z:/private/10285A82/speed1p.explain +../TEST/TclScript/speed4p.explain z:/private/10285A82/speed4p.explain +../TEST/TclScript/fuzz_common.tcl z:/private/10285A82/fuzz_common.tcl +../TEST/TclScript/malloc_common.tcl z:/private/10285A82/malloc_common.tcl +../TEST/TclScript/tester.tcl z:/private/10285A82/tester.tcl +../TEST/TclScript/thread_common.tcl z:/private/10285A82/thread_common.tcl +../TEST/TclScript/trans2.test.gz z:/private/10285A82/trans2.test.gz +../TEST/TclScript/aggerror.test z:/private/10285A82/aggerror.test +../TEST/TclScript/alias.test z:/private/10285A82/alias.test +../TEST/TclScript/all.test z:/private/10285A82/all.test +../TEST/TclScript/alter.test z:/private/10285A82/alter.test +../TEST/TclScript/alter2.test z:/private/10285A82/alter2.test +../TEST/TclScript/alter3.test z:/private/10285A82/alter3.test +../TEST/TclScript/altermalloc.test z:/private/10285A82/altermalloc.test +../TEST/TclScript/analyze.test z:/private/10285A82/analyze.test +../TEST/TclScript/async.test z:/private/10285A82/async.test +../TEST/TclScript/async2.test z:/private/10285A82/async2.test +../TEST/TclScript/async3.test z:/private/10285A82/async3.test +../TEST/TclScript/attach.test z:/private/10285A82/attach.test +../TEST/TclScript/attach2.test z:/private/10285A82/attach2.test +../TEST/TclScript/attach3.test z:/private/10285A82/attach3.test +../TEST/TclScript/attachmalloc.test z:/private/10285A82/attachmalloc.test +../TEST/TclScript/auth.test z:/private/10285A82/auth.test +../TEST/TclScript/auth2.test z:/private/10285A82/auth2.test +../TEST/TclScript/autoinc.test z:/private/10285A82/autoinc.test +../TEST/TclScript/autovacuum.test z:/private/10285A82/autovacuum.test +../TEST/TclScript/autovacuum_ioerr2.test z:/private/10285A82/autovacuum_ioerr2.test +../TEST/TclScript/avtrans.test z:/private/10285A82/avtrans.test +../TEST/TclScript/badutf.test z:/private/10285A82/badutf.test +../TEST/TclScript/between.test z:/private/10285A82/between.test +../TEST/TclScript/bigfile.test z:/private/10285A82/bigfile.test +../TEST/TclScript/bigrow.test z:/private/10285A82/bigrow.test +../TEST/TclScript/bind.test z:/private/10285A82/bind.test +../TEST/TclScript/bindxfer.test z:/private/10285A82/bindxfer.test +../TEST/TclScript/bitvec.test z:/private/10285A82/bitvec.test +../TEST/TclScript/blob.test z:/private/10285A82/blob.test +../TEST/TclScript/busy.test z:/private/10285A82/busy.test +../TEST/TclScript/cache.test z:/private/10285A82/cache.test +../TEST/TclScript/capi2.test z:/private/10285A82/capi2.test +../TEST/TclScript/capi3.test z:/private/10285A82/capi3.test +../TEST/TclScript/capi3b.test z:/private/10285A82/capi3b.test +../TEST/TclScript/capi3c.test z:/private/10285A82/capi3c.test +../TEST/TclScript/capi3d.test z:/private/10285A82/capi3d.test +../TEST/TclScript/cast.test z:/private/10285A82/cast.test +../TEST/TclScript/check.test z:/private/10285A82/check.test +../TEST/TclScript/collate1.test z:/private/10285A82/collate1.test +../TEST/TclScript/collate2.test z:/private/10285A82/collate2.test +../TEST/TclScript/collate3.test z:/private/10285A82/collate3.test +../TEST/TclScript/collate4.test z:/private/10285A82/collate4.test +../TEST/TclScript/collate5.test z:/private/10285A82/collate5.test +../TEST/TclScript/collate6.test z:/private/10285A82/collate6.test +../TEST/TclScript/collate7.test z:/private/10285A82/collate7.test +../TEST/TclScript/collate8.test z:/private/10285A82/collate8.test +../TEST/TclScript/collate9.test z:/private/10285A82/collate9.test +../TEST/TclScript/collateA.test z:/private/10285A82/collateA.test +../TEST/TclScript/colmeta.test z:/private/10285A82/colmeta.test +../TEST/TclScript/colname.test z:/private/10285A82/colname.test +../TEST/TclScript/conflict.test z:/private/10285A82/conflict.test +../TEST/TclScript/corrupt.test z:/private/10285A82/corrupt.test +../TEST/TclScript/corrupt2.test z:/private/10285A82/corrupt2.test +../TEST/TclScript/corrupt3.test z:/private/10285A82/corrupt3.test +../TEST/TclScript/corrupt4.test z:/private/10285A82/corrupt4.test +../TEST/TclScript/corrupt5.test z:/private/10285A82/corrupt5.test +../TEST/TclScript/corrupt6.test z:/private/10285A82/corrupt6.test +../TEST/TclScript/corrupt7.test z:/private/10285A82/corrupt7.test +../TEST/TclScript/corrupt8.test z:/private/10285A82/corrupt8.test +../TEST/TclScript/corrupt9.test z:/private/10285A82/corrupt9.test +../TEST/TclScript/corruptA.test z:/private/10285A82/corruptA.test +../TEST/TclScript/crash.test z:/private/10285A82/crash.test +../TEST/TclScript/crash2.test z:/private/10285A82/crash2.test +../TEST/TclScript/crash3.test z:/private/10285A82/crash3.test +../TEST/TclScript/crash4.test z:/private/10285A82/crash4.test +../TEST/TclScript/crash5.test z:/private/10285A82/crash5.test +../TEST/TclScript/crash6.test z:/private/10285A82/crash6.test +../TEST/TclScript/crash7.test z:/private/10285A82/crash7.test +../TEST/TclScript/createtab.test z:/private/10285A82/createtab.test +../TEST/TclScript/cse.test z:/private/10285A82/cse.test +../TEST/TclScript/date.test z:/private/10285A82/date.test +../TEST/TclScript/default.test z:/private/10285A82/default.test +../TEST/TclScript/delete.test z:/private/10285A82/delete.test +../TEST/TclScript/delete2.test z:/private/10285A82/delete2.test +../TEST/TclScript/delete3.test z:/private/10285A82/delete3.test +../TEST/TclScript/descidx1.test z:/private/10285A82/descidx1.test +../TEST/TclScript/descidx2.test z:/private/10285A82/descidx2.test +../TEST/TclScript/descidx3.test z:/private/10285A82/descidx3.test +../TEST/TclScript/diskfull.test z:/private/10285A82/diskfull.test +../TEST/TclScript/distinctagg.test z:/private/10285A82/distinctagg.test +../TEST/TclScript/enc.test z:/private/10285A82/enc.test +../TEST/TclScript/enc2.test z:/private/10285A82/enc2.test +../TEST/TclScript/enc3.test z:/private/10285A82/enc3.test +../TEST/TclScript/eval.test z:/private/10285A82/eval.test +../TEST/TclScript/exclusive.test z:/private/10285A82/exclusive.test +../TEST/TclScript/exclusive2.test z:/private/10285A82/exclusive2.test +../TEST/TclScript/exec.test z:/private/10285A82/exec.test +../TEST/TclScript/expr.test z:/private/10285A82/expr.test +../TEST/TclScript/filectrl.test z:/private/10285A82/filectrl.test +../TEST/TclScript/filefmt.test z:/private/10285A82/filefmt.test +../TEST/TclScript/fkey1.test z:/private/10285A82/fkey1.test +../TEST/TclScript/format4.test z:/private/10285A82/format4.test +../TEST/TclScript/fts1a.test z:/private/10285A82/fts1a.test +../TEST/TclScript/fts1b.test z:/private/10285A82/fts1b.test +../TEST/TclScript/fts1c.test z:/private/10285A82/fts1c.test +../TEST/TclScript/fts1d.test z:/private/10285A82/fts1d.test +../TEST/TclScript/fts1e.test z:/private/10285A82/fts1e.test +../TEST/TclScript/fts1f.test z:/private/10285A82/fts1f.test +../TEST/TclScript/fts1i.test z:/private/10285A82/fts1i.test +../TEST/TclScript/fts1j.test z:/private/10285A82/fts1j.test +../TEST/TclScript/fts1k.test z:/private/10285A82/fts1k.test +../TEST/TclScript/fts1l.test z:/private/10285A82/fts1l.test +../TEST/TclScript/fts1m.test z:/private/10285A82/fts1m.test +../TEST/TclScript/fts1n.test z:/private/10285A82/fts1n.test +../TEST/TclScript/fts1o.test z:/private/10285A82/fts1o.test +../TEST/TclScript/fts1porter.test z:/private/10285A82/fts1porter.test +../TEST/TclScript/fts2.test z:/private/10285A82/fts2.test +../TEST/TclScript/fts2a.test z:/private/10285A82/fts2a.test +../TEST/TclScript/fts2b.test z:/private/10285A82/fts2b.test +../TEST/TclScript/fts2c.test z:/private/10285A82/fts2c.test +../TEST/TclScript/fts2d.test z:/private/10285A82/fts2d.test +../TEST/TclScript/fts2e.test z:/private/10285A82/fts2e.test +../TEST/TclScript/fts2f.test z:/private/10285A82/fts2f.test +../TEST/TclScript/fts2g.test z:/private/10285A82/fts2g.test +../TEST/TclScript/fts2h.test z:/private/10285A82/fts2h.test +../TEST/TclScript/fts2i.test z:/private/10285A82/fts2i.test +../TEST/TclScript/fts2j.test z:/private/10285A82/fts2j.test +../TEST/TclScript/fts2k.test z:/private/10285A82/fts2k.test +../TEST/TclScript/fts2l.test z:/private/10285A82/fts2l.test +../TEST/TclScript/fts2m.test z:/private/10285A82/fts2m.test +../TEST/TclScript/fts2n.test z:/private/10285A82/fts2n.test +../TEST/TclScript/fts2o.test z:/private/10285A82/fts2o.test +../TEST/TclScript/fts2p.test z:/private/10285A82/fts2p.test +../TEST/TclScript/fts2q.test z:/private/10285A82/fts2q.test +../TEST/TclScript/fts2r.test z:/private/10285A82/fts2r.test +../TEST/TclScript/fts2token.test z:/private/10285A82/fts2token.test +../TEST/TclScript/fts3.test z:/private/10285A82/fts3.test +../TEST/TclScript/fts3aa.test z:/private/10285A82/fts3aa.test +../TEST/TclScript/fts3ab.test z:/private/10285A82/fts3ab.test +../TEST/TclScript/fts3ac.test z:/private/10285A82/fts3ac.test +../TEST/TclScript/fts3ad.test z:/private/10285A82/fts3ad.test +../TEST/TclScript/fts3ae.test z:/private/10285A82/fts3ae.test +../TEST/TclScript/fts3af.test z:/private/10285A82/fts3af.test +../TEST/TclScript/fts3ag.test z:/private/10285A82/fts3ag.test +../TEST/TclScript/fts3ah.test z:/private/10285A82/fts3ah.test +../TEST/TclScript/fts3ai.test z:/private/10285A82/fts3ai.test +../TEST/TclScript/fts3aj.test z:/private/10285A82/fts3aj.test +../TEST/TclScript/fts3ak.test z:/private/10285A82/fts3ak.test +../TEST/TclScript/fts3al.test z:/private/10285A82/fts3al.test +../TEST/TclScript/fts3am.test z:/private/10285A82/fts3am.test +../TEST/TclScript/fts3an.test z:/private/10285A82/fts3an.test +../TEST/TclScript/fts3ao.test z:/private/10285A82/fts3ao.test +../TEST/TclScript/fts3atoken.test z:/private/10285A82/fts3atoken.test +../TEST/TclScript/fts3b.test z:/private/10285A82/fts3b.test +../TEST/TclScript/fts3c.test z:/private/10285A82/fts3c.test +../TEST/TclScript/fts3d.test z:/private/10285A82/fts3d.test +../TEST/TclScript/fts3e.test z:/private/10285A82/fts3e.test +../TEST/TclScript/fts3near.test z:/private/10285A82/fts3near.test +../TEST/TclScript/func.test z:/private/10285A82/func.test +../TEST/TclScript/fuzz.test z:/private/10285A82/fuzz.test +../TEST/TclScript/fuzz2.test z:/private/10285A82/fuzz2.test +../TEST/TclScript/fuzz_malloc.test z:/private/10285A82/fuzz_malloc.test +../TEST/TclScript/hook.test z:/private/10285A82/hook.test +../TEST/TclScript/icu.test z:/private/10285A82/icu.test +../TEST/TclScript/in.test z:/private/10285A82/in.test +../TEST/TclScript/in2.test z:/private/10285A82/in2.test +../TEST/TclScript/in3.test z:/private/10285A82/in3.test +../TEST/TclScript/incrblob.test z:/private/10285A82/incrblob.test +../TEST/TclScript/incrblob2.test z:/private/10285A82/incrblob2.test +../TEST/TclScript/incrblob_err.test z:/private/10285A82/incrblob_err.test +../TEST/TclScript/incrvacuum.test z:/private/10285A82/incrvacuum.test +../TEST/TclScript/incrvacuum2.test z:/private/10285A82/incrvacuum2.test +../TEST/TclScript/incrvacuum_ioerr.test z:/private/10285A82/incrvacuum_ioerr.test +../TEST/TclScript/index.test z:/private/10285A82/index.test +../TEST/TclScript/index2.test z:/private/10285A82/index2.test +../TEST/TclScript/index3.test z:/private/10285A82/index3.test +../TEST/TclScript/insert.test z:/private/10285A82/insert.test +../TEST/TclScript/insert2.test z:/private/10285A82/insert2.test +../TEST/TclScript/insert3.test z:/private/10285A82/insert3.test +../TEST/TclScript/insert4.test z:/private/10285A82/insert4.test +../TEST/TclScript/insert5.test z:/private/10285A82/insert5.test +../TEST/TclScript/interrupt.test z:/private/10285A82/interrupt.test +../TEST/TclScript/intpkey.test z:/private/10285A82/intpkey.test +../TEST/TclScript/io.test z:/private/10285A82/io.test +../TEST/TclScript/ioerr.test z:/private/10285A82/ioerr.test +../TEST/TclScript/ioerr2.test z:/private/10285A82/ioerr2.test +../TEST/TclScript/ioerr3.test z:/private/10285A82/ioerr3.test +../TEST/TclScript/ioerr4.test z:/private/10285A82/ioerr4.test +../TEST/TclScript/ioerr5.test z:/private/10285A82/ioerr5.test +../TEST/TclScript/join.test z:/private/10285A82/join.test +../TEST/TclScript/join2.test z:/private/10285A82/join2.test +../TEST/TclScript/join3.test z:/private/10285A82/join3.test +../TEST/TclScript/join4.test z:/private/10285A82/join4.test +../TEST/TclScript/join5.test z:/private/10285A82/join5.test +../TEST/TclScript/journal1.test z:/private/10285A82/journal1.test +../TEST/TclScript/jrnlmode.test z:/private/10285A82/jrnlmode.test +../TEST/TclScript/lastinsert.test z:/private/10285A82/lastinsert.test +../TEST/TclScript/laststmtchanges.test z:/private/10285A82/laststmtchanges.test +../TEST/TclScript/like.test z:/private/10285A82/like.test +../TEST/TclScript/like2.test z:/private/10285A82/like2.test +../TEST/TclScript/limit.test z:/private/10285A82/limit.test +../TEST/TclScript/loadext.test z:/private/10285A82/loadext.test +../TEST/TclScript/loadext2.test z:/private/10285A82/loadext2.test +../TEST/TclScript/lock.test z:/private/10285A82/lock.test +../TEST/TclScript/lock2.test z:/private/10285A82/lock2.test +../TEST/TclScript/lock3.test z:/private/10285A82/lock3.test +../TEST/TclScript/lock4.test z:/private/10285A82/lock4.test +../TEST/TclScript/lock5.test z:/private/10285A82/lock5.test +../TEST/TclScript/lookaside.test z:/private/10285A82/lookaside.test +../TEST/TclScript/main.test z:/private/10285A82/main.test +../TEST/TclScript/malloc.test z:/private/10285A82/malloc.test +../TEST/TclScript/malloc3.test z:/private/10285A82/malloc3.test +../TEST/TclScript/malloc4.test z:/private/10285A82/malloc4.test +../TEST/TclScript/malloc5.test z:/private/10285A82/malloc5.test +../TEST/TclScript/malloc6.test z:/private/10285A82/malloc6.test +../TEST/TclScript/malloc7.test z:/private/10285A82/malloc7.test +../TEST/TclScript/malloc8.test z:/private/10285A82/malloc8.test +../TEST/TclScript/malloc9.test z:/private/10285A82/malloc9.test +../TEST/TclScript/mallocA.test z:/private/10285A82/mallocA.test +../TEST/TclScript/mallocAll.test z:/private/10285A82/mallocAll.test +../TEST/TclScript/mallocB.test z:/private/10285A82/mallocB.test +../TEST/TclScript/mallocC.test z:/private/10285A82/mallocC.test +../TEST/TclScript/mallocD.test z:/private/10285A82/mallocD.test +../TEST/TclScript/mallocE.test z:/private/10285A82/mallocE.test +../TEST/TclScript/mallocF.test z:/private/10285A82/mallocF.test +../TEST/TclScript/mallocG.test z:/private/10285A82/mallocG.test +../TEST/TclScript/mallocH.test z:/private/10285A82/mallocH.test +../TEST/TclScript/mallocI.test z:/private/10285A82/mallocI.test +../TEST/TclScript/manydb.test z:/private/10285A82/manydb.test +../TEST/TclScript/memdb.test z:/private/10285A82/memdb.test +../TEST/TclScript/memleak.test z:/private/10285A82/memleak.test +../TEST/TclScript/memsubsys1.test z:/private/10285A82/memsubsys1.test +../TEST/TclScript/memsubsys2.test z:/private/10285A82/memsubsys2.test +../TEST/TclScript/minmax.test z:/private/10285A82/minmax.test +../TEST/TclScript/minmax2.test z:/private/10285A82/minmax2.test +../TEST/TclScript/minmax3.test z:/private/10285A82/minmax3.test +../TEST/TclScript/misc1.test z:/private/10285A82/misc1.test +../TEST/TclScript/misc2.test z:/private/10285A82/misc2.test +../TEST/TclScript/misc3.test z:/private/10285A82/misc3.test +../TEST/TclScript/misc4.test z:/private/10285A82/misc4.test +../TEST/TclScript/misc5.test z:/private/10285A82/misc5.test +../TEST/TclScript/misc6.test z:/private/10285A82/misc6.test +../TEST/TclScript/misc7.test z:/private/10285A82/misc7.test +../TEST/TclScript/misuse.test z:/private/10285A82/misuse.test +../TEST/TclScript/mutex1.test z:/private/10285A82/mutex1.test +../TEST/TclScript/mutex2.test z:/private/10285A82/mutex2.test +../TEST/TclScript/nan.test z:/private/10285A82/nan.test +../TEST/TclScript/notnull.test z:/private/10285A82/notnull.test +../TEST/TclScript/null.test z:/private/10285A82/null.test +../TEST/TclScript/openv2.test z:/private/10285A82/openv2.test +../TEST/TclScript/pager.test z:/private/10285A82/pager.test +../TEST/TclScript/pager2.test z:/private/10285A82/pager2.test +../TEST/TclScript/pager3.test z:/private/10285A82/pager3.test +../TEST/TclScript/pageropt.test z:/private/10285A82/pageropt.test +../TEST/TclScript/pagesize.test z:/private/10285A82/pagesize.test +../TEST/TclScript/pcache.test z:/private/10285A82/pcache.test +../TEST/TclScript/permutations.test z:/private/10285A82/permutations.test +../TEST/TclScript/pragma.test z:/private/10285A82/pragma.test +../TEST/TclScript/pragma2.test z:/private/10285A82/pragma2.test +../TEST/TclScript/printf.test z:/private/10285A82/printf.test +../TEST/TclScript/progress.test z:/private/10285A82/progress.test +../TEST/TclScript/ptrchng.test z:/private/10285A82/ptrchng.test +../TEST/TclScript/quick.test z:/private/10285A82/quick.test +../TEST/TclScript/quote.test z:/private/10285A82/quote.test +../TEST/TclScript/rdonly.test z:/private/10285A82/rdonly.test +../TEST/TclScript/reindex.test z:/private/10285A82/reindex.test +../TEST/TclScript/rollback.test z:/private/10285A82/rollback.test +../TEST/TclScript/rowid.test z:/private/10285A82/rowid.test +../TEST/TclScript/rtree.test z:/private/10285A82/rtree.test +../TEST/TclScript/safety.test z:/private/10285A82/safety.test +../TEST/TclScript/schema.test z:/private/10285A82/schema.test +../TEST/TclScript/schema2.test z:/private/10285A82/schema2.test +../TEST/TclScript/select1.test z:/private/10285A82/select1.test +../TEST/TclScript/select2.test z:/private/10285A82/select2.test +../TEST/TclScript/select3.test z:/private/10285A82/select3.test +../TEST/TclScript/select4.test z:/private/10285A82/select4.test +../TEST/TclScript/select5.test z:/private/10285A82/select5.test +../TEST/TclScript/select6.test z:/private/10285A82/select6.test +../TEST/TclScript/select7.test z:/private/10285A82/select7.test +../TEST/TclScript/select8.test z:/private/10285A82/select8.test +../TEST/TclScript/select9.test z:/private/10285A82/select9.test +../TEST/TclScript/selectA.test z:/private/10285A82/selectA.test +../TEST/TclScript/selectB.test z:/private/10285A82/selectB.test +../TEST/TclScript/server1.test z:/private/10285A82/server1.test +../TEST/TclScript/shared.test z:/private/10285A82/shared.test +../TEST/TclScript/shared2.test z:/private/10285A82/shared2.test +../TEST/TclScript/shared3.test z:/private/10285A82/shared3.test +../TEST/TclScript/shared4.test z:/private/10285A82/shared4.test +../TEST/TclScript/shared_err.test z:/private/10285A82/shared_err.test +../TEST/TclScript/shortread1.test z:/private/10285A82/shortread1.test +../TEST/TclScript/sidedelete.test z:/private/10285A82/sidedelete.test +../TEST/TclScript/soak.test z:/private/10285A82/soak.test +../TEST/TclScript/softheap1.test z:/private/10285A82/softheap1.test +../TEST/TclScript/sort.test z:/private/10285A82/sort.test +../TEST/TclScript/speed1.test z:/private/10285A82/speed1.test +../TEST/TclScript/speed1p.test z:/private/10285A82/speed1p.test +../TEST/TclScript/speed2.test z:/private/10285A82/speed2.test +../TEST/TclScript/speed3.test z:/private/10285A82/speed3.test +../TEST/TclScript/speed4.test z:/private/10285A82/speed4.test +../TEST/TclScript/speed4p.test z:/private/10285A82/speed4p.test +../TEST/TclScript/sqllimits1.test z:/private/10285A82/sqllimits1.test +../TEST/TclScript/subquery.test z:/private/10285A82/subquery.test +../TEST/TclScript/subselect.test z:/private/10285A82/subselect.test +../TEST/TclScript/substr.test z:/private/10285A82/substr.test +../TEST/TclScript/sync.test z:/private/10285A82/sync.test +../TEST/TclScript/table.test z:/private/10285A82/table.test +../TEST/TclScript/tableapi.test z:/private/10285A82/tableapi.test +../TEST/TclScript/tclsqlite.test z:/private/10285A82/tclsqlite.test +../TEST/TclScript/tempdb.test z:/private/10285A82/tempdb.test +../TEST/TclScript/temptable.test z:/private/10285A82/temptable.test +../TEST/TclScript/thread001.test z:/private/10285A82/thread001.test +../TEST/TclScript/thread002.test z:/private/10285A82/thread002.test +../TEST/TclScript/thread003.test z:/private/10285A82/thread003.test +../TEST/TclScript/thread1.test z:/private/10285A82/thread1.test +../TEST/TclScript/thread2.test z:/private/10285A82/thread2.test +../TEST/TclScript/tkt1435.test z:/private/10285A82/tkt1435.test +../TEST/TclScript/tkt1443.test z:/private/10285A82/tkt1443.test +../TEST/TclScript/tkt1444.test z:/private/10285A82/tkt1444.test +../TEST/TclScript/tkt1449.test z:/private/10285A82/tkt1449.test +../TEST/TclScript/tkt1473.test z:/private/10285A82/tkt1473.test +../TEST/TclScript/tkt1501.test z:/private/10285A82/tkt1501.test +../TEST/TclScript/tkt1512.test z:/private/10285A82/tkt1512.test +../TEST/TclScript/tkt1514.test z:/private/10285A82/tkt1514.test +../TEST/TclScript/tkt1536.test z:/private/10285A82/tkt1536.test +../TEST/TclScript/tkt1537.test z:/private/10285A82/tkt1537.test +../TEST/TclScript/tkt1567.test z:/private/10285A82/tkt1567.test +../TEST/TclScript/tkt1644.test z:/private/10285A82/tkt1644.test +../TEST/TclScript/tkt1667.test z:/private/10285A82/tkt1667.test +../TEST/TclScript/tkt1873.test z:/private/10285A82/tkt1873.test +../TEST/TclScript/tkt2141.test z:/private/10285A82/tkt2141.test +../TEST/TclScript/tkt2192.test z:/private/10285A82/tkt2192.test +../TEST/TclScript/tkt2213.test z:/private/10285A82/tkt2213.test +../TEST/TclScript/tkt2251.test z:/private/10285A82/tkt2251.test +../TEST/TclScript/tkt2285.test z:/private/10285A82/tkt2285.test +../TEST/TclScript/tkt2332.test z:/private/10285A82/tkt2332.test +../TEST/TclScript/tkt2339.test z:/private/10285A82/tkt2339.test +../TEST/TclScript/tkt2391.test z:/private/10285A82/tkt2391.test +../TEST/TclScript/tkt2409.test z:/private/10285A82/tkt2409.test +../TEST/TclScript/tkt2450.test z:/private/10285A82/tkt2450.test +../TEST/TclScript/tkt2640.test z:/private/10285A82/tkt2640.test +../TEST/TclScript/tkt2643.test z:/private/10285A82/tkt2643.test +../TEST/TclScript/tkt2686.test z:/private/10285A82/tkt2686.test +../TEST/TclScript/tkt2767.test z:/private/10285A82/tkt2767.test +../TEST/TclScript/tkt2817.test z:/private/10285A82/tkt2817.test +../TEST/TclScript/tkt2820.test z:/private/10285A82/tkt2820.test +../TEST/TclScript/tkt2822.test z:/private/10285A82/tkt2822.test +../TEST/TclScript/tkt2832.test z:/private/10285A82/tkt2832.test +../TEST/TclScript/tkt2854.test z:/private/10285A82/tkt2854.test +../TEST/TclScript/tkt2920.test z:/private/10285A82/tkt2920.test +../TEST/TclScript/tkt2927.test z:/private/10285A82/tkt2927.test +../TEST/TclScript/tkt2942.test z:/private/10285A82/tkt2942.test +../TEST/TclScript/tkt3080.test z:/private/10285A82/tkt3080.test +../TEST/TclScript/tkt3093.test z:/private/10285A82/tkt3093.test +../TEST/TclScript/tkt3121.test z:/private/10285A82/tkt3121.test +../TEST/TclScript/tkt3201.test z:/private/10285A82/tkt3201.test +../TEST/TclScript/tkt3292.test z:/private/10285A82/tkt3292.test +../TEST/TclScript/tkt3298.test z:/private/10285A82/tkt3298.test +../TEST/TclScript/tkt3334.test z:/private/10285A82/tkt3334.test +../TEST/TclScript/tokenize.test z:/private/10285A82/tokenize.test +../TEST/TclScript/trace.test z:/private/10285A82/trace.test +../TEST/TclScript/trans.test z:/private/10285A82/trans.test +../TEST/TclScript/trans2.test z:/private/10285A82/trans2.test +../TEST/TclScript/trigger1.test z:/private/10285A82/trigger1.test +../TEST/TclScript/trigger2.test z:/private/10285A82/trigger2.test +../TEST/TclScript/trigger3.test z:/private/10285A82/trigger3.test +../TEST/TclScript/trigger4.test z:/private/10285A82/trigger4.test +../TEST/TclScript/trigger5.test z:/private/10285A82/trigger5.test +../TEST/TclScript/trigger6.test z:/private/10285A82/trigger6.test +../TEST/TclScript/trigger7.test z:/private/10285A82/trigger7.test +../TEST/TclScript/trigger8.test z:/private/10285A82/trigger8.test +../TEST/TclScript/trigger9.test z:/private/10285A82/trigger9.test +../TEST/TclScript/triggerA.test z:/private/10285A82/triggerA.test +../TEST/TclScript/triggerB.test z:/private/10285A82/triggerB.test +../TEST/TclScript/types.test z:/private/10285A82/types.test +../TEST/TclScript/types2.test z:/private/10285A82/types2.test +../TEST/TclScript/types3.test z:/private/10285A82/types3.test +../TEST/TclScript/unique.test z:/private/10285A82/unique.test +../TEST/TclScript/update.test z:/private/10285A82/update.test +../TEST/TclScript/utf16align.test z:/private/10285A82/utf16align.test +../TEST/TclScript/vacuum.test z:/private/10285A82/vacuum.test +../TEST/TclScript/vacuum2.test z:/private/10285A82/vacuum2.test +../TEST/TclScript/vacuum3.test z:/private/10285A82/vacuum3.test +../TEST/TclScript/varint.test z:/private/10285A82/varint.test +../TEST/TclScript/veryquick.test z:/private/10285A82/veryquick.test +../TEST/TclScript/view.test z:/private/10285A82/view.test +../TEST/TclScript/vtab1.test z:/private/10285A82/vtab1.test +../TEST/TclScript/vtab2.test z:/private/10285A82/vtab2.test +../TEST/TclScript/vtab3.test z:/private/10285A82/vtab3.test +../TEST/TclScript/vtab4.test z:/private/10285A82/vtab4.test +../TEST/TclScript/vtab5.test z:/private/10285A82/vtab5.test +../TEST/TclScript/vtab6.test z:/private/10285A82/vtab6.test +../TEST/TclScript/vtab7.test z:/private/10285A82/vtab7.test +../TEST/TclScript/vtab8.test z:/private/10285A82/vtab8.test +../TEST/TclScript/vtab9.test z:/private/10285A82/vtab9.test +../TEST/TclScript/vtabA.test z:/private/10285A82/vtabA.test +../TEST/TclScript/vtabB.test z:/private/10285A82/vtabB.test +../TEST/TclScript/vtabC.test z:/private/10285A82/vtabC.test +../TEST/TclScript/vtab_alter.test z:/private/10285A82/vtab_alter.test +../TEST/TclScript/vtab_err.test z:/private/10285A82/vtab_err.test +../TEST/TclScript/vtab_shared.test z:/private/10285A82/vtab_shared.test +../TEST/TclScript/where.test z:/private/10285A82/where.test +../TEST/TclScript/where2.test z:/private/10285A82/where2.test +../TEST/TclScript/where3.test z:/private/10285A82/where3.test +../TEST/TclScript/where4.test z:/private/10285A82/where4.test +../TEST/TclScript/where5.test z:/private/10285A82/where5.test +../TEST/TclScript/where6.test z:/private/10285A82/where6.test +../TEST/TclScript/zeroblob.test z:/private/10285A82/zeroblob.test PRJ_TESTMMPFILES @@ -52,5 +457,3 @@ ../GROUP/t_sqliteperf2.mmp ../GROUP/t_sqlitedef.mmp ../GROUP/t_sqlitedb64.mmp manual - -#include "sqlite3test.inf" diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/GROUP/sqlite3test.inf --- a/persistentstorage/sqlite3api/GROUP/sqlite3test.inf Thu May 27 14:29:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,427 +0,0 @@ -// Copyright (c 2010 Nokia Corporation and/or its subsidiary(-ies. -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// This file copies SQLite3 TCL scripts and test files to the target location -// -// - -/** - @file -*/ - -PRJ_TESTEXPORTS - -../TEST/TclScript/speed1p.explain z:/private/10285A82/speed1p.explain -../TEST/TclScript/speed4p.explain z:/private/10285A82/speed4p.explain -../TEST/TclScript/fuzz_common.tcl z:/private/10285A82/fuzz_common.tcl -../TEST/TclScript/malloc_common.tcl z:/private/10285A82/malloc_common.tcl -../TEST/TclScript/tester.tcl z:/private/10285A82/tester.tcl -../TEST/TclScript/thread_common.tcl z:/private/10285A82/thread_common.tcl -../TEST/TclScript/trans2.test.gz z:/private/10285A82/trans2.test.gz -../TEST/TclScript/aggerror.test z:/private/10285A82/aggerror.test -../TEST/TclScript/alias.test z:/private/10285A82/alias.test -../TEST/TclScript/all.test z:/private/10285A82/all.test -../TEST/TclScript/alter.test z:/private/10285A82/alter.test -../TEST/TclScript/alter2.test z:/private/10285A82/alter2.test -../TEST/TclScript/alter3.test z:/private/10285A82/alter3.test -../TEST/TclScript/altermalloc.test z:/private/10285A82/altermalloc.test -../TEST/TclScript/analyze.test z:/private/10285A82/analyze.test -../TEST/TclScript/async.test z:/private/10285A82/async.test -../TEST/TclScript/async2.test z:/private/10285A82/async2.test -../TEST/TclScript/async3.test z:/private/10285A82/async3.test -../TEST/TclScript/attach.test z:/private/10285A82/attach.test -../TEST/TclScript/attach2.test z:/private/10285A82/attach2.test -../TEST/TclScript/attach3.test z:/private/10285A82/attach3.test -../TEST/TclScript/attachmalloc.test z:/private/10285A82/attachmalloc.test -../TEST/TclScript/auth.test z:/private/10285A82/auth.test -../TEST/TclScript/auth2.test z:/private/10285A82/auth2.test -../TEST/TclScript/autoinc.test z:/private/10285A82/autoinc.test -../TEST/TclScript/autovacuum.test z:/private/10285A82/autovacuum.test -../TEST/TclScript/autovacuum_ioerr2.test z:/private/10285A82/autovacuum_ioerr2.test -../TEST/TclScript/avtrans.test z:/private/10285A82/avtrans.test -../TEST/TclScript/badutf.test z:/private/10285A82/badutf.test -../TEST/TclScript/between.test z:/private/10285A82/between.test -../TEST/TclScript/bigfile.test z:/private/10285A82/bigfile.test -../TEST/TclScript/bigrow.test z:/private/10285A82/bigrow.test -../TEST/TclScript/bind.test z:/private/10285A82/bind.test -../TEST/TclScript/bindxfer.test z:/private/10285A82/bindxfer.test -../TEST/TclScript/bitvec.test z:/private/10285A82/bitvec.test -../TEST/TclScript/blob.test z:/private/10285A82/blob.test -../TEST/TclScript/busy.test z:/private/10285A82/busy.test -../TEST/TclScript/cache.test z:/private/10285A82/cache.test -../TEST/TclScript/capi2.test z:/private/10285A82/capi2.test -../TEST/TclScript/capi3.test z:/private/10285A82/capi3.test -../TEST/TclScript/capi3b.test z:/private/10285A82/capi3b.test -../TEST/TclScript/capi3c.test z:/private/10285A82/capi3c.test -../TEST/TclScript/capi3d.test z:/private/10285A82/capi3d.test -../TEST/TclScript/cast.test z:/private/10285A82/cast.test -../TEST/TclScript/check.test z:/private/10285A82/check.test -../TEST/TclScript/collate1.test z:/private/10285A82/collate1.test -../TEST/TclScript/collate2.test z:/private/10285A82/collate2.test -../TEST/TclScript/collate3.test z:/private/10285A82/collate3.test -../TEST/TclScript/collate4.test z:/private/10285A82/collate4.test -../TEST/TclScript/collate5.test z:/private/10285A82/collate5.test -../TEST/TclScript/collate6.test z:/private/10285A82/collate6.test -../TEST/TclScript/collate7.test z:/private/10285A82/collate7.test -../TEST/TclScript/collate8.test z:/private/10285A82/collate8.test -../TEST/TclScript/collate9.test z:/private/10285A82/collate9.test -../TEST/TclScript/collateA.test z:/private/10285A82/collateA.test -../TEST/TclScript/colmeta.test z:/private/10285A82/colmeta.test -../TEST/TclScript/colname.test z:/private/10285A82/colname.test -../TEST/TclScript/conflict.test z:/private/10285A82/conflict.test -../TEST/TclScript/corrupt.test z:/private/10285A82/corrupt.test -../TEST/TclScript/corrupt2.test z:/private/10285A82/corrupt2.test -../TEST/TclScript/corrupt3.test z:/private/10285A82/corrupt3.test -../TEST/TclScript/corrupt4.test z:/private/10285A82/corrupt4.test -../TEST/TclScript/corrupt5.test z:/private/10285A82/corrupt5.test -../TEST/TclScript/corrupt6.test z:/private/10285A82/corrupt6.test -../TEST/TclScript/corrupt7.test z:/private/10285A82/corrupt7.test -../TEST/TclScript/corrupt8.test z:/private/10285A82/corrupt8.test -../TEST/TclScript/corrupt9.test z:/private/10285A82/corrupt9.test -../TEST/TclScript/corruptA.test z:/private/10285A82/corruptA.test -../TEST/TclScript/crash.test z:/private/10285A82/crash.test -../TEST/TclScript/crash2.test z:/private/10285A82/crash2.test -../TEST/TclScript/crash3.test z:/private/10285A82/crash3.test -../TEST/TclScript/crash4.test z:/private/10285A82/crash4.test -../TEST/TclScript/crash5.test z:/private/10285A82/crash5.test -../TEST/TclScript/crash6.test z:/private/10285A82/crash6.test -../TEST/TclScript/crash7.test z:/private/10285A82/crash7.test -../TEST/TclScript/createtab.test z:/private/10285A82/createtab.test -../TEST/TclScript/cse.test z:/private/10285A82/cse.test -../TEST/TclScript/date.test z:/private/10285A82/date.test -../TEST/TclScript/default.test z:/private/10285A82/default.test -../TEST/TclScript/delete.test z:/private/10285A82/delete.test -../TEST/TclScript/delete2.test z:/private/10285A82/delete2.test -../TEST/TclScript/delete3.test z:/private/10285A82/delete3.test -../TEST/TclScript/descidx1.test z:/private/10285A82/descidx1.test -../TEST/TclScript/descidx2.test z:/private/10285A82/descidx2.test -../TEST/TclScript/descidx3.test z:/private/10285A82/descidx3.test -../TEST/TclScript/diskfull.test z:/private/10285A82/diskfull.test -../TEST/TclScript/distinctagg.test z:/private/10285A82/distinctagg.test -../TEST/TclScript/enc.test z:/private/10285A82/enc.test -../TEST/TclScript/enc2.test z:/private/10285A82/enc2.test -../TEST/TclScript/enc3.test z:/private/10285A82/enc3.test -../TEST/TclScript/eval.test z:/private/10285A82/eval.test -../TEST/TclScript/exclusive.test z:/private/10285A82/exclusive.test -../TEST/TclScript/exclusive2.test z:/private/10285A82/exclusive2.test -../TEST/TclScript/exec.test z:/private/10285A82/exec.test -../TEST/TclScript/expr.test z:/private/10285A82/expr.test -../TEST/TclScript/filectrl.test z:/private/10285A82/filectrl.test -../TEST/TclScript/filefmt.test z:/private/10285A82/filefmt.test -../TEST/TclScript/fkey1.test z:/private/10285A82/fkey1.test -../TEST/TclScript/format4.test z:/private/10285A82/format4.test -../TEST/TclScript/fts1a.test z:/private/10285A82/fts1a.test -../TEST/TclScript/fts1b.test z:/private/10285A82/fts1b.test -../TEST/TclScript/fts1c.test z:/private/10285A82/fts1c.test -../TEST/TclScript/fts1d.test z:/private/10285A82/fts1d.test -../TEST/TclScript/fts1e.test z:/private/10285A82/fts1e.test -../TEST/TclScript/fts1f.test z:/private/10285A82/fts1f.test -../TEST/TclScript/fts1i.test z:/private/10285A82/fts1i.test -../TEST/TclScript/fts1j.test z:/private/10285A82/fts1j.test -../TEST/TclScript/fts1k.test z:/private/10285A82/fts1k.test -../TEST/TclScript/fts1l.test z:/private/10285A82/fts1l.test -../TEST/TclScript/fts1m.test z:/private/10285A82/fts1m.test -../TEST/TclScript/fts1n.test z:/private/10285A82/fts1n.test -../TEST/TclScript/fts1o.test z:/private/10285A82/fts1o.test -../TEST/TclScript/fts1porter.test z:/private/10285A82/fts1porter.test -../TEST/TclScript/fts2.test z:/private/10285A82/fts2.test -../TEST/TclScript/fts2a.test z:/private/10285A82/fts2a.test -../TEST/TclScript/fts2b.test z:/private/10285A82/fts2b.test -../TEST/TclScript/fts2c.test z:/private/10285A82/fts2c.test -../TEST/TclScript/fts2d.test z:/private/10285A82/fts2d.test -../TEST/TclScript/fts2e.test z:/private/10285A82/fts2e.test -../TEST/TclScript/fts2f.test z:/private/10285A82/fts2f.test -../TEST/TclScript/fts2g.test z:/private/10285A82/fts2g.test -../TEST/TclScript/fts2h.test z:/private/10285A82/fts2h.test -../TEST/TclScript/fts2i.test z:/private/10285A82/fts2i.test -../TEST/TclScript/fts2j.test z:/private/10285A82/fts2j.test -../TEST/TclScript/fts2k.test z:/private/10285A82/fts2k.test -../TEST/TclScript/fts2l.test z:/private/10285A82/fts2l.test -../TEST/TclScript/fts2m.test z:/private/10285A82/fts2m.test -../TEST/TclScript/fts2n.test z:/private/10285A82/fts2n.test -../TEST/TclScript/fts2o.test z:/private/10285A82/fts2o.test -../TEST/TclScript/fts2p.test z:/private/10285A82/fts2p.test -../TEST/TclScript/fts2q.test z:/private/10285A82/fts2q.test -../TEST/TclScript/fts2r.test z:/private/10285A82/fts2r.test -../TEST/TclScript/fts2token.test z:/private/10285A82/fts2token.test -../TEST/TclScript/fts3.test z:/private/10285A82/fts3.test -../TEST/TclScript/fts3aa.test z:/private/10285A82/fts3aa.test -../TEST/TclScript/fts3ab.test z:/private/10285A82/fts3ab.test -../TEST/TclScript/fts3ac.test z:/private/10285A82/fts3ac.test -../TEST/TclScript/fts3ad.test z:/private/10285A82/fts3ad.test -../TEST/TclScript/fts3ae.test z:/private/10285A82/fts3ae.test -../TEST/TclScript/fts3af.test z:/private/10285A82/fts3af.test -../TEST/TclScript/fts3ag.test z:/private/10285A82/fts3ag.test -../TEST/TclScript/fts3ah.test z:/private/10285A82/fts3ah.test -../TEST/TclScript/fts3ai.test z:/private/10285A82/fts3ai.test -../TEST/TclScript/fts3aj.test z:/private/10285A82/fts3aj.test -../TEST/TclScript/fts3ak.test z:/private/10285A82/fts3ak.test -../TEST/TclScript/fts3al.test z:/private/10285A82/fts3al.test -../TEST/TclScript/fts3am.test z:/private/10285A82/fts3am.test -../TEST/TclScript/fts3an.test z:/private/10285A82/fts3an.test -../TEST/TclScript/fts3ao.test z:/private/10285A82/fts3ao.test -../TEST/TclScript/fts3atoken.test z:/private/10285A82/fts3atoken.test -../TEST/TclScript/fts3b.test z:/private/10285A82/fts3b.test -../TEST/TclScript/fts3c.test z:/private/10285A82/fts3c.test -../TEST/TclScript/fts3d.test z:/private/10285A82/fts3d.test -../TEST/TclScript/fts3e.test z:/private/10285A82/fts3e.test -../TEST/TclScript/fts3near.test z:/private/10285A82/fts3near.test -../TEST/TclScript/func.test z:/private/10285A82/func.test -../TEST/TclScript/fuzz.test z:/private/10285A82/fuzz.test -../TEST/TclScript/fuzz2.test z:/private/10285A82/fuzz2.test -../TEST/TclScript/fuzz_malloc.test z:/private/10285A82/fuzz_malloc.test -../TEST/TclScript/hook.test z:/private/10285A82/hook.test -../TEST/TclScript/icu.test z:/private/10285A82/icu.test -../TEST/TclScript/in.test z:/private/10285A82/in.test -../TEST/TclScript/in2.test z:/private/10285A82/in2.test -../TEST/TclScript/in3.test z:/private/10285A82/in3.test -../TEST/TclScript/incrblob.test z:/private/10285A82/incrblob.test -../TEST/TclScript/incrblob2.test z:/private/10285A82/incrblob2.test -../TEST/TclScript/incrblob_err.test z:/private/10285A82/incrblob_err.test -../TEST/TclScript/incrvacuum.test z:/private/10285A82/incrvacuum.test -../TEST/TclScript/incrvacuum2.test z:/private/10285A82/incrvacuum2.test -../TEST/TclScript/incrvacuum_ioerr.test z:/private/10285A82/incrvacuum_ioerr.test -../TEST/TclScript/index.test z:/private/10285A82/index.test -../TEST/TclScript/index2.test z:/private/10285A82/index2.test -../TEST/TclScript/index3.test z:/private/10285A82/index3.test -../TEST/TclScript/insert.test z:/private/10285A82/insert.test -../TEST/TclScript/insert2.test z:/private/10285A82/insert2.test -../TEST/TclScript/insert3.test z:/private/10285A82/insert3.test -../TEST/TclScript/insert4.test z:/private/10285A82/insert4.test -../TEST/TclScript/insert5.test z:/private/10285A82/insert5.test -../TEST/TclScript/interrupt.test z:/private/10285A82/interrupt.test -../TEST/TclScript/intpkey.test z:/private/10285A82/intpkey.test -../TEST/TclScript/io.test z:/private/10285A82/io.test -../TEST/TclScript/ioerr.test z:/private/10285A82/ioerr.test -../TEST/TclScript/ioerr2.test z:/private/10285A82/ioerr2.test -../TEST/TclScript/ioerr3.test z:/private/10285A82/ioerr3.test -../TEST/TclScript/ioerr4.test z:/private/10285A82/ioerr4.test -../TEST/TclScript/ioerr5.test z:/private/10285A82/ioerr5.test -../TEST/TclScript/join.test z:/private/10285A82/join.test -../TEST/TclScript/join2.test z:/private/10285A82/join2.test -../TEST/TclScript/join3.test z:/private/10285A82/join3.test -../TEST/TclScript/join4.test z:/private/10285A82/join4.test -../TEST/TclScript/join5.test z:/private/10285A82/join5.test -../TEST/TclScript/journal1.test z:/private/10285A82/journal1.test -../TEST/TclScript/jrnlmode.test z:/private/10285A82/jrnlmode.test -../TEST/TclScript/lastinsert.test z:/private/10285A82/lastinsert.test -../TEST/TclScript/laststmtchanges.test z:/private/10285A82/laststmtchanges.test -../TEST/TclScript/like.test z:/private/10285A82/like.test -../TEST/TclScript/like2.test z:/private/10285A82/like2.test -../TEST/TclScript/limit.test z:/private/10285A82/limit.test -../TEST/TclScript/loadext.test z:/private/10285A82/loadext.test -../TEST/TclScript/loadext2.test z:/private/10285A82/loadext2.test -../TEST/TclScript/lock.test z:/private/10285A82/lock.test -../TEST/TclScript/lock2.test z:/private/10285A82/lock2.test -../TEST/TclScript/lock3.test z:/private/10285A82/lock3.test -../TEST/TclScript/lock4.test z:/private/10285A82/lock4.test -../TEST/TclScript/lock5.test z:/private/10285A82/lock5.test -../TEST/TclScript/lookaside.test z:/private/10285A82/lookaside.test -../TEST/TclScript/main.test z:/private/10285A82/main.test -../TEST/TclScript/malloc.test z:/private/10285A82/malloc.test -../TEST/TclScript/malloc3.test z:/private/10285A82/malloc3.test -../TEST/TclScript/malloc4.test z:/private/10285A82/malloc4.test -../TEST/TclScript/malloc5.test z:/private/10285A82/malloc5.test -../TEST/TclScript/malloc6.test z:/private/10285A82/malloc6.test -../TEST/TclScript/malloc7.test z:/private/10285A82/malloc7.test -../TEST/TclScript/malloc8.test z:/private/10285A82/malloc8.test -../TEST/TclScript/malloc9.test z:/private/10285A82/malloc9.test -../TEST/TclScript/mallocA.test z:/private/10285A82/mallocA.test -../TEST/TclScript/mallocAll.test z:/private/10285A82/mallocAll.test -../TEST/TclScript/mallocB.test z:/private/10285A82/mallocB.test -../TEST/TclScript/mallocC.test z:/private/10285A82/mallocC.test -../TEST/TclScript/mallocD.test z:/private/10285A82/mallocD.test -../TEST/TclScript/mallocE.test z:/private/10285A82/mallocE.test -../TEST/TclScript/mallocF.test z:/private/10285A82/mallocF.test -../TEST/TclScript/mallocG.test z:/private/10285A82/mallocG.test -../TEST/TclScript/mallocH.test z:/private/10285A82/mallocH.test -../TEST/TclScript/mallocI.test z:/private/10285A82/mallocI.test -../TEST/TclScript/manydb.test z:/private/10285A82/manydb.test -../TEST/TclScript/memdb.test z:/private/10285A82/memdb.test -../TEST/TclScript/memleak.test z:/private/10285A82/memleak.test -../TEST/TclScript/memsubsys1.test z:/private/10285A82/memsubsys1.test -../TEST/TclScript/memsubsys2.test z:/private/10285A82/memsubsys2.test -../TEST/TclScript/minmax.test z:/private/10285A82/minmax.test -../TEST/TclScript/minmax2.test z:/private/10285A82/minmax2.test -../TEST/TclScript/minmax3.test z:/private/10285A82/minmax3.test -../TEST/TclScript/misc1.test z:/private/10285A82/misc1.test -../TEST/TclScript/misc2.test z:/private/10285A82/misc2.test -../TEST/TclScript/misc3.test z:/private/10285A82/misc3.test -../TEST/TclScript/misc4.test z:/private/10285A82/misc4.test -../TEST/TclScript/misc5.test z:/private/10285A82/misc5.test -../TEST/TclScript/misc6.test z:/private/10285A82/misc6.test -../TEST/TclScript/misc7.test z:/private/10285A82/misc7.test -../TEST/TclScript/misuse.test z:/private/10285A82/misuse.test -../TEST/TclScript/mutex1.test z:/private/10285A82/mutex1.test -../TEST/TclScript/mutex2.test z:/private/10285A82/mutex2.test -../TEST/TclScript/nan.test z:/private/10285A82/nan.test -../TEST/TclScript/notnull.test z:/private/10285A82/notnull.test -../TEST/TclScript/null.test z:/private/10285A82/null.test -../TEST/TclScript/openv2.test z:/private/10285A82/openv2.test -../TEST/TclScript/pager.test z:/private/10285A82/pager.test -../TEST/TclScript/pager2.test z:/private/10285A82/pager2.test -../TEST/TclScript/pager3.test z:/private/10285A82/pager3.test -../TEST/TclScript/pageropt.test z:/private/10285A82/pageropt.test -../TEST/TclScript/pagesize.test z:/private/10285A82/pagesize.test -../TEST/TclScript/pcache.test z:/private/10285A82/pcache.test -../TEST/TclScript/permutations.test z:/private/10285A82/permutations.test -../TEST/TclScript/pragma.test z:/private/10285A82/pragma.test -../TEST/TclScript/pragma2.test z:/private/10285A82/pragma2.test -../TEST/TclScript/printf.test z:/private/10285A82/printf.test -../TEST/TclScript/progress.test z:/private/10285A82/progress.test -../TEST/TclScript/ptrchng.test z:/private/10285A82/ptrchng.test -../TEST/TclScript/quick.test z:/private/10285A82/quick.test -../TEST/TclScript/quote.test z:/private/10285A82/quote.test -../TEST/TclScript/rdonly.test z:/private/10285A82/rdonly.test -../TEST/TclScript/reindex.test z:/private/10285A82/reindex.test -../TEST/TclScript/rollback.test z:/private/10285A82/rollback.test -../TEST/TclScript/rowid.test z:/private/10285A82/rowid.test -../TEST/TclScript/rtree.test z:/private/10285A82/rtree.test -../TEST/TclScript/safety.test z:/private/10285A82/safety.test -../TEST/TclScript/schema.test z:/private/10285A82/schema.test -../TEST/TclScript/schema2.test z:/private/10285A82/schema2.test -../TEST/TclScript/select1.test z:/private/10285A82/select1.test -../TEST/TclScript/select2.test z:/private/10285A82/select2.test -../TEST/TclScript/select3.test z:/private/10285A82/select3.test -../TEST/TclScript/select4.test z:/private/10285A82/select4.test -../TEST/TclScript/select5.test z:/private/10285A82/select5.test -../TEST/TclScript/select6.test z:/private/10285A82/select6.test -../TEST/TclScript/select7.test z:/private/10285A82/select7.test -../TEST/TclScript/select8.test z:/private/10285A82/select8.test -../TEST/TclScript/select9.test z:/private/10285A82/select9.test -../TEST/TclScript/selectA.test z:/private/10285A82/selectA.test -../TEST/TclScript/selectB.test z:/private/10285A82/selectB.test -../TEST/TclScript/server1.test z:/private/10285A82/server1.test -../TEST/TclScript/shared.test z:/private/10285A82/shared.test -../TEST/TclScript/shared2.test z:/private/10285A82/shared2.test -../TEST/TclScript/shared3.test z:/private/10285A82/shared3.test -../TEST/TclScript/shared4.test z:/private/10285A82/shared4.test -../TEST/TclScript/shared_err.test z:/private/10285A82/shared_err.test -../TEST/TclScript/shortread1.test z:/private/10285A82/shortread1.test -../TEST/TclScript/sidedelete.test z:/private/10285A82/sidedelete.test -../TEST/TclScript/soak.test z:/private/10285A82/soak.test -../TEST/TclScript/softheap1.test z:/private/10285A82/softheap1.test -../TEST/TclScript/sort.test z:/private/10285A82/sort.test -../TEST/TclScript/speed1.test z:/private/10285A82/speed1.test -../TEST/TclScript/speed1p.test z:/private/10285A82/speed1p.test -../TEST/TclScript/speed2.test z:/private/10285A82/speed2.test -../TEST/TclScript/speed3.test z:/private/10285A82/speed3.test -../TEST/TclScript/speed4.test z:/private/10285A82/speed4.test -../TEST/TclScript/speed4p.test z:/private/10285A82/speed4p.test -../TEST/TclScript/sqllimits1.test z:/private/10285A82/sqllimits1.test -../TEST/TclScript/subquery.test z:/private/10285A82/subquery.test -../TEST/TclScript/subselect.test z:/private/10285A82/subselect.test -../TEST/TclScript/substr.test z:/private/10285A82/substr.test -../TEST/TclScript/sync.test z:/private/10285A82/sync.test -../TEST/TclScript/table.test z:/private/10285A82/table.test -../TEST/TclScript/tableapi.test z:/private/10285A82/tableapi.test -../TEST/TclScript/tclsqlite.test z:/private/10285A82/tclsqlite.test -../TEST/TclScript/tempdb.test z:/private/10285A82/tempdb.test -../TEST/TclScript/temptable.test z:/private/10285A82/temptable.test -../TEST/TclScript/thread001.test z:/private/10285A82/thread001.test -../TEST/TclScript/thread002.test z:/private/10285A82/thread002.test -../TEST/TclScript/thread003.test z:/private/10285A82/thread003.test -../TEST/TclScript/thread1.test z:/private/10285A82/thread1.test -../TEST/TclScript/thread2.test z:/private/10285A82/thread2.test -../TEST/TclScript/tkt1435.test z:/private/10285A82/tkt1435.test -../TEST/TclScript/tkt1443.test z:/private/10285A82/tkt1443.test -../TEST/TclScript/tkt1444.test z:/private/10285A82/tkt1444.test -../TEST/TclScript/tkt1449.test z:/private/10285A82/tkt1449.test -../TEST/TclScript/tkt1473.test z:/private/10285A82/tkt1473.test -../TEST/TclScript/tkt1501.test z:/private/10285A82/tkt1501.test -../TEST/TclScript/tkt1512.test z:/private/10285A82/tkt1512.test -../TEST/TclScript/tkt1514.test z:/private/10285A82/tkt1514.test -../TEST/TclScript/tkt1536.test z:/private/10285A82/tkt1536.test -../TEST/TclScript/tkt1537.test z:/private/10285A82/tkt1537.test -../TEST/TclScript/tkt1567.test z:/private/10285A82/tkt1567.test -../TEST/TclScript/tkt1644.test z:/private/10285A82/tkt1644.test -../TEST/TclScript/tkt1667.test z:/private/10285A82/tkt1667.test -../TEST/TclScript/tkt1873.test z:/private/10285A82/tkt1873.test -../TEST/TclScript/tkt2141.test z:/private/10285A82/tkt2141.test -../TEST/TclScript/tkt2192.test z:/private/10285A82/tkt2192.test -../TEST/TclScript/tkt2213.test z:/private/10285A82/tkt2213.test -../TEST/TclScript/tkt2251.test z:/private/10285A82/tkt2251.test -../TEST/TclScript/tkt2285.test z:/private/10285A82/tkt2285.test -../TEST/TclScript/tkt2332.test z:/private/10285A82/tkt2332.test -../TEST/TclScript/tkt2339.test z:/private/10285A82/tkt2339.test -../TEST/TclScript/tkt2391.test z:/private/10285A82/tkt2391.test -../TEST/TclScript/tkt2409.test z:/private/10285A82/tkt2409.test -../TEST/TclScript/tkt2450.test z:/private/10285A82/tkt2450.test -../TEST/TclScript/tkt2640.test z:/private/10285A82/tkt2640.test -../TEST/TclScript/tkt2643.test z:/private/10285A82/tkt2643.test -../TEST/TclScript/tkt2686.test z:/private/10285A82/tkt2686.test -../TEST/TclScript/tkt2767.test z:/private/10285A82/tkt2767.test -../TEST/TclScript/tkt2817.test z:/private/10285A82/tkt2817.test -../TEST/TclScript/tkt2820.test z:/private/10285A82/tkt2820.test -../TEST/TclScript/tkt2822.test z:/private/10285A82/tkt2822.test -../TEST/TclScript/tkt2832.test z:/private/10285A82/tkt2832.test -../TEST/TclScript/tkt2854.test z:/private/10285A82/tkt2854.test -../TEST/TclScript/tkt2920.test z:/private/10285A82/tkt2920.test -../TEST/TclScript/tkt2927.test z:/private/10285A82/tkt2927.test -../TEST/TclScript/tkt2942.test z:/private/10285A82/tkt2942.test -../TEST/TclScript/tkt3080.test z:/private/10285A82/tkt3080.test -../TEST/TclScript/tkt3093.test z:/private/10285A82/tkt3093.test -../TEST/TclScript/tkt3121.test z:/private/10285A82/tkt3121.test -../TEST/TclScript/tkt3201.test z:/private/10285A82/tkt3201.test -../TEST/TclScript/tkt3292.test z:/private/10285A82/tkt3292.test -../TEST/TclScript/tkt3298.test z:/private/10285A82/tkt3298.test -../TEST/TclScript/tkt3334.test z:/private/10285A82/tkt3334.test -../TEST/TclScript/tokenize.test z:/private/10285A82/tokenize.test -../TEST/TclScript/trace.test z:/private/10285A82/trace.test -../TEST/TclScript/trans.test z:/private/10285A82/trans.test -../TEST/TclScript/trans2.test z:/private/10285A82/trans2.test -../TEST/TclScript/trigger1.test z:/private/10285A82/trigger1.test -../TEST/TclScript/trigger2.test z:/private/10285A82/trigger2.test -../TEST/TclScript/trigger3.test z:/private/10285A82/trigger3.test -../TEST/TclScript/trigger4.test z:/private/10285A82/trigger4.test -../TEST/TclScript/trigger5.test z:/private/10285A82/trigger5.test -../TEST/TclScript/trigger6.test z:/private/10285A82/trigger6.test -../TEST/TclScript/trigger7.test z:/private/10285A82/trigger7.test -../TEST/TclScript/trigger8.test z:/private/10285A82/trigger8.test -../TEST/TclScript/trigger9.test z:/private/10285A82/trigger9.test -../TEST/TclScript/triggerA.test z:/private/10285A82/triggerA.test -../TEST/TclScript/triggerB.test z:/private/10285A82/triggerB.test -../TEST/TclScript/types.test z:/private/10285A82/types.test -../TEST/TclScript/types2.test z:/private/10285A82/types2.test -../TEST/TclScript/types3.test z:/private/10285A82/types3.test -../TEST/TclScript/unique.test z:/private/10285A82/unique.test -../TEST/TclScript/update.test z:/private/10285A82/update.test -../TEST/TclScript/utf16align.test z:/private/10285A82/utf16align.test -../TEST/TclScript/vacuum.test z:/private/10285A82/vacuum.test -../TEST/TclScript/vacuum2.test z:/private/10285A82/vacuum2.test -../TEST/TclScript/vacuum3.test z:/private/10285A82/vacuum3.test -../TEST/TclScript/varint.test z:/private/10285A82/varint.test -../TEST/TclScript/veryquick.test z:/private/10285A82/veryquick.test -../TEST/TclScript/view.test z:/private/10285A82/view.test -../TEST/TclScript/vtab1.test z:/private/10285A82/vtab1.test -../TEST/TclScript/vtab2.test z:/private/10285A82/vtab2.test -../TEST/TclScript/vtab3.test z:/private/10285A82/vtab3.test -../TEST/TclScript/vtab4.test z:/private/10285A82/vtab4.test -../TEST/TclScript/vtab5.test z:/private/10285A82/vtab5.test -../TEST/TclScript/vtab6.test z:/private/10285A82/vtab6.test -../TEST/TclScript/vtab7.test z:/private/10285A82/vtab7.test -../TEST/TclScript/vtab8.test z:/private/10285A82/vtab8.test -../TEST/TclScript/vtab9.test z:/private/10285A82/vtab9.test -../TEST/TclScript/vtabA.test z:/private/10285A82/vtabA.test -../TEST/TclScript/vtabB.test z:/private/10285A82/vtabB.test -../TEST/TclScript/vtabC.test z:/private/10285A82/vtabC.test -../TEST/TclScript/vtab_alter.test z:/private/10285A82/vtab_alter.test -../TEST/TclScript/vtab_err.test z:/private/10285A82/vtab_err.test -../TEST/TclScript/vtab_shared.test z:/private/10285A82/vtab_shared.test -../TEST/TclScript/where.test z:/private/10285A82/where.test -../TEST/TclScript/where2.test z:/private/10285A82/where2.test -../TEST/TclScript/where3.test z:/private/10285A82/where3.test -../TEST/TclScript/where4.test z:/private/10285A82/where4.test -../TEST/TclScript/where5.test z:/private/10285A82/where5.test -../TEST/TclScript/where6.test z:/private/10285A82/where6.test -../TEST/TclScript/zeroblob.test z:/private/10285A82/zeroblob.test diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/GROUP/sqlite3tests.iby --- a/persistentstorage/sqlite3api/GROUP/sqlite3tests.iby Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/GROUP/sqlite3tests.iby Fri Jun 11 15:29:22 2010 +0300 @@ -20,6 +20,8 @@ REM SQLITE3 +#include + #ifndef __STDIOSERVER_EXE__ #define __STDIOSERVER_EXE__ file=ABI_DIR\BUILD_DIR\StdioServer.exe sys\bin\StdioServer.exe @@ -27,10 +29,10 @@ #ifndef __TCLSQLITE3_CONFIG_INI__ #define __TCLSQLITE3_CONFIG_INI__ -data=ZSYSTEM\test\config.ini system\data\config.ini +data=DATAZ_\test\config.ini system\data\config.ini #endif -data=ZSYSTEM\test\sqlite3Tests.bat \TEST\sqlite3Tests.bat +data=DATAZ_\test\sqlite3Tests.bat \TEST\sqlite3Tests.bat data=ZPRIVATE\10285A82\speed1p.explain \PRIVATE\10285A82\speed1p.explain data=ZPRIVATE\10285A82\speed4p.explain \PRIVATE\10285A82\speed4p.explain diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/SQLite/fts1.h --- a/persistentstorage/sqlite3api/SQLite/fts1.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/SQLite/fts1.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ #include "sqlite3.h" #ifdef __cplusplus diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/SQLite/parse.h --- a/persistentstorage/sqlite3api/SQLite/parse.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/SQLite/parse.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #define TK_SEMI 1 #define TK_EXPLAIN 2 #define TK_QUERY 3 diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/SQLite/printf.c --- a/persistentstorage/sqlite3api/SQLite/printf.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/SQLite/printf.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* ** The "printf" code that follows dates from the 1980's. It is in ** the public domain. The original comments are included here for diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/compat/opendir.c --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/compat/opendir.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/compat/opendir.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* * opendir.c -- * diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic/regerrs.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic/regerrs.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic/regerrs.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - { REG_OKAY, "REG_OKAY", "no errors detected" }, { REG_NOMATCH, "REG_NOMATCH", "failed to match" }, { REG_BADPAT, "REG_BADPAT", "invalid regexp (reg version 0.8)" }, diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclAppleScriptHeader.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclAppleScriptHeader.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclAppleScriptHeader.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #if __POWERPC__ #include "MW_TclAppleScriptHeaderPPC" #elif __CFM68K__ diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclBuildLibHeader.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclBuildLibHeader.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclBuildLibHeader.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #if __POWERPC__ #include "MW_TclBuildLibHeaderPPC" #elif __CFM68K__ diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclHeader.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclHeader.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclHeader.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #if __POWERPC__ #include "MW_TclHeaderPPC" #elif __CFM68K__ diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclStaticHeader.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclStaticHeader.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclStaticHeader.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #if __POWERPC__ #include "MW_TclStaticHeaderPPC" #elif __CFM68K__ diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclTestHeader.h --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclTestHeader.h Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/MW_TclTestHeader.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,20 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - #if __POWERPC__ #include "MW_TclTestHeaderPPC" #elif __CFM68K__ diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/tclUnixCompat.c --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/tclUnixCompat.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/tclUnixCompat.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* * tclUnixCompat.c * diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win/buildall.vc.bat --- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win/buildall.vc.bat Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win/buildall.vc.bat Fri Jun 11 15:29:22 2010 +0300 @@ -1,18 +1,3 @@ -@rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem @echo off :: This is an example batchfile for building everything. Please diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/sqlite3api/TEST/TclScript/crashtest1.c --- a/persistentstorage/sqlite3api/TEST/TclScript/crashtest1.c Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/sqlite3api/TEST/TclScript/crashtest1.c Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ /* ** This program tests the ability of SQLite database to recover from a crash. ** This program runs under Unix only, but the results are applicable to all diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/store/INC/S32FILE.INL --- a/persistentstorage/store/INC/S32FILE.INL Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/store/INC/S32FILE.INL Fri Jun 11 15:29:22 2010 +0300 @@ -290,7 +290,11 @@ @param aFs Handle to a file server session. @param aName The full path name of the file containing the store. @param aFileMode The mode in which the file is to be accessed. The mode is -defined by the TFileMode type. +defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that When the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::OpenL(aFs,aName,aFileMode,KPermanentFileStoreFactoryFunction));} @@ -301,7 +305,11 @@ @param aFs Handle to a file server session. @param aName The full path name of the file containing the store. @param aFileMode The mode in which the file is to be accessed. The mode is -defined by the TFileMode type. +defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that When the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::OpenLC(aFs,aName,aFileMode,KPermanentFileStoreFactoryFunction));} @@ -313,7 +321,11 @@ @param aName The full path name of the new file. A file with this name must not already exist, otherwise the function leaves. @param aFileMode The mode in which the new file is to be accessed. This mode -is defined by the TFileMode type. +is defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that When the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::CreateL(aFs,aName,aFileMode,&DoNewL));} @@ -325,7 +337,11 @@ @param aName The full path name of the new file. A file with this name must not already exist, otherwise the function leaves. @param aFileMode The mode in which the new file is to be accessed. This mode -is defined by the TFileMode type. +is defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::CreateLC(aFs,aName,aFileMode,&DoNewL));} @@ -338,7 +354,11 @@ @param aFs Handle to a file server session. @param aName The full path name of the file to be replaced. @param aFileMode The mode in which the file is to be accessed. The mode is -defined by the TFileMode type. +defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::ReplaceL(aFs,aName,aFileMode,&DoNewL));} @@ -351,7 +371,11 @@ @param aFs Handle to a file server session. @param aName The full path name of the file to be replaced. @param aFileMode The mode in which the file is to be accessed. The mode is -defined by the TFileMode type. +defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::ReplaceLC(aFs,aName,aFileMode,&DoNewL));} @@ -387,18 +411,27 @@ @param aPath The path where the new file is to be created. @param aName On return, contains the full path name of the new file. @param aFileMode The mode in which the file is to be accessed. The mode is -defined by the TFileMode type. +defined by the TFileMode type. It is strongly recommended to set EFileWriteDirectIO +bit. It is because that When the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. @return A pointer to the new permanent file store object. @see TFileMode */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::TempLC(aFs,aPath,aName,aFileMode,&DoNewL));} inline CPermanentFileStore* CPermanentFileStore::FromL(RFile& aFile) -/** Constructs a permanent file store object from an already opened file. +/** Constructs a permanent file store object from an already opened file. It is strongly recommended to set EFileWriteDirectIO +bit when opening the file. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. The file must already be open before calling this function. Note that ownership of the file passes to the store. The referenced RFile is cleared and is no longer valid. + @param aFile A reference to the opened file. @return A pointer to the new permanent file store object. */ {return STATIC_CAST(CPermanentFileStore*,CFileStore::FromL(aFile,KPermanentFileStoreFactoryFunction));} @@ -406,7 +439,11 @@ /** Constructs a permanent file store object from an already opened file, and places the pointer onto the cleanup stack. -The file must already be open before calling this function. +The file must already be open before calling this function. It is strongly recommended to set EFileWriteDirectIO +bit when opening the file. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. Note that ownership of the file passes to the store. The referenced RFile is cleared and is no longer valid. @@ -418,7 +455,11 @@ /** Constructs a new permanent file store object in an already opened file. The file must already be open before calling this function. The existing content -of the file is discarded. +of the file is discarded. It is strongly recommended to set EFileWriteDirectIO +bit when opening the file. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. Note that ownership of the file passes to the store. The referenced RFile is cleared and is no longer valid. @@ -431,7 +472,11 @@ places the pointer onto the cleanup stack. The file must already be open before calling this function.The existing content -of the file is discarded. +of the file is discarded. It is strongly recommended to set EFileWriteDirectIO +bit when opening the file. It is because that when the file cache in file server is on, the +order of file writing is not guaranteed which could cause data inconsistency in some +circumstances, for example, when the power is lost in the middle of data transaction. +Therefore, the file write cache should be switched off to maintain the file integrity. Note that ownership of the file passes to the store. The referenced RFile is cleared and is no longer valid. diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/store/INC/S32FILEBUFSIZE.H --- a/persistentstorage/store/INC/S32FILEBUFSIZE.H Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/store/INC/S32FILEBUFSIZE.H Fri Jun 11 15:29:22 2010 +0300 @@ -17,7 +17,8 @@ #define S32FILEBUFSIZE_H #ifndef DEFAULT_FILE_BUF_SIZE - #define DEFAULT_FILE_BUF_SIZE 4096 + #define DEFAULT_FILE_BUF_SIZE 16384 + #else #if DEFAULT_FILE_BUF_SIZE < 1536 #error "DEFAULT_FILE_BUF_SIZE macro value can't be less than 1536" diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/store/ROM/StoreTests.IBY --- a/persistentstorage/store/ROM/StoreTests.IBY Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/store/ROM/StoreTests.IBY Fri Jun 11 15:29:22 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -23,7 +23,7 @@ #include "pbe.iby" // batch file that runs all automatic store tests -data=ZSYSTEM\test\StoreTests.bat Test\StoreTests.bat +data=DATAZ_\test\StoreTests.bat Test\StoreTests.bat file=ABI_DIR\BUILD_DIR\t_storset.exe Test\t_storset.exe file=ABI_DIR\BUILD_DIR\t_storcrypt.exe Test\t_storcrypt.exe diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/store/USTOR/UT_COLL.CPP --- a/persistentstorage/store/USTOR/UT_COLL.CPP Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/store/USTOR/UT_COLL.CPP Fri Jun 11 15:29:22 2010 +0300 @@ -905,15 +905,41 @@ } void CPermanentStoreCollector::RelocateStreamL(const CPermanentStoreCollector::TEntry& aReloc, TInt aExtent) -// -// relocate a stream into [iFree, aExtent) -// +/* relocate a stream into [iFree, aExtent) + +During compaction the sequence of operations is: + +1. Copy stream S1 content from position A1 to position B1 . The copy never overlaps so the old stream content is still good at this point. +2. Optionally rewrite the file header to state that stream S1 is being relocated to B1 (more about the ‘optional below’) +3. Overwrite the TOC entry for S1 to state that the content is now at B1 +4. Carry on with stream S2 +5. … etc + + +First consider the impact of a mid-write failure in any of these steps (when write caching is disabled): +1. If step #1 only partially completes the file is good as the original content is intact and the new content was being written to otherwise free space +2. If step #2 only partially completes the header CRC fails and only the TOC reference is considered valid (so the corrupt stream relocation record is ignored). The TOC will be good because it is being overwritten with the same content. +3. If step #3 only partially completes the entry for S1 in the TOC is corrupt, BUT the relocation record for S1 in the file header is good and will override the entry in the TOC. + +In all cases the file is never broken by a crash in mid-compaction. + +Step #2 is optional – there are many cases when step #3 cannot fail ‘halfway through’ because the underlying media makes atomic block/page based updates and the write does not cross any block boundaries. In STORE we assume that blocks cannot be smaller than 512 bytes and any flash based media provides the required behavior. Thus 99% of the step #2 writes are eliminated. + +Note that sequencing MATTERS even for just one stream. If the TOC update hits the disk before the content is moved, and then the device fails we will have a broken file: S1 points to B1 which contains garbage. Equally in the case where step #2 is required (i.e. when step #3 straddles a block boundary and could fail) step 2 has to go before the step 3. Otherwise write #3 could go to disk and fail part way through before write #2 and leave the TOC corrupt with no recovery in the file header. + +Consider the case that step 2 was omitted, so the Store relies on step 3 being completed in order to know that S1 is in location B1; and that no flush is done after step 3. In step 4 the stream S2 is moved – at this point the old space for stream S1 at A1 is considered empty – and suppose it gets moved from A2 to B2 where B2 overlaps/overwrites A1. If the writes in step 3 and step 4 are re-ordered and the step 3 write does not happen – then the TOC will claim that S1 is still at A1 but this location in the file has been overwritten with data from S2. A corrupted file. + +Based on the knowledge above, it is strongly recommended to set EFileWriteDirectIO bit when opening the file so that the order is maintained when writing to the file. + +*/ { if (Coord().Accessed()) // must have exclusive access to relocate the stream __LEAVE(KErrInUse); // TInt end=RelocateL(aReloc.entry.ref,aReloc.len,aReloc.entry.handle == KHandleTocBase ? EFrameDescriptive16 : EFrameData16, aExtent); + //Step 1, 4,.... Coord().RelocateL(aReloc.entry.handle, iFree); + // Step 2 & 3, 5 & 6,... iCoordGen=Coord().Generation(); // changed by relocation iFree = end; } diff -r a7ba600cb39d -r 63532cdadd44 persistentstorage/store/group/BLD.INF --- a/persistentstorage/store/group/BLD.INF Thu May 27 14:29:47 2010 +0300 +++ b/persistentstorage/store/group/BLD.INF Fri Jun 11 15:29:22 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -72,7 +72,7 @@ PRJ_TESTEXPORTS ../ROM/StoreTests.IBY /epoc32/rom/include/storetests.iby -../ROM/StoreTests.BAT /epoc32/data/z/system/test/storetests.bat +../ROM/StoreTests.BAT z:/test/storetests.bat PRJ_TESTMMPFILES diff -r a7ba600cb39d -r 63532cdadd44 traceservices/commsdebugutility/TE_commsdebugutility/group/designexample.mmp --- a/traceservices/commsdebugutility/TE_commsdebugutility/group/designexample.mmp Thu May 27 14:29:47 2010 +0300 +++ b/traceservices/commsdebugutility/TE_commsdebugutility/group/designexample.mmp Fri Jun 11 15:29:22 2010 +0300 @@ -25,7 +25,7 @@ USERINCLUDE ../inc OS_LAYER_SYSTEMINCLUDE_SYMBIAN -#include "comms-infras/commsdebugutility.mmh" +#include "../group/commsdebugutility.mmh" SOURCEPATH ../src SOURCE designexample.cpp diff -r a7ba600cb39d -r 63532cdadd44 traceservices/commsdebugutility/TE_commsdebugutility/group/tlog1.mmp --- a/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog1.mmp Thu May 27 14:29:47 2010 +0300 +++ b/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog1.mmp Fri Jun 11 15:29:22 2010 +0300 @@ -22,7 +22,7 @@ CAPABILITY ALL -Tcb SMPSAFE -#include "comms-infras/commsdebugutility.mmh" +#include "../group/commsdebugutility.mmh" USERINCLUDE ../inc OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r a7ba600cb39d -r 63532cdadd44 traceservices/commsdebugutility/TE_commsdebugutility/group/tlog3.mmp --- a/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog3.mmp Thu May 27 14:29:47 2010 +0300 +++ b/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog3.mmp Fri Jun 11 15:29:22 2010 +0300 @@ -21,7 +21,7 @@ CAPABILITY ALL -Tcb SMPSAFE -#include "comms-infras/commsdebugutility.mmh" +#include "../group/commsdebugutility.mmh" USERINCLUDE ../inc OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r a7ba600cb39d -r 63532cdadd44 traceservices/commsdebugutility/TE_commsdebugutility/group/tlog4.mmp --- a/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog4.mmp Thu May 27 14:29:47 2010 +0300 +++ b/traceservices/commsdebugutility/TE_commsdebugutility/group/tlog4.mmp Fri Jun 11 15:29:22 2010 +0300 @@ -23,7 +23,7 @@ #define __FLOGGER_UREL MACRO __FLOG_SUPPRESS_REL_WARNING -#include "comms-infras/commsdebugutility.mmh" +#include "../group/commsdebugutility.mmh" USERINCLUDE ../inc OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r a7ba600cb39d -r 63532cdadd44 traceservices/tracefw/integ_test/ost/TEF/traces/OstTraceDefinitions.h --- a/traceservices/tracefw/integ_test/ost/TEF/traces/OstTraceDefinitions.h Thu May 27 14:29:47 2010 +0300 +++ b/traceservices/tracefw/integ_test/ost/TEF/traces/OstTraceDefinitions.h Fri Jun 11 15:29:22 2010 +0300 @@ -1,19 +1,3 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ #ifndef __OSTTRACEDEFINITIONS_H__ #define __OSTTRACEDEFINITIONS_H__ // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler