diff -r 667e88a979d7 -r 31a8f755b7fe loggingservices/eventlogger/test/inc/TEST.H --- a/loggingservices/eventlogger/test/inc/TEST.H Mon Mar 15 12:46:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,347 +0,0 @@ -// Copyright (c) 2002-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: -// - -#ifndef __TEST_H__ -#define __TEST_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "LogChangeDefinition.h" -#include "LogServShared.h" -#include "LogCliServShared.h" -#include -#include "t_logservsession.h" -#include "logcntdef.h" - -#ifdef LOGGING_ENABLED - -#include -#include - - - -_LIT(KLogFileName, "LogEng.txt"); -_LIT(KLogFolder, "LogEng"); -_LIT(KTimeFormat, "%02d.%02d:%02d:%06d "); -_LIT(KTextFormat, "%S"); -const TInt KLogEngLogBufferSize = 256; - -class Log : public RFileLogger - { -public: - static void New(); - static void Write(const TDesC& aText); - static void WriteFormat(TRefByValue aFmt, ...); -private: - static void PruneLogFile(); - }; - -#define LOGNEW Log::New() -#define LOGTEXT(AAA) { _LIT(KString, AAA); Log::Write(KString); } -#define LOGTEXT2(AAA, BBB) { _LIT(KString, AAA); Log::WriteFormat(TRefByValue(KString()), BBB); } -#define LOGTEXT3(AAA, BBB, CCC) { _LIT(KString, AAA); Log::WriteFormat(TRefByValue(KString()), BBB, CCC); } -#define LOGTEXT4(AAA, BBB, CCC, DDD) { _LIT(KString, AAA); Log::WriteFormat(TRefByValue(KString()), BBB, CCC, DDD); } - -#else//LOGGING_ENABLED - -#define LOGNEW -#define LOGTEXT(AAA) -#define LOGTEXT2(AAA, BBB) -#define LOGTEXT3(AAA, BBB, CCC) -#define LOGTEXT4(AAA, BBB, CCC, DDD) - -#endif//LOGGING_ENABLED - -//====================================================================================================== - -#define TEST_STRING(s) _S(s) - -//====================================================================================================== - -//TheTest object must be defined in the main test cpp file. -GLREF_D RTest test; - -void LogTestBoolExpr(TBool aRes, const TText* aFile, TInt aLine); -void LogCheck(TInt aValue, TInt aExpected, const TText* aFile, TInt aLine); -void LogCheckU(TUint aValue, TUint aExpected, const TText* aFile, TInt aLine); - -#define TEST(arg) LogTestBoolExpr(arg, TEST_STRING(__FILE__), __LINE__) -#define TEST2(aValue, aExpected) LogCheck(aValue, aExpected, TEST_STRING(__FILE__), __LINE__) -#define TEST2U(aValue, aExpected) LogCheckU(aValue, aExpected, TEST_STRING(__FILE__), __LINE__) - -//====================================================================================================== - -void LogLeave(TInt aErr, const TText* aFile, TInt aLine); - -#define LEAVE(err) LogLeave(err, TEST_STRING(__FILE__), __LINE__) -#define LEAVE_IF_ERROR(err) do {if(err < KErrNone) LogLeave(err, TEST_STRING(__FILE__), __LINE__);} while(0) - -//====================================================================================================== - -void LogPanic(const TDesC& aCategory, TInt aErr, const TText* aFile, TInt aLine); - -#define PANIC(cat, err) LogPanic(cat, err, TEST_STRING(__FILE__), __LINE__) - -//====================================================================================================== - -// Globals -GLREF_D CTrapCleanup* theCleanup; -GLREF_D CActiveScheduler *testScheduler; -GLREF_D RFs theFs; -GLREF_D TFileName theLogName; -GLREF_D RFile theLog; -GLREF_D RLogTestSession theLogServ; - -#define __FILE_FAILNEXT(X) theFs.SetErrorCondition(KErrGeneral, X) -#define __FILE_RESET theFs.SetErrorCondition(KErrNone, 0) - -#if defined(_UNICODE) - _LIT(KLogDatabaseName,"c:\\private\\101f401d\\Logdbu.dat"); -#else - _LIT(KLogDatabaseName,"c:\\private\\101f401d\\Logdb.dat"); -#endif - - -//********************************** -// CTestActive -//********************************** - -class CTestActive : public CActive - { -public: - CTestActive(TInt aPriority = EPriorityIdle-100); - ~CTestActive(); - void StartL(); - void StartL(TInt); -protected: - void DoCancel(); - void RunL(); -private: - TBool iDelayCompletion; - TRequestStatus iStoredStatus; - TInt iDelayTime; - }; - -void doTestsL(); - - -//********************************** -// CTestTimer -//********************************** - -class CTestTimer : public CTimer - { -public: - static CTestTimer* NewL(); -private: - CTestTimer(); - void RunL(); - }; - -//********************************** -// TestUtils -//********************************** - -class TestUtils - { -public: - static void Initialize(const TDesC& aName); - static void DeleteDatabaseL(TBool aCloseBeforeDelete = ETrue); - static HBufC* CreateBufLC(TInt aLength); - static HBufC8* CreateBuf8LC(TInt aLength); - static TBool FiltersEqual(const CLogFilter& aFilter1, const CLogFilter& aFilter2); - static TBool EventsEqual(const CLogEvent& aEvent1, const CLogEvent& aEvent2); - static TBool TypesEqual(const CLogEventType& aType1, const CLogEventType& aType2); - static TBool WaitForKeyL(TTimeIntervalMicroSeconds32 aDelay, TKeyCode& aKeyCode); - static TBool FileExists(const TDesC& aFile); - static void SetLogServHeapFailureL(RHeap::TAllocFail aType, TInt aRate); - static TBool IsDatabaseOpenL(); - static TInt DatabaseSizeL(); - static TInt AddEventL(); - static void AddViewTestEventsL(); - static void AddEventTypeL(); - static void CopyCorruptDbL(); - static void CopyCorruptDamagedDbL(); - static void CopyOldDbL(); - static void TestInvalidSchemaL(); - static TBool MatchingEnabledL(); - -private: - // starts t_HiCapHelper.exe which has sufficient capability - static TInt ExecuteRemoteL(const TDesC& aCommandLineArg); - }; - -#define __LOGSERV_UHEAP_FAILNEXT(X) TestUtils::SetLogServHeapFailureL(RHeap::EFailNext, X) -#define __LOGSERV_UHEAP_RESET TestUtils::SetLogServHeapFailureL(RHeap::ENone, 0) - -//********************************** -// CLogViewChangeObserver -//********************************** - -class CLogViewChangeObserver : public CActive, public MLogViewChangeObserver - { -public: - enum TStopType - { - EStopOnChanges = 0, - EStopOnRunL, - EStopOnBoth, - EStopOnCount, - EDontStopScheduler - }; -public: - static CLogViewChangeObserver* NewLC(); - ~CLogViewChangeObserver(); - -protected: - CLogViewChangeObserver(); - -public: - inline void StartCollectingChanges() - { - Reset(); - iType = EDontStopScheduler; - } - CLogChangeDefinition* WaitForChangesLC(TStopType aType = EStopOnChanges, TInt aCount = 0); - CLogChangeDefinition* WaitForChangesLC(TCallBack aCallBack, TStopType aType, TInt aCount = 0); - inline TBool HaveChanges() const - { - return iChanges != NULL; - } - inline const CLogChangeDefinition& Changes() const - { - __ASSERT_ALWAYS(iChanges, User::Invariant()); - return *iChanges; - } - inline void SetActive() - { - CActive::SetActive(); - iStatus = KRequestPending; - } - inline void ResetChanges() - { - __ASSERT_ALWAYS(iChanges, User::Invariant()); - iChanges->Reset(); - } - -public: - void HandleLogViewChangeEventAddedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); - void HandleLogViewChangeEventChangedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); - void HandleLogViewChangeEventDeletedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); - -private: - void RunL(); - void DoCancel(); - -private: - void Reset(); - -protected: - void CheckForSchedulerStop(); - void AddChangeL(TLogDatabaseChangeType aType, TLogId aId, TInt aViewIndex); - -private: - TInt iExpectedChangeCount; - TBool iHaveFinishedOperation; - TBool iHaveObtainedChanges; - TBool iSchedulerStarted; - TStopType iType; - CLogChangeDefinition* iChanges; - TBool iHaveCallBack; - TCallBack iCallBack; - }; - -//********************************** -// CLogViewChangeObserverErrorTest -//********************************** - -class CLogViewChangeObserverErrorTest : public CLogViewChangeObserver - { -public: - static CLogViewChangeObserverErrorTest* NewLC(); - -private: - CLogViewChangeObserverErrorTest(); - -public: - void HandleLogViewChangeEventAddedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); - }; - - -//********************************** -// CLogSchedulerTimer -//********************************** - -class CLogSchedulerTimer : public CTimer - { -public: - static CLogSchedulerTimer* NewLC(); - ~CLogSchedulerTimer(); - -private: - CLogSchedulerTimer(); - void ConstructL(); - -public: - void Wait(TTimeIntervalMicroSeconds32 aTime); - -private: - void RunL(); - }; - -//********************************** -// CLogChangeNotifier -//********************************** - -class CLogChangeNotifier : public CActive - { -public: - static CLogChangeNotifier* NewL(); - ~CLogChangeNotifier(); - // -private: - CLogChangeNotifier(); - void ConstructL(); - // - void RunL(); - void DoCancel(); - // -private: - CLogClient* iClient; - TTime iStart; - }; - -//********************************** -// Global -//********************************** - -void SetupSchedulerL(); -void CloseScheduler(); -void doMainL(); -TInt E32Main(); -void DeleteDataFile(const TDesC& aFullName); -void LogCheck(TInt aValue, TInt aExpected, TInt aLine); -void LogCheckU(TUint aValue, TUint aExpected, TInt aLine); - -#endif//__TEST_H__