persistentstorage/sql/TEST/t_sqlfilebuf64.cpp
author hgs
Tue, 19 Oct 2010 16:26:13 +0100
changeset 55 44f437012c90
parent 51 7d4490026038
permissions -rw-r--r--
201041_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
     1
// Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
// All rights reserved.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
// Initial Contributors:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
// Contributors:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
// Description:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
#include <e32test.h>
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#ifdef _SQLPROFILER
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <bautils.h>
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include "FileBuf64.h"
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
TBool TheOsCallTimeDetailedProfileEnabled = ETrue;//Needed because the RFileBuf64 source is included directly into this test
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
												  //nd the sql profiler is enabled (_SQLPROFILER is defined in the MMP file)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
static RTest TheTest(_L("t_sqlfilebuf64 test"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
static RFs   TheFs;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
_LIT(KTestDir, "c:\\test\\");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
_LIT(KTestFile, "c:\\test\\t_sqlfilebuf64.bin");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
_LIT(KTestFile2, "\\test\\t_sqlfilebuf64_2.bin");
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    33
_LIT(KTestFile3, "c:\\test\\t_sqlfilebuf64_3.bin");
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
static TBuf8<1024> TheBuf;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
static TFileName TheDbName;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
static TInt TheProcessHandleCount = 0;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
static TInt TheThreadHandleCount = 0;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
static TInt TheAllocatedCellsCount = 0;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#ifdef _DEBUG
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
static const TInt KBurstRate = 100;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#endif
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
enum TOomTestType
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
	EOomCreateTest,	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
	EOomOpenTest,	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
	EOomTempTest
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
	};
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    53
//Used in read/write OOM tests
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    54
const TUint8 KChar = 'A';
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    55
const TInt KPageSize = 32768;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    56
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
void DeleteTestFiles()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
	if(TheDbName.Length() > 0)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
		(void)TheFs.Delete(TheDbName);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
		}
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
    65
	(void)TheFs.Delete(KTestFile3);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
void TestEnvDestroy()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
	DeleteTestFiles();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
	TheFs.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
//Test macros and functions
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
void Check1(TInt aValue, TInt aLine)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
	if(!aValue)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
		TestEnvDestroy();
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    83
		TheTest.Printf(_L("*** Line %d. Expression evaluated to false\r\n"), aLine);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
		TheTest(EFalse, aLine);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
void Check2(TInt aValue, TInt aExpected, TInt aLine)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
	if(aValue != aExpected)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
		TestEnvDestroy();
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    92
		TheTest.Printf(_L("*** Line %d, Expected result: %d, got: %d\r\n"), aLine, aExpected, aValue);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
		TheTest(EFalse, aLine);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
#define TEST(arg) ::Check1((arg), __LINE__)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
#define TEST2(aValue, aExpected) ::Check2(aValue, aExpected, __LINE__)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
void TestEnvInit()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    {
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
	TInt err = TheFs.Connect();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	err = TheFs.MkDir(KTestDir);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
	TEST(err == KErrNone || err == KErrAlreadyExists);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
///////////////////////////////////////////////////////////////////////////////////////
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
static void MarkHandles()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
	RThread().HandleCount(TheProcessHandleCount, TheThreadHandleCount);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
static void MarkAllocatedCells()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
	TheAllocatedCellsCount = User::CountAllocCells();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
static void CheckAllocatedCells()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
	TInt allocatedCellsCount = User::CountAllocCells();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
	TEST2(allocatedCellsCount, TheAllocatedCellsCount);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
static void CheckHandles()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
	TInt endProcessHandleCount;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
	TInt endThreadHandleCount;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
	RThread().HandleCount(endProcessHandleCount, endThreadHandleCount);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
	TEST2(TheProcessHandleCount, endProcessHandleCount);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
	TEST2(TheThreadHandleCount, endThreadHandleCount);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
static void VerifyFileContent(const TDesC8& aPattern)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
	TheBuf.Zero();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
	RFile64 file;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
	TInt err = file.Open(TheFs, KTestFile, EFileShareReadersOrWriters);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
	TInt64 fsize;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
	err = file.Size(fsize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
	TEST2((TInt)fsize, aPattern.Length());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
	err = file.Read(TheBuf, aPattern.Length());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
	file.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
	err = TheBuf.Compare(aPattern);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
	TEST2(err, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
static void VerifyFileContent(const TDesC8& aPattern, TInt64 aFilePos)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
	__ASSERT_DEBUG(aFilePos >= 0, User::Invariant());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
	TheBuf.Zero();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
	RFile64 file;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
	TInt err = file.Open(TheFs, KTestFile, EFileShareReadersOrWriters);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
	err = file.Read(aFilePos, TheBuf, aPattern.Length());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
	file.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
	err = TheBuf.Compare(aPattern);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
	TEST2(err, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
@SYMTestCaseID			PDS-SQL-UT-4132
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
@SYMTestCaseDesc		RFileBuf64 write test 1.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
						The test performs file write operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
						The write positions are inside the buffer or right at the end of the buffer.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
@SYMTestActions			RFileBuf64 write test 1.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
void WriteTest1()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
	TInt err = fbuf.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    //Zero write request
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
	err = fbuf.Write(0, _L8(""));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
	//First write operation. After the operation the file buffer must countain 10 bytes.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
	err = fbuf.Write(0, _L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
	//Second write operation. The offset is at the middle of the buffer.  Data length: 10;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
	err = fbuf.Write(5, _L8("ZZZZZEEEEE"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
	//Third write operation. The offset is at the end of the buffer.  Data length: 5;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
	err = fbuf.Write(15, _L8("CCCCC"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
	err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
	TEST2(fbuf.iFileFlushCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
	TEST2(fbuf.iFileWriteAmount, 20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
	VerifyFileContent(_L8("A1234ZZZZZEEEEECCCCC"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
@SYMTestCaseID			PDS-SQL-UT-4133
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
@SYMTestCaseDesc		RFileBuf64 write test 2.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
						The test performs file write operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
						The write positions are beyound the end of the file but within the buffer capacity.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
@SYMTestActions			RFileBuf64 write test 2.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
void WriteTest2()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
	TInt err = fbuf.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
	//First write operation. After the operation the file buffer must countain 10 bytes.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
	err = fbuf.Write(0, _L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
	//Second write operation. After the operation the file buffer must countain 10 + 10 zeros + 10 bytes.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
	err = fbuf.Write(20, _L8("FFGGHHJJKK"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
	err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
	TEST2(fbuf.iFileFlushCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
	TEST2(fbuf.iFileWriteAmount, 30);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
	TBuf8<30> pattern;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
	pattern.Append(_L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
	pattern.AppendFill(TChar(0), 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
	pattern.Append(_L8("FFGGHHJJKK"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
	VerifyFileContent(pattern);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
@SYMTestCaseID			PDS-SQL-UT-4134
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
@SYMTestCaseDesc		RFileBuf64 write test 3.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
						The test performs file write operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
						The write position is before the start of the buffer but there is room for move.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
@SYMTestActions			RFileBuf64 write test 3.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
void WriteTest3()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
	//Iteration 1: The file length is 0, the first operation is "write beyond the end"
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
	//Iteration 2: The file length is 30, the first write operation is within the file.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
	for(TInt i=0;i<2;++i)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
		RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
		TInt err = i == 0 ? fbuf.Create(TheFs, KTestFile, EFileWrite) : fbuf.Open(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
		TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
	    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
		//First write operation. The offset is not 0.  Data length: 10;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
		err = fbuf.Write(20, _L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
		TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
		TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
		TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
		TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
		//Second write operation. The offset is 0.  Data length: 20;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
		err = fbuf.Write(0, _L8("AASSDDFFRR**********"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
		TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
		TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
		TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
		TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
		err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
		TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
		TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
		TEST2(fbuf.iFileFlushCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
		TEST2(fbuf.iFileWriteAmount, 30);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
		TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
		fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
		VerifyFileContent(_L8("AASSDDFFRR**********A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
	}	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
@SYMTestCaseID			PDS-SQL-UT-4135
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
@SYMTestCaseDesc		RFileBuf64 write test 4.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
						The test performs file write operations using RFileBuf64 class and verifies that
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
						that the pending write data will be stored in the file when the buffer is closed.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
@SYMTestActions			RFileBuf64 write test 4.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
void WriteTest4()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
	TInt err = fbuf.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
	// Data length: 10;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
	err = fbuf.Write(0, _L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
	// Data length: 0;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
	err = fbuf.Write(10, _L8(""));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
	VerifyFileContent(_L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
@SYMTestCaseID			PDS-SQL-UT-4136
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
@SYMTestCaseDesc		RFileBuf64 write test 5.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
						The test performs file write operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
						The data is written before the start of the file buffer and is too big to fit in the buffer.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
@SYMTestActions			RFileBuf64 write test 5.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
void WriteTest5()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
	RFileBuf64 fbuf(20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
	TInt err = fbuf.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
	//First write operation. The offset is not 0.  Data length: 10;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
	err = fbuf.Write(10, _L8("A123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   407
	//Second write operation. The offset is 0.  Data length: 12, i.e. within the buffer - should have no write to the disk.
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
	err = fbuf.Write(0, _L8("ZZXXCCVVBBNN"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
	TEST2(err, KErrNone); 
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   410
	TEST2(fbuf.iFileWriteCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   411
	TEST2(fbuf.iFileWriteAmount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   412
	TEST2(fbuf.iFileSizeCount, 1);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   413
	
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   414
	//Third write operation. The offet is 18. Data length: 5. The buffer should be written out to the file
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   415
	// after "ab" is appended to the buffer. The new buffe after being emptied should have data "cde".
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   416
	err = fbuf.Write(18, _L8("abcde"));
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   417
	TEST2(err, KErrNone); 
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
	TEST2(fbuf.iFileWriteAmount, 20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
	err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
	TEST2(fbuf.iFileWriteCount, 2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
	TEST2(fbuf.iFileFlushCount, 1);
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   426
	TEST2(fbuf.iFileWriteAmount, 23);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
   431
	VerifyFileContent(_L8("ZZXXCCVVBBNN234567abcde"));
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
@SYMTestCaseID			PDS-SQL-UT-4137
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
@SYMTestCaseDesc		RFileBuf64 write test 6.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
						The test performs file write operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
						The data is written before the start of the file buffer and is too big to fit in the buffer.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
						The purpose of the test: to verify the logic of RFileBuf64::Write().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
@SYMTestActions			RFileBuf64 write test 6.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
void WriteTest6()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
	RFileBuf64 fbuf(20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
	TInt err = fbuf.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
	err = fbuf.Write(0, _L8("A123456789B123456789C123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
	err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
	VerifyFileContent(_L8("A123456789B123456789C123456789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
	err = fbuf.Open(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
	//First write operation. The offset is not 0. Data length: 10;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
	err = fbuf.Write(15, _L8("OOOOOOOOOO"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
	//Second write operation. The offset is 0. Data length: 15;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
	err = fbuf.Write(0, _L8("TTTTTTTTTTTTTTT"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
	TEST2(fbuf.iFileWriteAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
	err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
	TEST2(fbuf.iFileWriteCount, 2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
	TEST2(fbuf.iFileFlushCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
	TEST2(fbuf.iFileWriteAmount, 15 + 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
	VerifyFileContent(_L8("TTTTTTTTTTTTTTTOOOOOOOOOO56789"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
void PrepareReadTest()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
	RFile64 file;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
	TInt err = file.Create(TheFs, KTestFile, EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
	err = file.Write(_L8("A123456789ZZZZZZZZZZB-B-B-B-B-Y*Y*Y*Y*Y*"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
	err = file.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
	file.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
@SYMTestCaseID			PDS-SQL-UT-4138
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
@SYMTestCaseDesc		RFileBuf64 read test 1.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
						The test performs file read operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
						Tested "read" operations:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
							- Zero max length request;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
							- Too big read request;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
							- Read beyond the end of the file;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
						The purpose of the test: to verify the logic of RFileBuf64::Read().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
@SYMTestActions			RFileBuf64 read test 1.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
void ReadTest1()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
	const TInt KBufMaxSize = 20;// This is half the file size
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
	RFileBuf64 fbuf(KBufMaxSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
	TInt err = fbuf.Open(TheFs, KTestFile, EFileWrite | EFileRead | EFileShareReadersOrWriters);
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   525
	TEST2(err, KErrNone);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
	//Zero max length request
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   529
    TUint8 buf1[1];
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   530
	TPtr8 ptr1(buf1, 0);
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
	err = fbuf.Read(0, ptr1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
	TEST2(fbuf.iFileSizeCount, 0);
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   536
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
	//Too big request
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
	TBuf8<KBufMaxSize * 2> buf2;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
	err = fbuf.Read(0, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
	TEST2(fbuf.iFileReadAmount, (KBufMaxSize * 2));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
	VerifyFileContent(buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
	//Read beyond the end of the file
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
	err = fbuf.Read(2000, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
	TEST2(buf2.Length(), 0); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   551
	//Write "5678" in the buffer, pos [4..8)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   552
	err = fbuf.Write(4, _L8("5678"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   553
	TEST2(err, KErrNone); 
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   554
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   555
	//Too big request. There are pending data in the buffer.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   556
	TBuf8<KBufMaxSize + 2> buf3;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   557
	err = fbuf.Read(1, buf3);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   558
	TEST2(err, KErrNone); 
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   559
	VerifyFileContent(buf3, 1);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   560
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   561
	//Read from a non-zero file position to move the buffer start pos. The cached file pos will be 35 at the end.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   562
	TBuf8<5> buf4;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   563
	err = fbuf.Read(30, buf4);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   564
	TEST2(err, KErrNone); 
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   565
	VerifyFileContent(buf4, 30);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   566
	err = fbuf.Read(35, buf4);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   567
	TEST2(err, KErrNone); 
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   568
	VerifyFileContent(buf4, 35);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   569
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   570
	//Too big request. No pending data in the buffer. The file read pos is before the position of the cached data in the buffer.  
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   571
	err = fbuf.Read(10, buf3);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   572
	TEST2(err, KErrNone); 
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   573
	VerifyFileContent(buf3, 10);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   574
	
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   579
@SYMTestCaseID			PDS-SQL-UT-4139
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   580
@SYMTestCaseDesc		RFileBuf64 read test 2.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   581
						The test performs file read operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   582
						Tested operations:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   583
							- Non-buffered reads;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
							- Buffered reads;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
						The purpose of the test: to verify the logic of RFileBuf64::Read().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
@SYMTestActions			RFileBuf64 read test 2.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   592
void ReadTest2()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
	TInt err = fbuf.Open(TheFs, KTestFile, EFileWrite | EFileRead | EFileShareReadersOrWriters);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
    //1. Read bytes [0..20]
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
    TBuf8<20> buf1;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   601
	err = fbuf.Read(0, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   602
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
	TEST2(fbuf.iFileReadAmount, 20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   606
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
	VerifyFileContent(buf1, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
    //2. Read again, bytes [10..20]. They are not buffered.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
    TBuf8<10> buf2;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
	err = fbuf.Read(10, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
	TEST2(fbuf.iFileReadAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
	VerifyFileContent(buf2, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
    //3. Read again, bytes [20..30]. They are not buffered. But the file buffer will be populated, 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
    //   because the file read position matches the guessed file read position from step 2.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
	err = fbuf.Read(20, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
	TEST2(fbuf.iFileReadAmount, (10 * 2));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
	VerifyFileContent(buf2, 20);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
	//4. Read again, bytes [25..35]. This is a buffered read operation.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
	err = fbuf.Read(25, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
	VerifyFileContent(buf2, 25);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
	//5. Read again, bytes [15..25]. This is a non buffered read operation.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
	err = fbuf.Read(15, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
	TEST2(fbuf.iFileReadAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
	VerifyFileContent(buf2, 15);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
    //6. Read again, bytes [25..35]. This is a buffered read operation. The buffer from step 3 is still there.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
	err = fbuf.Read(25, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
	VerifyFileContent(buf2, 25);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
    //7. Read again, bytes [35..45] - beyond the end of the file. 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
    //   This is a buffered read operation. The buffer from step 3 is still there.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
	err = fbuf.Read(35, buf2);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
	TEST2(buf2.Size(), 5);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
	VerifyFileContent(buf2, 35);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
@SYMTestCaseID			PDS-SQL-UT-4140
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
@SYMTestCaseDesc		RFileBuf64 read test 3.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
						The test performs file read operations using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
						Tested operations:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
							- Non-buffered reads;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
							- Buffered reads;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
							- Part- buffered reads;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
						The purpose of the test: to verify the logic of RFileBuf64::Read().
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
@SYMTestActions			RFileBuf64 read test 3.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
void ReadTest3()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
	TInt err = fbuf.Open(TheFs, KTestFile, EFileWrite | EFileRead | EFileShareReadersOrWriters);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
    //1. Read bytes [0..10]. Non buffered.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
    TBuf8<10> buf1;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
	err = fbuf.Read(0, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
	TEST2(fbuf.iFileReadAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
	TEST2(fbuf.iFileSizeCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
	VerifyFileContent(buf1, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
    //2. Read bytes [10..20]. Non buffered. But the file buffer is populated, bytes [10..40].
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
	err = fbuf.Read(10, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
	TEST2(fbuf.iFileReadAmount, 30);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
	VerifyFileContent(buf1, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
    //3. Read bytes [25..35]. Buffered. Because the previous operation [2] performed a read-ahead operation.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
	err = fbuf.Read(25, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   713
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   715
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   716
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   717
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
	VerifyFileContent(buf1, 25);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   719
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
    //4. Write bytes [20..30]. Buffered. Read buffer is gone, the file buffer contains the [20..30] file area.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
	err = fbuf.Write(20, _L8("IIIIIQQQQQ"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
    //5. Read bytes [25..35]. Part-buffered. Part of pending writes picked up. Then the buffer is flushed.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
	err = fbuf.Read(25, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
	TEST2(fbuf.iFileReadAmount, 5);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
	TEST2(fbuf.iFileWriteAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
    err = fbuf.Flush();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
    TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
    //All cached data should have been written to the file before the Flush() call.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   746
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   747
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   748
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   749
	TEST2(fbuf.iFileFlushCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   750
    
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   751
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   752
	VerifyFileContent(buf1, 25);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
    //6. The buffer is empty after the last flush. Write bytes [0..10]. The file buffer contains the [0..10] file area.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
	err = fbuf.Write(0, _L8("PPOOIIUUYY"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   756
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   757
	TEST2(fbuf.iFileReadCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   758
	TEST2(fbuf.iFileReadAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   759
	TEST2(fbuf.iFileWriteCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   760
	TEST2(fbuf.iFileWriteAmount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   763
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   764
    //7. Read bytes [5..15]. Part buffered. Pending writes picked up. The content is written to the file.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
	err = fbuf.Read(5, buf1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   766
	TEST2(err, KErrNone); 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   767
	TEST2(fbuf.iFileReadCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   768
	TEST2(fbuf.iFileReadAmount, 5);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
	TEST2(fbuf.iFileWriteCount, 1);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   770
	TEST2(fbuf.iFileWriteAmount, 10);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
	TEST2(fbuf.iFileSizeCount, 0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
    fbuf.ProfilerReset();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   773
	VerifyFileContent(buf1, 5);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   774
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
	fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   776
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
@SYMTestCaseID			PDS-SQL-UT-4141
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
@SYMTestCaseDesc		RFileBuf64::SetReadAheadSize() test.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
						The test iterates over all existing drives.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
						For each R/W drive a test file is created using RFileBuf64 class.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
						Then the test collects information regarding the block size, cluster size and 
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
						read buffer size and calls RFileBuf64::SetReadAheadSize() with these parameters
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
						to check how the read-ahead buffer size will be recalculated.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   786
@SYMTestActions			RFileBuf64::SetReadAheadSize() test.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   792
void SetReadAheadSizeTest()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
	TheTest.Printf(_L("==================\r\n"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
	_LIT(KType1, "Not present");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   796
	_LIT(KType2, "Unknown");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   797
	_LIT(KType3, "Floppy");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   798
	_LIT(KType4, "Hard disk");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   799
	_LIT(KType5, "CD ROM");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   800
	_LIT(KType6, "RAM disk");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   801
	_LIT(KType7, "Flash");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   802
	_LIT(KType8, "ROM drive");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   803
	_LIT(KType9, "Remote drive");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   804
	_LIT(KType10,"NAND flash");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
	_LIT(KType11,"Rotating media");
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   807
	for(TInt drive=EDriveA;drive<=EDriveZ;++drive)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   808
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   809
		TDriveInfo driveInfo;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   810
		TInt err = TheFs.Drive(driveInfo, drive);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   811
		if(err == KErrNone)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   812
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   813
			TVolumeInfo vinfo;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   814
			err = TheFs.Volume(vinfo, drive);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   815
			if(err == KErrNone)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   816
				{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   817
				TVolumeIOParamInfo vparam;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   818
				err = TheFs.VolumeIOParam(drive, vparam);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   819
				TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   820
				TBuf8<128> vinfoex8;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   821
				err = TheFs.QueryVolumeInfoExt(drive, EFileSystemSubType, vinfoex8);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   822
				TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   823
				TPtrC vinfoex((const TUint16*)(vinfoex8.Ptr() + 8), vinfoex8[0]);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   824
				TPtrC KMediaTypeNames[] = {KType1(), KType2(), KType3(), KType4(), KType5(), KType6(), KType7(), KType8(), KType9(), KType10(), KType11()};
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   825
				TheTest.Printf(_L("Drive: %C:, Type: %16.16S, File System: %8.8S, Size: %d Mb.\r\n"), 'A' + drive, &KMediaTypeNames[driveInfo.iType], &vinfoex, (TInt)(vinfo.iSize / (1024 * 1024)));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   826
				TheTest.Printf(_L("            Size: %ld bytes.\r\n"), vinfo.iSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   827
				TheTest.Printf(_L("       Block size=%d, Cluster size=%d, Read buffer size=%d.\r\n"), vparam.iBlockSize, vparam.iClusterSize, vparam.iRecReadBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   828
				if(driveInfo.iType == EMediaRam || driveInfo.iType == EMediaHardDisk || driveInfo.iType == EMediaFlash || driveInfo.iType == EMediaNANDFlash)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   829
				  	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   830
					TDriveUnit drvUnit(drive);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   831
					TDriveName drvName = drvUnit.Name();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   832
					TParse parse;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   833
					parse.Set(KTestFile2, &drvName, NULL);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   834
					TheDbName.Copy(parse.FullName());
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   835
					TRAP(err, BaflUtils::EnsurePathExistsL(TheFs, TheDbName));
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   836
					if(err == KErrNone || err == KErrAlreadyExists)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   837
						{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   838
						(void)TheFs.Delete(TheDbName);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   839
						RFileBuf64 fbuf64(8 * 1024);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   840
						err = fbuf64.Create(TheFs, TheDbName, EFileRead | EFileWrite);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   841
						TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   842
						TInt readAhead = fbuf64.SetReadAheadSize(vparam.iBlockSize, vparam.iRecReadBufSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   843
						TheTest.Printf(_L("       Read-ahead size=%d.\r\n"), readAhead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   844
						fbuf64.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   845
						(void)TheFs.Delete(TheDbName);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   846
						}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   847
					else
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   848
						{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   849
						TheTest.Printf(_L("Drive %C. BaflUtils::EnsurePathExistsL() has failed with err=%d.\r\n"), 'A' + drive, err);	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
   850
						}
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   851
					}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   852
				}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   853
			else
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   854
				{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   855
				TheTest.Printf(_L("Drive %C. RFs::Volume() has failed with err=%d.\r\n"), 'A' + drive, err);	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   856
				}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   857
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   858
		else
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   859
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   860
			TheTest.Printf(_L("Drive %C. RFs::Drive() has failed with err=%d.\r\n"), 'A' + drive, err);	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   861
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   862
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   863
	TheTest.Printf(_L("==================\r\n"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   864
	//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   865
	RFileBuf64 fbuf64(8 * 1024);//buffer capacity = 8Kb
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   866
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   867
	//"ReadRecBufSize" defined and is power of two, the "BlockSize" is also defined and is power of two
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   868
	TInt err2 = fbuf64.Create(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   869
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   870
	TInt blockSize = 4096; TInt readRecBufSize = 2048;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   871
	TInt readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   872
	TEST2(readAhead2, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   873
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   874
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   875
	//"ReadRecBufSize" defined and is power of two but is less than the default read-ahead value
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   876
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   877
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   878
	blockSize = 0; readRecBufSize = 128;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   879
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   880
	TEST2(readAhead2, RFileBuf64::KDefaultReadAheadSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   881
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   882
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   883
	//"ReadRecBufSize" defined and is power of two but is bigger than the buffer capacity
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   884
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   885
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   886
	blockSize = -10; readRecBufSize = fbuf64.iCapacity * 2;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   887
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   888
	TEST2(readAhead2, fbuf64.iCapacity);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   889
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   890
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   891
	//"ReadRecBufSize" defined but is not power of two, "BlockSize" defined but is less than the default read-ahead value
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   892
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   893
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   894
	blockSize = 512; readRecBufSize = 4000;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   895
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   896
	TEST2(readAhead2, RFileBuf64::KDefaultReadAheadSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   897
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   898
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   899
	//"ReadRecBufSize" defined but is not power of two, "BlockSize" defined and is bigger than the default read-ahead value
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   900
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   901
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   902
	blockSize = 4096; readRecBufSize = 4000;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   903
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   904
	TEST2(readAhead2, blockSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   905
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   906
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   907
	//"ReadRecBufSize" defined but is not power of two, "BlockSize" defined and is bigger than the buffer capacity
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   908
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   909
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   910
	blockSize = fbuf64.iCapacity * 2; readRecBufSize = 1;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   911
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   912
	TEST2(readAhead2, fbuf64.iCapacity);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   913
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   914
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   915
	//"ReadRecBufSize" negative, "BlockSize" defined but is not power of two
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   916
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   917
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   918
	blockSize = 1000; readRecBufSize = -2;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   919
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   920
	TEST2(readAhead2, RFileBuf64::KDefaultReadAheadSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   921
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   922
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   923
	//"ReadRecBufSize" negative, "BlockSize" negative
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   924
	err2 = fbuf64.Open(TheFs, TheDbName, EFileRead | EFileWrite);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   925
	TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   926
	blockSize = -1; readRecBufSize = -2;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   927
	readAhead2 = fbuf64.SetReadAheadSize(blockSize, readRecBufSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   928
	TEST2(readAhead2, RFileBuf64::KDefaultReadAheadSize);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   929
	fbuf64.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   930
	//
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   931
	(void)TheFs.Delete(TheDbName);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   932
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   933
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   934
/**
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   935
@SYMTestCaseID			PDS-SQL-UT-4142
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   936
@SYMTestCaseDesc		RFileBuf64 OOM test.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   937
						The test calls RFileBuf64:Create(), RFileBuf64:Open() and RFileBuf64:Temp() in an OOM
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   938
						simulation loop and verifies that no memory is leaked.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   939
@SYMTestActions			RFileBuf64 OOM test.
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   940
@SYMTestExpectedResults Test must not fail
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   941
@SYMTestPriority		High
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   942
@SYMREQ					REQ12106
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   943
                        REQ12109
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   944
*/
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   945
void OomTest(TOomTestType aOomTestType)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   946
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   947
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   948
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   949
	if(aOomTestType == EOomOpenTest)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   950
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   951
		RFile64 file;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   952
		TInt err2 = file.Create(TheFs, KTestFile, EFileWrite | EFileRead);	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   953
		file.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   954
		TEST2(err2, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   955
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   956
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   957
	TFileName tmpFileName;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   958
	TInt err = KErrNoMemory;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   959
	TInt failingAllocationNo = 0;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   960
	RFileBuf64 fbuf(1024);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   961
	TheTest.Printf(_L("Iteration:\r\n"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   962
	while(err == KErrNoMemory)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   963
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   964
		TheTest.Printf(_L(" %d"), ++failingAllocationNo);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   965
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   966
		MarkHandles();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   967
		MarkAllocatedCells();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   968
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   969
		__UHEAP_MARK;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   970
		__UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, failingAllocationNo, KBurstRate);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   971
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   972
		switch(aOomTestType)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   973
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   974
			case EOomCreateTest:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   975
				err = fbuf.Create(TheFs, KTestFile, EFileWrite | EFileRead);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   976
				break;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   977
			case EOomOpenTest:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   978
				err = fbuf.Open(TheFs, KTestFile, EFileWrite | EFileRead);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   979
				break;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   980
			case EOomTempTest:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   981
				{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   982
				err = fbuf.Temp(TheFs, KTestDir, tmpFileName, EFileWrite | EFileRead);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   983
				}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   984
				break;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   985
			default:
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   986
				TEST(0);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   987
				break;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   988
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   989
		fbuf.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   990
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   991
		__UHEAP_RESET;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   992
		__UHEAP_MARKEND;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   993
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   994
		CheckAllocatedCells();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   995
		CheckHandles();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   996
		
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   997
		TEntry entry;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   998
		if(err != KErrNoMemory)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   999
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1000
			TEST2(err, KErrNone);	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1001
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1002
		else if(aOomTestType == EOomCreateTest)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1003
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1004
			TInt err2 = TheFs.Entry(KTestFile, entry);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1005
			TEST2(err2, KErrNotFound);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1006
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1007
		else if(aOomTestType == EOomTempTest)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1008
			{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1009
			if(tmpFileName.Size() > 0)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1010
				{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1011
				TInt err2 = TheFs.Entry(tmpFileName, entry);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1012
				TEST2(err2, KErrNotFound);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1013
				}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1014
			}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1015
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1016
	TEST2(err, KErrNone);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1017
	TheTest.Printf(_L("\r\n=== OOM Test succeeded at heap failure rate of %d ===\r\n"), failingAllocationNo);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1018
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1019
	if(aOomTestType == EOomTempTest)
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1020
		{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1021
		(void)TheFs.Delete(tmpFileName);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1022
		}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1023
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1024
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1025
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1026
/**
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1027
@SYMTestCaseID			PDS-SQL-UT-4195
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1028
@SYMTestCaseDesc		RFileBuf64::Create() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1029
						The test calls RFileBuf64:Create() in a file I/O error simulation loop.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1030
@SYMTestActions			RFileBuf64::Create() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1031
@SYMTestExpectedResults Test must not fail
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1032
@SYMTestPriority		High
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1033
@SYMDEF					DEF145198
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1034
*/
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1035
void CreateFileIoErrTest()
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1036
	{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1037
    TInt err = KErrGeneral;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1038
    TInt cnt = 0;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1039
    for(;err<KErrNone;++cnt)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1040
        {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1041
        TheTest.Printf(_L("===Iteration %d. Simulated error:\r\n"), cnt);       
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1042
        for (TInt fsError=KErrNotFound;fsError>=KErrBadName;--fsError)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1043
            {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1044
            TheTest.Printf(_L("%d "), fsError);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1045
        	__UHEAP_MARK;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1046
            (void)TheFs.SetErrorCondition(fsError, cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1047
        	RFileBuf64 fbuf(1024);//buffer capacity = 1024 bytes
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1048
        	err = fbuf.Create(TheFs, KTestFile3, EFileRead | EFileWrite);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1049
            (void)TheFs.SetErrorCondition(KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1050
            fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1051
            __UHEAP_MARKEND;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1052
			TInt err2 = TheFs.Delete(KTestFile3);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1053
			TInt expectedErr = err == KErrNone ? KErrNone : KErrNotFound;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1054
			TEST2(err2, expectedErr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1055
            }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1056
        TheTest.Printf(_L("\r\n"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1057
        }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1058
    TheTest.Printf(_L("\r\n===File I/O error simulation test succeeded on iteration %d===\r\n"), cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1059
	}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1060
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1061
/**
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1062
@SYMTestCaseID			PDS-SQL-UT-4196
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1063
@SYMTestCaseDesc		RFileBuf64::Open() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1064
						The test calls RFileBuf64:Open() in a file I/O error simulation loop.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1065
@SYMTestActions			RFileBuf64::Open() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1066
@SYMTestExpectedResults Test must not fail
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1067
@SYMTestPriority		High
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1068
@SYMDEF					DEF145198
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1069
*/
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1070
void OpenFileIoErrTest()
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1071
	{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1072
	RFileBuf64 fbuf(1024);//buffer capacity = 1024 bytes
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1073
	TInt err = fbuf.Create(TheFs, KTestFile3, EFileRead | EFileWrite);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1074
	fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1075
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1076
    err = KErrGeneral;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1077
    TInt cnt = 0;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1078
    for(;err<KErrNone;++cnt)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1079
        {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1080
        TheTest.Printf(_L("===Iteration %d. Simulated error:\r\n"), cnt);       
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1081
        for (TInt fsError=KErrNotFound;fsError>=KErrBadName;--fsError)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1082
            {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1083
            TheTest.Printf(_L("%d "), fsError);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1084
        	__UHEAP_MARK;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1085
            (void)TheFs.SetErrorCondition(fsError, cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1086
        	err = fbuf.Open(TheFs, KTestFile3, EFileRead | EFileWrite);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1087
            (void)TheFs.SetErrorCondition(KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1088
            fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1089
            __UHEAP_MARKEND;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1090
            }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1091
        TheTest.Printf(_L("\r\n"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1092
        }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1093
    TheTest.Printf(_L("\r\n===File I/O error simulation test succeeded on iteration %d===\r\n"), cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1094
	(void)TheFs.Delete(KTestFile3);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1095
	}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1096
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1097
/**
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1098
@SYMTestCaseID			PDS-SQL-UT-4197
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1099
@SYMTestCaseDesc		RFileBuf64::Temp() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1100
						The test calls RFileBuf64:Temp() in a file I/O error simulation loop.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1101
@SYMTestActions			RFileBuf64::temp() file I/O error simulation test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1102
@SYMTestExpectedResults Test must not fail
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1103
@SYMTestPriority		High
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1104
@SYMDEF					DEF145198
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1105
*/
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1106
void TempFileIoErrTest()
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1107
	{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1108
    TInt err = KErrGeneral;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1109
    TInt cnt = 0;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1110
    for(;err<KErrNone;++cnt)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1111
        {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1112
        TheTest.Printf(_L("===Iteration %d. Simulated error:\r\n"), cnt);       
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1113
        for (TInt fsError=KErrNotFound;fsError>=KErrBadName;--fsError)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1114
            {
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1115
            TheTest.Printf(_L("%d "), fsError);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1116
        	__UHEAP_MARK;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1117
            (void)TheFs.SetErrorCondition(fsError, cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1118
        	RFileBuf64 fbuf(1024);//buffer capacity = 1024 bytes
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1119
        	TFileName tmpFileName;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1120
			err = fbuf.Temp(TheFs, KTestDir, tmpFileName, EFileWrite | EFileRead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1121
            (void)TheFs.SetErrorCondition(KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1122
            fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1123
            __UHEAP_MARKEND;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1124
			TInt err2 = TheFs.Delete(tmpFileName);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1125
			TInt expectedErr = err == KErrNone ? KErrNone : KErrNotFound;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1126
			TEST2(err2, expectedErr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1127
            }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1128
        TheTest.Printf(_L("\r\n"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1129
        }
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1130
    TheTest.Printf(_L("\r\n===File I/O error simulation test succeeded on iteration %d===\r\n"), cnt);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1131
	}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1132
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1133
/**
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1134
@SYMTestCaseID			PDS-SQL-UT-4207
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1135
@SYMTestCaseDesc		RFileBuf64::Write() OOM test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1136
						The test calls RFileBuf64:Write() in an OOM
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1137
						simulation loop and verifies that no memory is leaked.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1138
						The test also check that RFileBuf::DoSetCapacity() correctly operates in
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1139
						"out of memory" situation.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1140
@SYMTestActions			RFileBuf64::Write() OOM test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1141
@SYMTestExpectedResults Test must not fail
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1142
@SYMTestPriority		High
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1143
@SYMDEF					380056
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1144
*/
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1145
void WriteOomTest()
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1146
	{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1147
	HBufC8* databuf = HBufC8::New(KPageSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1148
	TEST(databuf != NULL);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1149
	TPtr8 dataptr = databuf->Des();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1150
	dataptr.SetLength(KPageSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1151
	dataptr.Fill(TChar(KChar));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1152
	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1153
	TInt err = KErrNoMemory;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1154
	TInt failingAllocationNo = 0;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1155
	TheTest.Printf(_L("Iteration:\r\n"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1156
	while(err == KErrNoMemory)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1157
		{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1158
		TheTest.Printf(_L(" %d"), ++failingAllocationNo);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1159
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1160
		(void)TheFs.Delete(KTestFile);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1161
		
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1162
		MarkHandles();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1163
		MarkAllocatedCells();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1164
		
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1165
		__UHEAP_MARK;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1166
		__UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, failingAllocationNo, KBurstRate);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1167
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1168
		const TInt KDefaultBufCapacity = 1024;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1169
		RFileBuf64 fbuf(KDefaultBufCapacity);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1170
		err = fbuf.Create(TheFs, KTestFile, EFileWrite | EFileRead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1171
		if(err == KErrNone)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1172
			{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1173
			err = fbuf.Write(0LL, dataptr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1174
			}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1175
		fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1176
		
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1177
		__UHEAP_RESET;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1178
		__UHEAP_MARKEND;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1179
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1180
		CheckAllocatedCells();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1181
		CheckHandles();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1182
		}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1183
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1184
	RFile64 file;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1185
	err = file.Open(TheFs, KTestFile, EFileRead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1186
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1187
	dataptr.Zero();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1188
	err = file.Read(dataptr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1189
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1190
	file.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1191
	TEST2(dataptr.Length(), KPageSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1192
	for(TInt i=0;i<KPageSize;++i)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1193
		{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1194
		TEST(dataptr[i] == KChar);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1195
		}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1196
	TheTest.Printf(_L("\r\n=== OOM Test succeeded at heap failure rate of %d ===\r\n"), failingAllocationNo);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1197
	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1198
	//The file is left undeleted - to be used in ReadOomTest().
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1199
	delete databuf;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1200
	}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1201
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1202
/**
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1203
@SYMTestCaseID			PDS-SQL-UT-4208
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1204
@SYMTestCaseDesc		RFileBuf64::Read() OOM test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1205
						The test calls RFileBuf64:Read() in an OOM
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1206
						simulation loop and verifies that no memory is leaked.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1207
						The test also check that RFileBuf::DoSetCapacity() correctly operates in
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1208
						"out of memory" situation.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1209
@SYMTestActions			RFileBuf64::Read() OOM test.
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1210
@SYMTestExpectedResults Test must not fail
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1211
@SYMTestPriority		High
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1212
@SYMDEF					380056
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1213
*/
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1214
void ReadOomTest()
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1215
	{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1216
	HBufC8* databuf = HBufC8::New(KPageSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1217
	TEST(databuf != NULL);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1218
	TPtr8 dataptr = databuf->Des();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1219
	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1220
	TInt err = KErrNoMemory;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1221
	TInt failingAllocationNo = 0;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1222
	TheTest.Printf(_L("Iteration:\r\n"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1223
	while(err == KErrNoMemory)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1224
		{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1225
		TheTest.Printf(_L(" %d"), ++failingAllocationNo);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1226
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1227
		MarkHandles();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1228
		MarkAllocatedCells();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1229
		
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1230
		__UHEAP_MARK;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1231
		__UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, failingAllocationNo, KBurstRate);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1232
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1233
		const TInt KDefaultBufCapacity = 1024;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1234
		RFileBuf64 fbuf(KDefaultBufCapacity);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1235
		err = fbuf.Open(TheFs, KTestFile, EFileRead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1236
		if(err == KErrNone)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1237
			{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1238
			err = fbuf.Read(0LL, dataptr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1239
			}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1240
		fbuf.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1241
		
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1242
		__UHEAP_RESET;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1243
		__UHEAP_MARKEND;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1244
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1245
		CheckAllocatedCells();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1246
		CheckHandles();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1247
		}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1248
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1249
	RFile64 file;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1250
	err = file.Open(TheFs, KTestFile, EFileRead);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1251
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1252
	dataptr.Zero();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1253
	err = file.Read(dataptr);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1254
	TEST2(err, KErrNone);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1255
	file.Close();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1256
	TEST2(dataptr.Length(), KPageSize);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1257
	for(TInt i=0;i<KPageSize;++i)
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1258
		{
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1259
		TEST(dataptr[i] == KChar);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1260
		}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1261
	TheTest.Printf(_L("\r\n=== OOM Test succeeded at heap failure rate of %d ===\r\n"), failingAllocationNo);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1262
	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1263
	(void)TheFs.Delete(KTestFile);
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1264
	delete databuf;
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1265
	}
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1266
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1267
/**
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1268
@SYMTestCaseID          PDS-SQL-CT-4212
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1269
@SYMTestCaseDesc        RFileBuf64::Write() test.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1270
                        The test performs file write operations using RFileBuf64 class.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1271
                        Teh test sumilates the write operation at the conditions:
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1272
                        
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1273
                        1. There are 8 pages to be writted to the file.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1274
                        2. Each page is 16 bytes
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1275
                        3. The size of RFileBuf64 is 4 pages, i.e. 64 bytes.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1276
                        4. The order of write is not sequential.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1277
 
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1278
@SYMTestActions         Write database pages.
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1279
@SYMTestExpectedResults Test must not fail
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1280
@SYMTestPriority        High
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1281
*/
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1282
void TestSetSizeCounter()
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1283
    {
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1284
    const TInt KPageSize = 16;
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1285
    const TInt KBufSize = 4 * KPageSize;
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1286
    RFileBuf64 fbuf(KBufSize);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1287
    (void)TheFs.Delete(KTestFile);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1288
    TInt err = fbuf.Create(TheFs, KTestFile, EFileRead | EFileWrite);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1289
    TEST2(err, KErrNone); 
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1290
    const TInt KMaxPage = 8;
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1291
    TUint8 fileData[KMaxPage][KPageSize];
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1292
    TPtrC8 pageData[KMaxPage];
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1293
    for(TInt i = 0;i <KMaxPage;++i)
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1294
        {
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1295
        Mem::Fill(fileData[i], KPageSize, TChar('a' + i));
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1296
        const TUint8* p = fileData[i]; 
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1297
        pageData[i].Set(p, KPageSize);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1298
        }
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1299
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1300
    fbuf.ProfilerReset();
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1301
    //Write the first 4 pages
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1302
    for (TInt ii = 0; ii < 4; ii++)
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1303
        {
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1304
        err = fbuf.Write(ii * KPageSize, pageData[ii]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1305
        TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1306
        }
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1307
    //Write page #2
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1308
    err = fbuf.Write(2 * KPageSize, pageData[2]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1309
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1310
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1311
    TEST2(fbuf.iFileWriteCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1312
    TEST2(fbuf.iFileSetSizeCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1313
    //Write pages 5, 4, 6, 7
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1314
    err = fbuf.Write(5 * KPageSize, pageData[5]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1315
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1316
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1317
    TEST2(fbuf.iFileWriteCount, 1);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1318
    TEST2(fbuf.iFileSetSizeCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1319
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1320
    err = fbuf.Write(4 * KPageSize, pageData[4]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1321
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1322
    err = fbuf.Write(6 * KPageSize, pageData[6]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1323
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1324
    err = fbuf.Write(7 * KPageSize, pageData[7]);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1325
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1326
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1327
    TEST2(fbuf.iFileWriteCount, 1);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1328
    TEST2(fbuf.iFileSetSizeCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1329
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1330
    err = fbuf.Flush();
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1331
    TEST2(err, KErrNone);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1332
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1333
    TEST2(fbuf.iFileWriteCount, 2);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1334
    TEST2(fbuf.iFileSetSizeCount, 0);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1335
    //
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1336
    fbuf.Close();
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1337
    (void)TheFs.Delete(KTestFile);
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1338
    }
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1339
51
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1340
///////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1341
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1342
#ifdef _DEBUG
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1343
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1344
//Panic thread function. 
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1345
//It will cast aData parameter to a TFunctor pointer and call it.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1346
//The expectation is that the called function will panic and kill the panic thread.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1347
TInt ThreadFunc(void* aData)
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1348
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1349
	CTrapCleanup* tc = CTrapCleanup::New();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1350
	TEST(tc != NULL);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1351
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1352
	User::SetJustInTime(EFalse);	// disable debugger panic handling
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1353
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1354
	TFunctor* obj = reinterpret_cast<TFunctor*> (aData);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1355
	TEST(obj != NULL);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1356
	(*obj)();//call the panic function
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1357
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1358
	delete tc;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1359
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1360
	return KErrNone;		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1361
	}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1362
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1363
//Panic test.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1364
//PanicTest function will create a new thread - panic thread, giving it a pointer to the function which has to
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1365
//be executed and the expectation is that the function will panic and kill the panic thread.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1366
//PanicTest function will check the panic thread exit code, exit category and the panic code.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1367
void PanicTest(TFunctor& aFunctor, TExitType aExpectedExitType, const TDesC& aExpectedCategory, TInt aExpectedPanicCode)
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1368
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1369
	RThread thread;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1370
	_LIT(KThreadName,"SqlFileBufPanicThread");
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1371
	TEST2(thread.Create(KThreadName, &ThreadFunc, 0x2000, 0x1000, 0x10000, (void*)&aFunctor, EOwnerThread), KErrNone);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1372
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1373
	TRequestStatus status;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1374
	thread.Logon(status);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1375
	TEST2(status.Int(), KRequestPending);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1376
	thread.Resume();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1377
	User::WaitForRequest(status);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1378
	User::SetJustInTime(ETrue);	// enable debugger panic handling
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1379
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1380
	TEST2(thread.ExitType(), aExpectedExitType);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1381
	TEST(thread.ExitCategory() == aExpectedCategory);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1382
	TEST2(thread.ExitReason(), aExpectedPanicCode);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1383
	
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1384
	CLOSE_AND_WAIT(thread);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1385
	}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1386
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1387
////////////////////////////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1388
//////////////////////////////     Panic test functions    /////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1389
////////////////////////////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1390
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1391
//Panic when calling RFileBuf64::RFileBuf64() with an invalid buffer capacity value.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1392
class TSqlFileBuf_InvalidCapacity : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1393
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1394
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1395
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1396
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1397
		RFileBuf64 fbuf(-8192);//panic here - "-8192" - negative buffer capacity
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1398
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1399
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1400
static TSqlFileBuf_InvalidCapacity TheSqlFileBuf_InvalidCapacity;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1401
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1402
//Panic when calling RFileBuf64::Create() with an invalid file handle.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1403
class TSqlFileBuf_InvalidFileHandle1 : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1404
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1405
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1406
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1407
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1408
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1409
		RFs fs;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1410
		fbuf.Create(fs, _L("aaa.db"), EFileRead);//panic here - invalid file handle
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1411
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1412
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1413
static TSqlFileBuf_InvalidFileHandle1 TheSqlFileBuf_InvalidFileHandle1;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1414
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1415
//Panic when calling RFileBuf64::Create() with an invalid file name.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1416
class TSqlFileBuf_InvalidFileName1 : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1417
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1418
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1419
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1420
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1421
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1422
		RFs fs;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1423
		TInt err = fs.Connect();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1424
		TEST2(err, KErrNone);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1425
		fbuf.Create(fs, KNullDesC, EFileRead);//panic here - invalid file name
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1426
		fs.Close();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1427
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1428
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1429
static TSqlFileBuf_InvalidFileName1 TheSqlFileBuf_InvalidFileName1;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1430
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1431
//Panic when calling RFileBuf64::Open() with an invalid file handle.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1432
class TSqlFileBuf_InvalidFileHandle2 : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1433
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1434
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1435
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1436
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1437
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1438
		RFs fs;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1439
		fbuf.Open(fs, _L("aaa.db"), EFileRead);//panic here - invalid file handle
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1440
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1441
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1442
static TSqlFileBuf_InvalidFileHandle2 TheSqlFileBuf_InvalidFileHandle2;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1443
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1444
//Panic when calling RFileBuf64::Open() with an invalid file name.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1445
class TSqlFileBuf_InvalidFileName2 : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1446
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1447
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1448
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1449
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1450
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1451
		RFs fs;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1452
		TInt err = fs.Connect();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1453
		TEST2(err, KErrNone);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1454
		fbuf.Open(fs, KNullDesC, EFileRead);//panic here - invalid file name
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1455
		fs.Close();
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1456
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1457
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1458
static TSqlFileBuf_InvalidFileName2 TheSqlFileBuf_InvalidFileName2;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1459
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1460
//Panic when calling RFileBuf64::Temp() with an invalid file handle.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1461
class TSqlFileBuf_InvalidFileHandle3 : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1462
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1463
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1464
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1465
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1466
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1467
		RFs fs;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1468
		TFileName fname;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1469
		fbuf.Temp(fs, _L("c:\\test"), fname, EFileRead);//panic here - invalid file handle
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1470
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1471
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1472
static TSqlFileBuf_InvalidFileHandle3 TheSqlFileBuf_InvalidFileHandle3;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1473
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1474
//Panic when calling RFileBuf64::AdoptFromClient() with an invalid message handle.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1475
class TSqlFileBuf_InvalidMessageHandle : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1476
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1477
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1478
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1479
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1480
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1481
		RMessage2 msg;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1482
		fbuf.AdoptFromClient(msg, 0, 1);//panic here - invalid message handle
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1483
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1484
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1485
static TSqlFileBuf_InvalidMessageHandle TheSqlFileBuf_InvalidMessageHandle;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1486
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1487
//Panic when calling RFileBuf64::Read() with an invalid file position.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1488
class TSqlFileBuf_InvalidReadPos : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1489
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1490
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1491
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1492
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1493
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1494
		TBuf8<50> buf;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1495
		fbuf.Read(-1024, buf);//panic here - invalid file position
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1496
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1497
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1498
static TSqlFileBuf_InvalidReadPos TheSqlFileBuf_InvalidReadPos;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1499
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1500
//Panic when calling RFileBuf64::Write() with an invalid file position.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1501
class TSqlFileBuf_InvalidWritePos : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1502
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1503
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1504
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1505
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1506
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1507
		TBuf8<50> buf;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1508
		fbuf.Write(-1024, buf);//panic here - invalid file position
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1509
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1510
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1511
static TSqlFileBuf_InvalidWritePos TheSqlFileBuf_InvalidWritePos;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1512
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1513
//Panic when calling RFileBuf64::SetSize() with an invalid file size.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1514
class TSqlFileBuf_InvalidSize : public TFunctor
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1515
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1516
private:		
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1517
	virtual void operator()()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1518
		{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1519
		RFileBuf64 fbuf(8192);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1520
		TBuf8<50> buf;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1521
		fbuf.SetSize(-1024);//panic here - invalid file size
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1522
		}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1523
	};
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1524
static TSqlFileBuf_InvalidSize TheSqlFileBuf_InvalidSize;
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1525
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1526
#endif //_DEBUG
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1527
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1528
/**
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1529
@SYMTestCaseID          PDS-SQL-UT-4236
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1530
@SYMTestCaseDesc        RFileBuf64 panic test.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1531
						The test runs a thread. The thread will create a RFileBuf64 object
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1532
						and put the object in a situation where the file buffer cannot perform
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1533
						its duties anymore and will raise a panic. The test verifies that the file
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1534
						buffer implementation properly detects anomalities such as bad parameters,
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1535
						null handles, etc... 
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1536
@SYMTestActions         RFileBuf64 panic test.
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1537
@SYMTestExpectedResults Test must not fail
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1538
@SYMTestPriority        High
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1539
*/
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1540
void FileBufPanicTest()
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1541
	{
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1542
#ifdef _DEBUG
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1543
	_LIT(KPanicCategory, "FBuf64");
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1544
	PanicTest(TheSqlFileBuf_InvalidCapacity, EExitPanic, KPanicCategory, 1);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1545
	PanicTest(TheSqlFileBuf_InvalidFileHandle1, EExitPanic, KPanicCategory, 7);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1546
	PanicTest(TheSqlFileBuf_InvalidFileName1, EExitPanic, KPanicCategory, 10);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1547
	PanicTest(TheSqlFileBuf_InvalidFileHandle2, EExitPanic, KPanicCategory, 7);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1548
	PanicTest(TheSqlFileBuf_InvalidFileName2, EExitPanic, KPanicCategory, 10);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1549
	PanicTest(TheSqlFileBuf_InvalidFileHandle3, EExitPanic, KPanicCategory, 7);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1550
	PanicTest(TheSqlFileBuf_InvalidMessageHandle, EExitPanic, KPanicCategory, 8);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1551
	PanicTest(TheSqlFileBuf_InvalidReadPos, EExitPanic, KPanicCategory, 4);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1552
	PanicTest(TheSqlFileBuf_InvalidWritePos, EExitPanic, KPanicCategory, 4);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1553
	PanicTest(TheSqlFileBuf_InvalidSize, EExitPanic, KPanicCategory, 5);
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1554
#else //_DEBUG
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1555
	TheTest.Printf(_L("This test can be run in _DEBUG mode only!"));
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1556
#endif//_DEBUG
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1557
	}
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1558
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1559
void DoTests()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1560
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1561
	TheTest.Start(_L(" @SYMTestCaseID:PDS-SQL-UT-4132 RFileBuf64 write test 1"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1562
	WriteTest1();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1563
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4133 RFileBuf64 write test 2"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1564
	WriteTest2();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1565
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4134 RFileBuf64 write test 3"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1566
	WriteTest3();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1567
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4135 RFileBuf64 write test 4"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1568
	WriteTest4();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1569
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4136 RFileBuf64 write test 5"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1570
	WriteTest5();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1571
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4137 RFileBuf64 write test 6"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1572
	WriteTest6();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1573
	TheTest.Next( _L("RFileBuf64 read test - preparation"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1574
	PrepareReadTest();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1575
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4138 RFileBuf64 read test 1"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1576
	ReadTest1();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1577
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4139 RFileBuf64 read test 2"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1578
	ReadTest2();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1579
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4140 RFileBuf64 read test 3"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1580
	ReadTest3();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1581
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1582
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4141 RFileBuf64::SetReadAheadSize() test"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1583
	SetReadAheadSizeTest();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1584
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1585
	(void)TheFs.Delete(KTestFile);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1586
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1587
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4142 RFileBuf64::Create() OOM test"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1588
	OomTest(EOomCreateTest);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1589
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4142 RFileBuf64::Open() OOM test"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1590
	OomTest(EOomOpenTest);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1591
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4142 RFileBuf64::Temp() OOM test"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1592
	OomTest(EOomTempTest);
29
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1593
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4207 RFileBuf64::Write() OOM test"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1594
	WriteOomTest();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1595
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4208 RFileBuf64::Read() OOM test"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1596
	ReadOomTest();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1597
	
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1598
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4195 RFileBuf64::Create() file I/O error simulation test"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1599
	CreateFileIoErrTest();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1600
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4196 RFileBuf64::Open() file I/O error simulation test"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1601
	OpenFileIoErrTest();
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1602
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4197 RFileBuf64::Temp() file I/O error simulation test"));
cce6680bbf1c 201023_05
hgs
parents: 0
diff changeset
  1603
	OpenFileIoErrTest();
31
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1604
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-CT-4212 RFileBuf64::Write() test"));
ba1c4f4a893f 201025_02
hgs
parents: 29
diff changeset
  1605
	TestSetSizeCounter();
51
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1606
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1607
	TheTest.Next( _L(" @SYMTestCaseID:PDS-SQL-UT-4236 RFileBuf64 panic test"));
7d4490026038 201037_06
hgs
parents: 31
diff changeset
  1608
	FileBufPanicTest();
0
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1609
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1610
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1611
TInt E32Main()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1612
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1613
	TheTest.Title();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1614
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1615
	CTrapCleanup* tc = CTrapCleanup::New();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1616
	TheTest(tc != NULL);
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1617
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1618
	__UHEAP_MARK;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1619
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1620
	TestEnvInit();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1621
	DeleteTestFiles();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1622
	DoTests();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1623
	TestEnvDestroy();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1624
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1625
	__UHEAP_MARKEND;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1626
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1627
	TheTest.End();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1628
	TheTest.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1629
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1630
	delete tc;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1631
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1632
	User::Heap().Check();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1633
	return KErrNone;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1634
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1635
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1636
#else//_SQLPROFILER	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1637
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1638
TInt E32Main()
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1639
	{
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1640
	TheTest.Title();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1641
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1642
 	TheTest.Start(_L("This test works only if the test is built with _SQLPROFILER macro defined!"));
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1643
	TheTest.End();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1644
	TheTest.Close();
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1645
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1646
	return KErrNone;
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1647
	}
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1648
	
08ec8eefde2f Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1649
#endif//_SQLPROFILER