kerneltest/e32test/misc/testexclusions.h
author hgs
Mon, 11 Oct 2010 17:54:41 +0100
changeset 286 48e57fb1237e
child 300 1d28c8722707
permissions -rw-r--r--
201039_11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
286
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     2
// All rights reserved.
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     7
//
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     8
// Initial Contributors:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    10
//
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    11
// Contributors:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    12
//
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    13
// Description:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    14
// e32test\misc\testexclusions.h
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    15
// Gets the test exclusion property which is set by reading a file provided by base port and 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    16
// based on this property some tests can be excluded 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    17
// 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    18
//
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    19
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    20
#ifndef __TESTEXCLUSIONS_H__
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    21
#define __TESTEXCLUSIONS_H__
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    22
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    23
#include <e32svr.h>
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    24
#include <u32hal.h>
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    25
#include <e32property.h> 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    26
#include <e32uid.h>
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    27
#include <f32file.h>
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    28
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    29
_LIT(KLitPlatformTestExclusionFile, "Z:\\sys\\data\\platformtestexclusion.txt");
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    30
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    31
// Bit masks to disable different tests
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    32
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    33
// To disable invoking PowerController::PowerDown  
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    34
const TUint KDisableControllerShutdown = 0x1;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    35
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    36
TInt GetExclusionFromFile(TUint& aTestExclusion)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    37
	{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    38
	RFs theFs;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    39
	TInt r = KErrNone;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    40
	r = theFs.Connect();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    41
    if (r != KErrNone)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    42
		return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    43
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    44
	RFile file;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    45
	TFileName filename(KLitPlatformTestExclusionFile);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    46
	r = file.Open(theFs, filename, EFileRead);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    47
	if (r == KErrNone)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    48
		{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    49
		TBuf8<8> data;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    50
		file.Read(data);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    51
		TLex8 lexData(data);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    52
		r = lexData.Val(aTestExclusion, EHex);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    53
		file.Close();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    54
		} 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    55
	
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    56
	theFs.Close();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    57
	return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    58
	}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    59
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    60
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    61
TInt GetTestExclusionSettings(TInt& aTestExclusion)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    62
	{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    63
	TInt r =  RProperty::Get(KUidSystemCategory, KPlatformTestExclusionKey, aTestExclusion);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    64
	if (r != KErrNotFound)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    65
		return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    66
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    67
    _LIT_SECURITY_POLICY_PASS(KTestPropPolicy);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    68
    r = RProperty::Define(KUidSystemCategory, KPlatformTestExclusionKey, RProperty::EInt, KTestPropPolicy, KTestPropPolicy);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    69
	if (r != KErrNone)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    70
		return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    71
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    72
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    73
	TUint testExclusion = 0;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    74
	r = GetExclusionFromFile(testExclusion);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    75
	if ((r != KErrNotFound) && (r != KErrNone)) // All platforms need not have test exclusions file defined
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    76
		return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    77
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    78
	aTestExclusion = testExclusion;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    79
	r = RProperty::Set(KUidSystemCategory, KPlatformTestExclusionKey, testExclusion);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    80
	return r;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    81
	}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    82
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    83
#endif // __TESTEXCLUSIONS_H__
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    84