diff -r 000000000000 -r 08ec8eefde2f featuremgmt/featuremgr/test/shared/src/efm_teststepbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/featuremgmt/featuremgr/test/shared/src/efm_teststepbase.cpp Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,165 @@ +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// Base class for capability aware test steps and a auxilarry test step to publish +// features needed by other test steps +// +// + +/** + @file + @internalComponent + @test +*/ + +#include "efm_teststepbase.h" +#include +#include + +CEFMTestStepPublishFeatures::CEFMTestStepPublishFeatures() + { + SetTestStepName(KEFMTestStepPublishFeatures); + } + +TVerdict CEFMTestStepPublishFeatures::doTestStepL() +{ + RFeatureControl control; + TInt err = control.Open(); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to open RFeatureControl connection during initial feature publishing: error = %d"),err); + CleanupClosePushL( control ); + + // Make sure feature which is not supported exists + TInt supported = control.FeatureSupported( KDefaultUnsupportedUid ); + if( supported != KFeatureUnsupported && supported != KFeatureSupported ) + { + TBitFlags32 flags( 0 ); + flags.Set( EFeatureModifiable ); + flags.Set( EFeaturePersisted ); + TFeatureEntry entry( KDefaultUnsupportedUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to add feature during initial feature publishing: error = %d"),err); + } + else + { + err = control.SetFeature( KDefaultUnsupportedUid, EFalse, KDefaultData1 ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to set feature data during initial feature publishing: error = %d"),err); + } + + // Make sure feature which is supported exists + supported = control.FeatureSupported( KDefaultSupportedUid ); + if( supported != KFeatureUnsupported && supported != KFeatureSupported ) + { + TBitFlags32 flags( 0 ); + flags.Set( EFeatureSupported ); + flags.Set( EFeatureModifiable ); + flags.Set( EFeaturePersisted ); + TFeatureEntry entry( KDefaultSupportedUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to add feature during initial feature publishing: error = %d"),err); + } + else + { + err = control.SetFeature( KDefaultSupportedUid, ETrue, KDefaultData1 ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to set feature data during initial feature publishing: error = %d"),err); + } + + // Make sure feature which is modifiable exists + supported = control.FeatureSupported( KModifiableUid ); + if( supported != KFeatureUnsupported && supported != KFeatureSupported ) + { + TBitFlags32 flags( 0 ); + flags.Set( EFeatureSupported ); + flags.Set( EFeatureModifiable ); + flags.Set( EFeaturePersisted ); + TFeatureEntry entry( KModifiableUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to add feature during initial feature publishing: error = %d"),err); + } + else + { + err = control.SetFeature( KModifiableUid, ETrue, KDefaultData1 ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to set feature data during initial feature publishing: error = %d"),err); + } + + // Make sure feature which is unmodifiable exists + supported = control.FeatureSupported( KUnmodifiableUid ); + if( supported != KFeatureUnsupported && supported != KFeatureSupported ) + { + TBitFlags32 flags( 0 ); + flags.Set( EFeatureSupported ); + TFeatureEntry entry( KUnmodifiableUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTE(err==KErrNone,err); + } + + // Make sure uninitialized feature exists + supported = control.FeatureSupported( KUninitializedUid ); + if( supported != KFeatureUnsupported && supported != KFeatureSupported + && supported != KErrNotReady ) + { + TBitFlags32 flags( 0 ); + flags.Set( EFeatureUninitialized ); + flags.Set( EFeatureModifiable); + TFeatureEntry entry( KUninitializedUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to add feature during initial feature publishing: error = %d"),err); + } + + //Make sure that persisted feature exists + + supported = control.FeatureSupported(KPersistedUid); + if(supported != KFeatureUnsupported && supported != KFeatureSupported) + { + TBitFlags32 flags( 0 ); + //flags.Set( EFeatureSupported ); + flags.Set( EFeaturePersisted ); + TFeatureEntry entry( KPersistedUid, flags, KDefaultData1 ); + err = control.AddFeature( entry ); + TESTDIAGNOSTICERROR(err==KErrNone, + _L("Failed to add feature during initial feature publishing: error = %d"),err); + } + + + CleanupStack::PopAndDestroy( &control ); + + return TestStepResult(); +} + +TVerdict CEFMConfigurableTestStepBase::doTestStepPreambleL() +{ + //read wether this test step is a OOM test + GetBoolFromConfig(ConfigSection(), KTestOOM, iOOM); + + //read wether this test step is a Low-capability test + GetBoolFromConfig(ConfigSection(), KTestLowCap, iLowCap); + + return TestStepResult(); +} + +void CEFMConfigurableTestStepBase::CheckCondition(TBool aMainCondition, TBool aOOMCondition, TPtrC aLoggingMessage, TInt aErrorCode) +{ + TBool cond = iOOM?aMainCondition||aOOMCondition:aMainCondition; + if (!cond) + { + ERR_PRINTF2( aLoggingMessage, aErrorCode ); + SetTestStepResult(EFail); + } +}