os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth01/TSU_MmTsth01.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// This file contains the test steps for Unit Test Suite 01 : Parseline.cpp
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
// EPOC includes
sl@0
    19
#include <e32base.h>
sl@0
    20
sl@0
    21
// Test system includes
sl@0
    22
#include <testframework.h>
sl@0
    23
#include "script.h"
sl@0
    24
#include "parseline.h"
sl@0
    25
#include "Filename.h" 
sl@0
    26
sl@0
    27
// Specific includes for this test suite
sl@0
    28
#include "TSU_MmTsthSuite01.h"
sl@0
    29
sl@0
    30
// Specific includes for these test steps
sl@0
    31
#include "TSU_MmTsth01.h"
sl@0
    32
sl@0
    33
// --------------------------------------------
sl@0
    34
sl@0
    35
// Unit Test Suite 01 : Parseline.cpp
sl@0
    36
// Depends on : none
sl@0
    37
sl@0
    38
// Tests :-
sl@0
    39
// 1 Initialise a CParseLine
sl@0
    40
// 2 Process line : load & run a sample step
sl@0
    41
// 3 Run a sample panic step
sl@0
    42
// 4 Run a utility
sl@0
    43
// 11 CSuiteDLL initialise and verify
sl@0
    44
sl@0
    45
// (NB these tests are to test the parser ONLY; the underlying functionality of the
sl@0
    46
// commands parsed is tested in CTestStep, CTestSuite, CTestUtils etc. suites)
sl@0
    47
sl@0
    48
// ---------------------
sl@0
    49
// RTestMmTsthU0101
sl@0
    50
sl@0
    51
RTestMmTsthU0101* RTestMmTsthU0101::NewL()
sl@0
    52
	{
sl@0
    53
	RTestMmTsthU0101* self = new(ELeave) RTestMmTsthU0101;
sl@0
    54
	return self;
sl@0
    55
	}
sl@0
    56
sl@0
    57
// Each test step initialises its own name.
sl@0
    58
RTestMmTsthU0101::RTestMmTsthU0101()
sl@0
    59
	{
sl@0
    60
	iTestStepName = _L("MM-TSTH-U-0101");
sl@0
    61
	}
sl@0
    62
sl@0
    63
// preamble
sl@0
    64
TVerdict RTestMmTsthU0101::OpenL()
sl@0
    65
	{
sl@0
    66
	// don't call the default preamble
sl@0
    67
	return iTestStepResult = EPass;
sl@0
    68
	}
sl@0
    69
sl@0
    70
// postamble
sl@0
    71
void RTestMmTsthU0101::Close()
sl@0
    72
	{
sl@0
    73
	// don't call the default postamble
sl@0
    74
	}
sl@0
    75
sl@0
    76
// Do the test step.
sl@0
    77
TVerdict RTestMmTsthU0101::DoTestStepL()
sl@0
    78
	{
sl@0
    79
	INFO_PRINTF1(_L("Unit test for Parseline"));
sl@0
    80
sl@0
    81
	TVerdict currentVerdict = EPass;
sl@0
    82
sl@0
    83
	// initialise a CParseLine
sl@0
    84
	CLog* theLogClient  = iSuite->LogSystem();
sl@0
    85
	CTestUtils* theTestUtils  = CTestUtils::NewL(theLogClient);
sl@0
    86
	TInt64 theGuardTimer (-1);
sl@0
    87
sl@0
    88
	CleanupStack::PushL(theTestUtils);
sl@0
    89
	CScript* theParseScript = CScript::NewLC(theTestUtils, theLogClient, theGuardTimer, KNullDesC);
sl@0
    90
	CParseLine* theParser = CParseLine::NewL(theParseScript, theTestUtils, theLogClient, theGuardTimer, KNullDesC);
sl@0
    91
	CleanupStack::PushL(theParser);
sl@0
    92
sl@0
    93
	// if we got here, we're constructed successfully
sl@0
    94
	INFO_PRINTF1(_L("CParseLine constructed successfully"));
sl@0
    95
sl@0
    96
	CleanupStack::PopAndDestroy(3); // theParser, theParseScript, theTestUtils
sl@0
    97
sl@0
    98
	return iTestStepResult = currentVerdict;
sl@0
    99
	}
sl@0
   100
sl@0
   101
sl@0
   102
// ---------------------
sl@0
   103
// RTestMmTsthU0102
sl@0
   104
sl@0
   105
RTestMmTsthU0102* RTestMmTsthU0102::NewL()
sl@0
   106
	{
sl@0
   107
	RTestMmTsthU0102* self = new(ELeave) RTestMmTsthU0102;
sl@0
   108
	return self;
sl@0
   109
	}
sl@0
   110
sl@0
   111
// Each test step initialises its own name.
sl@0
   112
RTestMmTsthU0102::RTestMmTsthU0102()
sl@0
   113
	{
sl@0
   114
	iTestStepName = _L("MM-TSTH-U-0102");
sl@0
   115
	}
sl@0
   116
sl@0
   117
// Do the test step.
sl@0
   118
TVerdict RTestMmTsthU0102::DoTestStepL()
sl@0
   119
	{
sl@0
   120
	INFO_PRINTF1(_L("Unit test for ProcessLineL 1"));
sl@0
   121
sl@0
   122
	TVerdict currentVerdict = EPass;
sl@0
   123
	_LIT8(KTestStepScriptLine1, "LOAD_SUITE TSU_MMTSTH01");
sl@0
   124
	_LIT8(KTestStepScriptLine2, "RUN_TEST_STEP 1000 TSU_MMTSTH01 RTestStepDummy");
sl@0
   125
sl@0
   126
	TRAPD(err1, iParseLine->ProcessLineL(KTestStepScriptLine1, 1));
sl@0
   127
	if(err1 != KErrNone)
sl@0
   128
	{
sl@0
   129
		ERR_PRINTF2(_L("ProcessLineL for LOAD_SUITE left, error code %d"), err1);
sl@0
   130
		return iTestStepResult = EFail;
sl@0
   131
	}
sl@0
   132
	TRAPD(err2, iParseLine->ProcessLineL(KTestStepScriptLine2, 2));
sl@0
   133
	if(err2 != KErrNone)
sl@0
   134
	{
sl@0
   135
		ERR_PRINTF2(_L("ProcessLineL for RUN_TEST_STEP left, error code %d"), err2);
sl@0
   136
		return iTestStepResult = EFail;
sl@0
   137
	}
sl@0
   138
sl@0
   139
	return iTestStepResult = currentVerdict;
sl@0
   140
	}
sl@0
   141
sl@0
   142
// ---------------------
sl@0
   143
// RTestMmTsthU0103
sl@0
   144
sl@0
   145
RTestMmTsthU0103* RTestMmTsthU0103::NewL()
sl@0
   146
	{
sl@0
   147
	RTestMmTsthU0103* self = new(ELeave) RTestMmTsthU0103;
sl@0
   148
	return self;
sl@0
   149
	}
sl@0
   150
sl@0
   151
// Each test step initialises its own name.
sl@0
   152
RTestMmTsthU0103::RTestMmTsthU0103()
sl@0
   153
	{
sl@0
   154
	iTestStepName = _L("MM-TSTH-U-0103");
sl@0
   155
	}
sl@0
   156
sl@0
   157
// Do the test step.
sl@0
   158
TVerdict RTestMmTsthU0103::DoTestStepL()
sl@0
   159
	{
sl@0
   160
	INFO_PRINTF1(_L("Unit test for ProcessLineL 2"));
sl@0
   161
sl@0
   162
	TVerdict currentVerdict = EPass;
sl@0
   163
	_LIT8(KTestStepScriptLine1, "LOAD_SUITE TSU_MMTSTH01");
sl@0
   164
	_LIT8(KTestStepScriptLine2, "RUN_PANIC_STEP 1000 TSU_MMTSTH01 RPanicTestStepDummy, PanicDummy, 0");
sl@0
   165
sl@0
   166
	TRAPD(err1, iParseLine->ProcessLineL(KTestStepScriptLine1, 1));
sl@0
   167
	if(err1 != KErrNone)
sl@0
   168
	{
sl@0
   169
		ERR_PRINTF2(_L("ProcessLineL for LOAD_SUITE left, error code %d"), err1);
sl@0
   170
		return iTestStepResult = EInconclusive;
sl@0
   171
	}
sl@0
   172
	TRAPD(err2, iParseLine->ProcessLineL(KTestStepScriptLine2, 2));
sl@0
   173
	if(err2 != KErrNone)
sl@0
   174
	{
sl@0
   175
		ERR_PRINTF2(_L("ProcessLineL for RUN_PANIC_STEP left, error code %d"), err2);
sl@0
   176
		return iTestStepResult = EFail;
sl@0
   177
	}
sl@0
   178
sl@0
   179
	return iTestStepResult = currentVerdict;
sl@0
   180
	}
sl@0
   181
sl@0
   182
sl@0
   183
// ---------------------
sl@0
   184
// RTestMmTsthU0104
sl@0
   185
sl@0
   186
RTestMmTsthU0104* RTestMmTsthU0104::NewL()
sl@0
   187
	{
sl@0
   188
	RTestMmTsthU0104* self = new(ELeave) RTestMmTsthU0104;
sl@0
   189
	return self;
sl@0
   190
	}
sl@0
   191
sl@0
   192
// Each test step initialises its own name.
sl@0
   193
RTestMmTsthU0104::RTestMmTsthU0104()
sl@0
   194
	{
sl@0
   195
	iTestStepName = _L("MM-TSTH-U-0104");
sl@0
   196
	}
sl@0
   197
sl@0
   198
// Do the test step.
sl@0
   199
TVerdict RTestMmTsthU0104::DoTestStepL()
sl@0
   200
	{
sl@0
   201
sl@0
   202
	INFO_PRINTF1(_L("This test step is not available on EKA2 - Passing test!"));
sl@0
   203
	return EPass;
sl@0
   204
sl@0
   205
	}
sl@0
   206
sl@0
   207
// ---------------------
sl@0
   208
// RTestMmTsthU0111
sl@0
   209
sl@0
   210
RTestMmTsthU0111* RTestMmTsthU0111::NewL()
sl@0
   211
	{
sl@0
   212
	RTestMmTsthU0111* self = new(ELeave) RTestMmTsthU0111;
sl@0
   213
	return self;
sl@0
   214
	}
sl@0
   215
sl@0
   216
// Each test step initialises its own name.
sl@0
   217
RTestMmTsthU0111::RTestMmTsthU0111()
sl@0
   218
	{
sl@0
   219
	iTestStepName = _L("MM-TSTH-U-0111");
sl@0
   220
	}
sl@0
   221
sl@0
   222
// Do the test step.
sl@0
   223
TVerdict RTestMmTsthU0111::DoTestStepL()
sl@0
   224
	{
sl@0
   225
	INFO_PRINTF1(_L("Unit test for CSuiteDLL"));
sl@0
   226
sl@0
   227
	TVerdict currentVerdict = EPass;
sl@0
   228
sl@0
   229
	// create a new CSuiteDll object to store info on loaded DLL
sl@0
   230
	_LIT(KTestSuiteName, "TSU_MMTSTH01");
sl@0
   231
	CSuiteDll* newRef = NULL;
sl@0
   232
	TRAPD(err, newRef = CSuiteDll::NewL(KTestSuiteName, iLogClient));
sl@0
   233
	if(err != KErrNone)
sl@0
   234
	{
sl@0
   235
		ERR_PRINTF2(_L("CSuiteDll::NewL left, error code %d"), err);
sl@0
   236
		return iTestStepResult = EFail;
sl@0
   237
	}
sl@0
   238
sl@0
   239
	// make sure it's not NULL, get its name out and see if it matches
sl@0
   240
	CTestSuite* theTestSuite = newRef->Suite();
sl@0
   241
	if(theTestSuite == NULL)
sl@0
   242
	{
sl@0
   243
		ERR_PRINTF1(_L("CSuiteDll::Suite() is NULL"));
sl@0
   244
		return iTestStepResult = EFail;
sl@0
   245
	}
sl@0
   246
sl@0
   247
	TPtrC theName = newRef->Name();
sl@0
   248
	if (theName != KTestSuiteName)
sl@0
   249
	{
sl@0
   250
		ERR_PRINTF2(_L("CSuiteDll::Name() is %S"), &theName);
sl@0
   251
		return iTestStepResult = EFail;
sl@0
   252
	}
sl@0
   253
sl@0
   254
	return iTestStepResult = currentVerdict;
sl@0
   255
	}
sl@0
   256
sl@0
   257
// ---------------------
sl@0
   258
// Dummy test step for Parseline testing
sl@0
   259
sl@0
   260
RTestStepDummy* RTestStepDummy::NewL()
sl@0
   261
	{
sl@0
   262
	RTestStepDummy* self = new(ELeave) RTestStepDummy;
sl@0
   263
	return self;
sl@0
   264
	}
sl@0
   265
sl@0
   266
// Each test step initialises its own name.
sl@0
   267
RTestStepDummy::RTestStepDummy()
sl@0
   268
	{
sl@0
   269
	iTestStepName = _L("RTestStepDummy");
sl@0
   270
	}
sl@0
   271
sl@0
   272
// Do the test step.
sl@0
   273
TVerdict RTestStepDummy::DoTestStepL()
sl@0
   274
	{
sl@0
   275
	INFO_PRINTF1(_L("Dummy step completed"));
sl@0
   276
sl@0
   277
	TVerdict currentVerdict = EPass;
sl@0
   278
sl@0
   279
	return iTestStepResult = currentVerdict;
sl@0
   280
	}
sl@0
   281
sl@0
   282
sl@0
   283
// ---------------------
sl@0
   284
// Dummy panic test steps for Parseline testing
sl@0
   285
sl@0
   286
RPanicTestStepDummy* RPanicTestStepDummy::NewL()
sl@0
   287
	{
sl@0
   288
	RPanicTestStepDummy* self = new(ELeave) RPanicTestStepDummy;
sl@0
   289
	return self;
sl@0
   290
	}
sl@0
   291
sl@0
   292
// Each test step initialises its own name.
sl@0
   293
RPanicTestStepDummy::RPanicTestStepDummy()
sl@0
   294
	{
sl@0
   295
	iTestStepName = _L("RPanicTestStepDummy");
sl@0
   296
	}
sl@0
   297
sl@0
   298
// Do the test step.
sl@0
   299
TVerdict RPanicTestStepDummy::DoTestStepL()
sl@0
   300
	{
sl@0
   301
	INFO_PRINTF1(_L("Dummy panic step running"));
sl@0
   302
	User::Panic(_L("PanicDummy"), 0);
sl@0
   303
sl@0
   304
	// NB this code cannot be reached
sl@0
   305
	TVerdict currentVerdict = EPass;
sl@0
   306
	return iTestStepResult = currentVerdict;
sl@0
   307
	}
sl@0
   308
sl@0
   309