diff -r 000000000000 -r 08ec8eefde2f traceservices/tracefw/ulogger/unit_test/te-server/uloggerservertest0step.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/traceservices/tracefw/ulogger/unit_test/te-server/uloggerservertest0step.cpp Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,220 @@ +// Copyright (c) 2005-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: +// Example CTestStep derived implementation +// +// + +/** + @file UloggerServerTest0Step.cpp + @internalTechnology +*/ +#include "uloggerservertest0step.h" +#include "te_uloggerservertestsuitedefs.h" +#include "uloggerwatcher.h" + + + +CUloggerServerTest0Step::~CUloggerServerTest0Step() +/** + * Destructor + */ + { + } + +CUloggerServerTest0Step::CUloggerServerTest0Step() +/** + * Constructor + */ + { + // **MUST** call SetTestStepName in the constructor as the controlling + // framework uses the test step name immediately following construction to set + // up the step's unique logging ID. + SetTestStepName(KUloggerServerTest0Step); + } + +TVerdict CUloggerServerTest0Step::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + INFO_PRINTF1(_L("****This is unit test for CULoggerWatcher class****")); + + INFO_PRINTF1(_L("************************************************")); + INFO_PRINTF1(_L("Note: To test CUloggerServer properly we must:")); + INFO_PRINTF1(_L("- change UID3 for our test unit as we need access to server private directory")); + INFO_PRINTF1(_L("************************************************")); + + + iScheduler = new (ELeave) CActiveScheduler(); + CActiveScheduler::Install(iScheduler); + + SetTestStepResult(EPass); + return TestStepResult(); + } + + +TVerdict CUloggerServerTest0Step::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + * Our implementation only gets called if the base class doTestStepPreambleL() did + * not leave. That being the case, the current test result value will be EPass. + */ + { + iErrors = 0; + if (TestStepResult()==EPass) + { + iErrors += this->Test1L();//CULoggerWatcher::NewL + iErrors += this->Test2L();//CULoggerWatcher::NewLC + iErrors += this->Test3L();//CULoggerWatcher::StartWatching + iErrors += this->Test4L();//CULoggerWatcher::StopWatching + iErrors += this->Test5L();//CULoggerWatcher::RunL + + + //display results + TBuf<128> res; + res.AppendFormat(_L("%d errors"), iErrors); + INFO_PRINTF1(_L("****Results****")); + INFO_PRINTF1(res); + if(iErrors == 0) + SetTestStepResult(EPass); + else + SetTestStepResult(EFail); + } + + return TestStepResult(); + } + + + +TVerdict CUloggerServerTest0Step::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + delete iScheduler; + iScheduler = NULL; + return TestStepResult(); + } + + +TInt CUloggerServerTest0Step::Test1L() + { + TInt errors = 0; + INFO_PRINTF1(_L("Testing - CULoggerWatcher::NewL method")); + CULoggerWatcher *obj = CULoggerWatcher::NewL(); + if(obj == NULL) + { + INFO_PRINTF1(_L("error")); + errors++; + } + else + { + delete obj; + obj = NULL; + } + return errors; + } + +TInt CUloggerServerTest0Step::Test2L() + { + TInt errors = 0; + //CULoggerWatcher::NewLC + INFO_PRINTF1(_L("Testing - CULoggerWatcher::NewLC method")); + CULoggerWatcher *obj = CULoggerWatcher::NewLC(); + if(obj == NULL) + { + INFO_PRINTF1(_L("error")); + errors++; + } + else + CleanupStack::PopAndDestroy(); + return errors; + } + +TInt CUloggerServerTest0Step::Test3L() +{ + TInt errors = 0; + //CULoggerWatcher::StartWatching + INFO_PRINTF1(_L("Testing - CULoggerWatcher::StartWatching method")); + CULoggerWatcher *obj = CULoggerWatcher::NewL(); + /* + * We need to create service provider for active object (RTimer is good choice) + * */ + RTimer timer; + timer.CreateLocal(); + timer.After(obj->GetStatus(), 2*1000*1000); + obj->StartWatching(this); + obj->StopWatching(); + timer.Close(); + if(obj->GetStatus().Int() != KErrNone) + { + INFO_PRINTF1(_L("error")); + errors++; + } + delete obj; + return errors; +} + +TInt CUloggerServerTest0Step::Test4L() +{ + TInt errors = 0; + //CULoggerWatcher::StopWatching + INFO_PRINTF1(_L("Testing - CULoggerWatcher::StopWatching method")); + CULoggerWatcher *obj = CULoggerWatcher::NewL(); + RTimer timer; + timer.CreateLocal(); + timer.After(obj->GetStatus(), 2*1000*1000); + obj->StartWatching(this); + obj->StopWatching(); + timer.Close(); + TBuf<128> buf; + buf.AppendFormat(_L("Result of Stopping: %d"), obj->GetStatus().Int()); + INFO_PRINTF1(buf); + if(obj->GetStatus().Int() != KErrNone) + { + INFO_PRINTF1(_L("error")); + errors++; + } + delete obj; + + return errors; +} + +TInt CUloggerServerTest0Step::Test5L() +{ + TInt errors = 0; + //CULoggerWatcher::RunL + INFO_PRINTF1(_L("Testing - CULoggerWatcher::RunL method")); + CULoggerWatcher *obj = CULoggerWatcher::NewL(); + RTimer timer; + timer.CreateLocal(); + timer.After(obj->GetStatus(), 2*1000*1000); + obj->StartWatching(this); //CULogger watcher must have observer initialized + //becouse testing null pointer is not allowed + obj->StopWatching(); + timer.Close(); + TRAPD(err, obj->RunL()); + if(err != KErrNone) + { + INFO_PRINTF1(_L("error")); + errors++; + } + delete obj; + + return errors; +} +