persistentstorage/sql/TEST/testexecute/SQLite/scripts/Robustness.script
changeset 0 08ec8eefde2f
child 23 26645d81f48d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/persistentstorage/sql/TEST/testexecute/SQLite/scripts/Robustness.script	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,163 @@
+// Copyright (c) 2006-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:
+// @file
+// 
+//
+
+PRINT Run SQL Tests
+
+LOAD_SUITE te_SQL_Suite
+
+RUN_UTILS DeleteFile E:\Robustness*.db
+RUN_UTILS DeleteFile T:\Robustness*.db
+RUN_UTILS DeleteFile C:\Robustness*.db
+RUN_UTILS DeleteFile E:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\Robustness*.db-journal
+RUN_UTILS DeleteFile C:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\fillfile.txt
+RUN_UTILS DeleteFile T:\fillfile2.txt
+RUN_UTILS DeleteFile T:\fillfile4M.txt
+RUN_UTILS DeleteFile E:\fillfile.txt
+RUN_UTILS DeleteFile E:\fillfile2.txt
+RUN_UTILS DeleteFile E:\fillfile4M.txt
+
+
+START_TESTCASE SYSLIB-SQL-CIT-3348
+//! @SYMTestCaseID    SYSLIB-SQL-CIT-3348
+//! @SYMTestCaseDesc  Not strictly an SQL test. This step fills the disk to
+//!                  within 4M of full an leaves that file lying around. This
+//!                  improves the performance of the subsequent OOD tests
+//!                  and is required for reliable behaviour within the DABS
+//!                  framework (due to possible timeout issues). The large
+//!                  file is removed by the script at the end.
+//!                  This MUST be the first test to execute in the script.
+//!                  Note that this step does nothing at all on emulator -
+//!                  that uses the T: drive which is already < 4M.
+//! @SYMTestPriority  High
+//! @SYMTestActions   See description and the config file, also the code.
+//! @SYMTestExpectedResults
+//!                  A PASS should be generated.
+//! @SYMDEF           DEF095562
+
+  RUN_TEST_STEP 900 te_SQL_Suite CSQLCDT z:\TEF_SQL\Robustness.ini FillDisk4M
+END_TESTCASE SYSLIB-SQL-CIT-3348
+
+START_TESTCASE SYSLIB-SQL-CIT-1705
+//! @SYMTestCaseID    SYSLIB-SQL-CIT-1705
+//! @SYMTestCaseDesc  Adds a few records to a table in a new database. Begins
+//!                  a transaction and then fills the disk. When this fails
+//!                  with KErrDiskFull, database is closed and re-opened. This
+//!                  is all that can be done with disk full unless space has
+//!                  been reserved. Free up a bit of disk and then check
+//!                  the initial records to validate the db is still usable.
+//!                  Further records are then added and checked.
+//! @SYMTestPriority  High
+//! @SYMTestActions   See description and the config file, also the code.
+//! @SYMTestExpectedResults
+//!                  A PASS should be generated.
+//! @SYMREQ           REQ5792
+
+  PRINT <font size=5 color=AF0000>MMC card on E:\ required on hardware!! </font>
+  RUN_TEST_STEP 900 te_SQL_Suite CSQLCDT z:\TEF_SQL\Robustness.ini Top
+END_TESTCASE SYSLIB-SQL-CIT-1705
+
+RUN_UTILS DeleteFile E:\Robustness*.db
+RUN_UTILS DeleteFile T:\Robustness*.db
+RUN_UTILS DeleteFile C:\Robustness*.db
+RUN_UTILS DeleteFile E:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\Robustness*.db-journal
+RUN_UTILS DeleteFile C:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\fillfile.txt
+RUN_UTILS DeleteFile E:\fillfile.txt
+RUN_UTILS DeleteFile T:\fillfile2.txt
+RUN_UTILS DeleteFile E:\fillfile2.txt
+
+START_TESTCASE SYSLIB-SQL-CIT-1704
+//! @SYMTestCaseID    SYSLIB-SQL-CIT-1704
+//! @SYMTestCaseDesc  Does an attach of a db on another drive and then fills
+//!                  the disk that resides on. Verifies that appropriate
+//!                  errors are returned on writing to it. Also check for
+//!                  'expired' RSqlStatement after DETACH and verifies that
+//!                  the previously attached database can be deleted despite
+//!                  having no space.
+//! @SYMTestPriority  High
+//! @SYMTestActions   See description and the config file, also the code.
+//! @SYMTestExpectedResults
+//!                  A PASS should be generated.
+//! @SYMREQ           REQ5792
+
+    PRINT <font size=5 color=0000AF>INFO: MMC card on E:\ required on hardware!! </font>
+    RUN_TEST_STEP 900 te_SQL_Suite CSQLCDT z:\TEF_SQL\Robustness.ini Attach
+END_TESTCASE SYSLIB-SQL-CIT-1704
+
+RUN_UTILS DeleteFile E:\Robustness*.db
+RUN_UTILS DeleteFile T:\Robustness*.db
+RUN_UTILS DeleteFile C:\Robustness*.db
+RUN_UTILS DeleteFile E:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\Robustness*.db-journal
+RUN_UTILS DeleteFile C:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\fillfile.txt
+RUN_UTILS DeleteFile E:\fillfile.txt
+RUN_UTILS DeleteFile T:\fillfile2.txt
+RUN_UTILS DeleteFile E:\fillfile2.txt
+
+START_TESTCASE SYSLIB-SQL-CIT-1741
+//! @SYMTestCaseID    SYSLIB-SQL-CIT-1741
+//! @SYMTestCaseDesc  'FillTest' adds some data into its database and checks
+//!                  it. It then triggers 'DeleteTest' and waits.
+//!                  DeleteTest creates its own, separate database.
+//!                  It then reserves space, and then fills the disk
+//!                  with writes to a database table. Once it receives
+//!                  KErrDiskFull it enables the reserved disk space and
+//!                  attempts to add two more records - this should be
+//!                  successful. It then signals 'FillTest' back, and waits.
+//!                  'FillTest' attempts to add records to its own db. These
+//!                  are small, so a number work. It then receives KErrDiskFull.
+//!                  DeleteTest is signalled and FillTest waits.
+//!                  'DeleteTest' attempts to delete a few records. This should
+//!                  be successful - we have reserved space. Reserved space is
+//!                  then released by 'DeleteTest', 'FillTest' is signalled
+//!                  and 'DeleteTest' waits.
+//!                  'FillTest' had no reserved space so just closes it's db,
+//!                  deletes it, signals 'DeleteTest' back and dies.
+//!                  'DeleteTest' releases reserved space a second time
+//!                  (which gives no error) and cleans up.
+//!
+//! @SYMTestPriority  High
+//! @SYMTestActions   See description and the config file, also the code.
+//! @SYMTestExpectedResults
+//!                  A PASS should be generated.
+//! @SYMREQ           REQ5792
+//
+
+    PRINT <font size=5 color=AF0000>MMC card on E:\ required on hardware!! </font>
+CONCURRENT
+// DeleteTest's first action is to wait for a signal from FillTest. It *must*
+// be running when FillTest sends it signal, so lets have it first..
+    RUN_TEST_STEP 1800 te_SQL_Suite CSQLCDT z:\TEF_SQL\Robustness.ini DeleteTest
+    RUN_TEST_STEP 1800 te_SQL_Suite CSQLCDT z:\TEF_SQL\Robustness.ini FillTest
+END_TESTCASE SYSLIB-SQL-CIT-1741
+
+RUN_UTILS DeleteFile E:\Robustness*.db
+RUN_UTILS DeleteFile T:\Robustness*.db
+RUN_UTILS DeleteFile C:\Robustness*.db
+RUN_UTILS DeleteFile E:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\Robustness*.db-journal
+RUN_UTILS DeleteFile C:\Robustness*.db-journal
+RUN_UTILS DeleteFile T:\fillfile.txt
+RUN_UTILS DeleteFile E:\fillfile.txt
+RUN_UTILS DeleteFile T:\fillfile2.txt
+RUN_UTILS DeleteFile E:\fillfile2.txt
+RUN_UTILS DeleteFile T:\fillfile4M.txt
+RUN_UTILS DeleteFile E:\fillfile4M.txt