sl@0: // Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include sl@0: #include sl@0: #include "t_logutil2.h" sl@0: sl@0: RTest TheTest(_L("t_logheap")); sl@0: sl@0: const TUid KTestEventUid = {0x10005393}; sl@0: _LIT(KTestEventDesc1, "Event Type Description"); sl@0: _LIT(KTestEventDesc2, "Changed Event Description"); sl@0: _LIT(KTestRemoteParty1, "Remote Party"); sl@0: _LIT(KTestRemoteParty2, "Changed Remote Party"); sl@0: _LIT(KTestDirection1, "Direction"); sl@0: _LIT(KTestDirection2, "Changed Direction"); sl@0: const TLogDurationType KTestDurationType1 = 1; sl@0: const TLogDurationType KTestDurationType2 = 2; sl@0: const TLogDuration KTestDuration1 = 0x1234; sl@0: const TLogDuration KTestDuration2 = 0x1234567; sl@0: _LIT(KTestStatus1, "Status"); sl@0: _LIT(KTestStatus2, "Changed Status"); sl@0: _LIT(KTestSubject1, "Subject"); sl@0: _LIT(KTestSubject2, "Changed Subject"); sl@0: _LIT(KTestNumber1, "Number"); sl@0: _LIT(KTestNumber2, "Changed Number"); sl@0: const TLogContactItemId KTestContact1 = 0x1234; sl@0: const TLogContactItemId KTestContact2 = 0x1234567; sl@0: const TLogLink KTestLink1 = 0x1234; sl@0: const TLogLink KTestLink2 = 0x1234567; sl@0: _LIT8(KTestData1, "ABCDEFGH"); sl@0: _LIT8(KTestData2, "IJKLMNOPQRSTUVWXYZ"); sl@0: const TLogSize KTestMaxLogSize = 0xFFF; sl@0: const TLogRecentSize KTestMaxRecentLogSize = 0xF; sl@0: const TLogAge KTestMaxEventAge = 0xFFFFFFF; sl@0: sl@0: _LIT(KCreateDb, "Create Db"); sl@0: _LIT(KOpenDb, "Open Db"); sl@0: sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: _LIT(KServerSide, "server side"); sl@0: _LIT(KClientSide, "client side"); sl@0: #endif sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0884 sl@0: @SYMTestCaseDesc Tests for functionality of CLogEvent,CTestActive classes sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for no memory errors. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestStartup1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0884 ")); sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: event->SetEventType(KLogCallEventTypeUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TBool finished = EFalse; sl@0: TInt failCount = 0; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->ChangeEvent(*event, active->iStatus); sl@0: __UHEAP_RESET; sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: { sl@0: finished = ETrue; sl@0: } sl@0: else sl@0: { sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: } sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(3); // client, active, event sl@0: TheTest.Printf(_L("===CLogClient::ChangeEvent() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0885 sl@0: @SYMTestCaseDesc Tests for CLogEvent,CTestActive classes sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for all basic functions of CLogEvent,CTestActive classes.Check for ErrNone flag. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestBasicL(CLogClient& aClient) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0885 ")); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: event->SetEventType(KLogCallEventTypeUid); sl@0: sl@0: active->StartL(); sl@0: aClient.AddEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->EventType() == KLogCallEventTypeUid); sl@0: TEST(event->Description().Length() > 0); sl@0: TEST(event->Time() >= now); sl@0: now = event->Time(); sl@0: sl@0: TLogId id = event->Id(); sl@0: sl@0: event->SetRemoteParty(KTestRemoteParty1); sl@0: event->SetDirection(KTestDirection1); sl@0: event->SetDurationType(KTestDurationType1); sl@0: event->SetDuration(KTestDuration1); sl@0: event->SetStatus(KTestStatus1); sl@0: event->SetSubject(KTestSubject1); sl@0: event->SetNumber(KTestNumber1); sl@0: event->SetContact(KTestContact1); sl@0: event->SetLink(KTestLink1); sl@0: event->SetDataL(KTestData1); sl@0: sl@0: active->StartL(); sl@0: aClient.ChangeEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == id); sl@0: TEST(event->EventType() == KLogCallEventTypeUid); sl@0: TEST(event->Description().Length() > 0); sl@0: TEST(event->Time() == now); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: sl@0: CleanupStack::PopAndDestroy(); // event; sl@0: sl@0: event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: event->SetId(id); sl@0: sl@0: active->StartL(); sl@0: aClient.GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == id); sl@0: TEST(event->EventType() == KLogCallEventTypeUid); sl@0: TEST(event->Description().Length() > 0); sl@0: TEST(event->Time() == now); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: sl@0: active->StartL(); sl@0: aClient.DeleteEvent(id, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: aClient.GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(2, active); // event, active sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0886 sl@0: @SYMTestCaseDesc Tests for new CLogClient object creation sl@0: @SYMTestPriority High sl@0: @SYMTestActions Create a CLogClient object on heap.Check for memory errors sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestConstruction1L(TBool aCreateDb) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0886 ")); sl@0: sl@0: if(aCreateDb) sl@0: { sl@0: TestUtils::DeleteDatabaseL(); sl@0: } sl@0: sl@0: CLogClient* client = NULL; sl@0: TInt failCount = 0; sl@0: sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: sl@0: TRAP(error, client = CLogClient::NewL(theFs)); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: finished = ETrue; sl@0: TestBasicL(*client); sl@0: } sl@0: else sl@0: TEST2(error, KErrNoMemory); sl@0: } sl@0: sl@0: delete client; sl@0: TheTest.Printf(_L("==CLogClient::NewL()+\"%S\" client side OOM test succeeded at iteration %d\n"), aCreateDb ? &KCreateDb : &KOpenDb, failCount); sl@0: } sl@0: sl@0: /**s sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0887 sl@0: @SYMTestCaseDesc Tests for creation of new CLogClient object sl@0: @SYMTestPriority High sl@0: @SYMTestActions Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestConstruction3L(TBool aCreateDb) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0887 ")); sl@0: sl@0: if(aCreateDb) sl@0: { sl@0: TestUtils::DeleteDatabaseL(); sl@0: } sl@0: sl@0: CLogClient* client = NULL; sl@0: sl@0: TInt failCount = 0; sl@0: sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: sl@0: TRAP(error, client = CLogClient::NewL(theFs)); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: finished = ETrue; sl@0: TestBasicL(*client); sl@0: } sl@0: else sl@0: TEST2(error, KErrNoMemory); sl@0: } sl@0: sl@0: delete client; sl@0: TheTest.Printf(_L("==CLogClient::NewL()+\"%S\" server side OOM test succeeded at iteration %d\n"), aCreateDb ? &KCreateDb : &KOpenDb, failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0888 sl@0: @SYMTestCaseDesc Tests for CLogClient::AddEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for adding events to the log sl@0: Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestAddEventType1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0888 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetLoggingEnabled(ETrue); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->AddEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->AddEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrAlreadyExists); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // active, type, client sl@0: TheTest.Printf(_L("===CLogClient::AddEventType() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0889 sl@0: @SYMTestCaseDesc Tests for CLogClient::AddEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for adding events to the log sl@0: Check for memory errors and error in the environment sl@0: Test for adding the same event and check for already exits error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestAddEventType3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0889 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetLoggingEnabled(ETrue); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TInt failCount = 0; sl@0: sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->AddEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->AddEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrAlreadyExists); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // active, type, client sl@0: TheTest.Printf(_L("===CLogClient::AddEventType() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0890 sl@0: @SYMTestCaseDesc Tests for CLogClient::GetEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for getting event type for the specific UID from the log sl@0: Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetEventType1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0890 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->GetEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: { sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: TEST(type->Description() == KNullDesC); sl@0: } sl@0: sl@0: __UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(type->Uid() == KTestEventUid); sl@0: TEST(type->Description() == KTestEventDesc1); sl@0: TEST(type->LoggingEnabled()); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // active, type, client sl@0: TheTest.Printf(_L("===CLogClient::GetEventType() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0891 sl@0: @SYMTestCaseDesc Tests for CLogClient::GetEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for getting event type for the specific UID from the log sl@0: Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetEventType3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0891 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->GetEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: { sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: TEST(type->Description() == KNullDesC); sl@0: } sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(type->Uid() == KTestEventUid); sl@0: TEST(type->Description() == KTestEventDesc1); sl@0: TEST(type->LoggingEnabled()); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // active, type, client sl@0: TheTest.Printf(_L("===CLogClient::GetEventType() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0892 sl@0: @SYMTestCaseDesc Tests for CLogClient::ChangeEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for changing the event type sl@0: Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeEventType1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0892 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetDescription(KTestEventDesc2); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: type->SetDescription(KTestEventDesc2); sl@0: type->SetLoggingEnabled(EFalse); sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->ChangeEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(type->Description() == KTestEventDesc1); sl@0: TEST(type->LoggingEnabled()); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(type->Uid() == KTestEventUid); sl@0: TEST(type->Description() == KTestEventDesc2); sl@0: TEST(type->LoggingEnabled() == EFalse); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // type, active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeEventType() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0893 sl@0: @SYMTestCaseDesc Tests for CLogClient::ChangeEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for changing the event type. sl@0: Check for memory errors and error in the environment sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeEventType3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0893 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetDescription(KTestEventDesc2); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: type->SetDescription(KTestEventDesc2); sl@0: type->SetLoggingEnabled(EFalse); sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->ChangeEventType(*type, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(type->Description() == KTestEventDesc1); sl@0: TEST(type->LoggingEnabled()); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(type->Uid() == KTestEventUid); sl@0: TEST(type->Description() == KTestEventDesc2); sl@0: TEST(type->LoggingEnabled() == EFalse); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // type, active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeEventType() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0894 sl@0: @SYMTestCaseDesc Tests for CLogClient::DeleteEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for deleting of event type. sl@0: After deletion check by trying to retrieve the event. sl@0: Check for ErrNotFound,error flag sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestDeleteEventType1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0894 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->DeleteEventType(KTestEventUid, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // type, active, client sl@0: TheTest.Printf(_L("===CLogClient::DeleteEventType() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0895 sl@0: @SYMTestCaseDesc Tests for CLogClient::DeleteEventType() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for deleting of event type. sl@0: After deletion check by trying to retrieve the event. sl@0: Check for ErrNotFound,error flag. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestDeleteEventType3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0895 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: sl@0: TInt failCount = 0; sl@0: sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->DeleteEventType(KTestEventUid, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // type, active, client sl@0: TheTest.Printf(_L("===CLogClient::DeleteEventType() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0896 sl@0: @SYMTestCaseDesc Tests for adding event CLogClient::AddEvent() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Add logeventtype and logevent to the log sl@0: Tests for memory errors and environment errors. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestAddEvent1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0896 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetLoggingEnabled(ETrue); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: active->StartL(); sl@0: client->AddEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: event->SetEventType(KTestEventUid); sl@0: event->SetRemoteParty(KTestRemoteParty1); sl@0: event->SetDirection(KTestDirection1); sl@0: event->SetDurationType(KTestDurationType1); sl@0: event->SetDuration(KTestDuration1); sl@0: event->SetStatus(KTestStatus1); sl@0: event->SetSubject(KTestSubject1); sl@0: event->SetNumber(KTestNumber1); sl@0: event->SetContact(KTestContact1); sl@0: event->SetLink(KTestLink1); sl@0: event->SetDataL(KTestData1); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->AddEvent(*event, active->iStatus); sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if(error != KErrNoMemory) sl@0: { sl@0: TEST2(error, KErrNone); sl@0: } sl@0: } sl@0: sl@0: TEST(event->Time() >= now); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CleanupStack::PopAndDestroy(4, client); // event, active, type, client sl@0: TheTest.Printf(_L("===CLogClient::AddEvent() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0897 sl@0: @SYMTestCaseDesc Tests for adding event CLogClient::AddEvent() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Add logeventtype and logevent to the log sl@0: Tests for memory errors and environment errors. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestAddEvent3L() sl@0: { sl@0: sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0897 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CLogEventType* type = CLogEventType::NewL(); sl@0: CleanupStack::PushL(type); sl@0: sl@0: type->SetUid(KTestEventUid); sl@0: type->SetDescription(KTestEventDesc1); sl@0: type->SetLoggingEnabled(ETrue); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: active->StartL(); sl@0: client->AddEventType(*type, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: event->SetEventType(KTestEventUid); sl@0: event->SetRemoteParty(KTestRemoteParty1); sl@0: event->SetDirection(KTestDirection1); sl@0: event->SetDurationType(KTestDurationType1); sl@0: event->SetDuration(KTestDuration1); sl@0: event->SetStatus(KTestStatus1); sl@0: event->SetSubject(KTestSubject1); sl@0: event->SetNumber(KTestNumber1); sl@0: event->SetContact(KTestContact1); sl@0: event->SetLink(KTestLink1); sl@0: event->SetDataL(KTestData1); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->AddEvent(*event, active->iStatus); sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if(error != KErrNoMemory) sl@0: { sl@0: TEST2(error, KErrNone); sl@0: } sl@0: } sl@0: sl@0: TEST(event->Time() >= now); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CleanupStack::PopAndDestroy(4, client); // event, active, type, client sl@0: TheTest.Printf(_L("===CLogClient::AddEvent() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0898 sl@0: @SYMTestCaseDesc Tests for retrieving details of an event sl@0: Tests for CLogClient::GetEvent() function. sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for getting event details.Check for memory errors and error in the environment sl@0: Tests for the integrity of the information sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetEvent1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0898 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: event->SetId(0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->GetEvent(*event, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: sl@0: __UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() > TTime(0)); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::AddEvent() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0899 sl@0: @SYMTestCaseDesc Tests for retrieving details of an event.Tests for CLogClient::GetEventL() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for getting event details of UID 0.Check for memory errors and error in the environment sl@0: Tests for the integrity of the information sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetEvent3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0899 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: event->SetId(0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->GetEvent(*event, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() > TTime(0)); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::GetEvent() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0900 sl@0: @SYMTestCaseDesc Tests for changing the log event details. sl@0: Tests for CLogClient::ChangeEvent() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for changing the event details.Check for memory errors and error in the environment sl@0: If no memory error,get the event details and check for the integrity. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeEvent3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0900 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: event->SetId(0); sl@0: event->SetTime(now); sl@0: event->SetRemoteParty(KTestRemoteParty2); sl@0: event->SetDirection(KTestDirection2); sl@0: event->SetDurationType(KTestDurationType2); sl@0: event->SetDuration(KTestDuration2); sl@0: event->SetStatus(KTestStatus2); sl@0: event->SetSubject(KTestSubject2); sl@0: event->SetNumber(KTestNumber2); sl@0: event->SetContact(KTestContact2); sl@0: event->SetLink(KTestLink2); sl@0: event->SetDataL(KTestData2); sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->ChangeEvent(*event, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() > TTime(0)); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() == now); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty2); sl@0: TEST(event->Direction() == KTestDirection2); sl@0: TEST(event->DurationType() == KTestDurationType2); sl@0: TEST(event->Duration() == KTestDuration2); sl@0: TEST(event->Status() == KTestStatus2); sl@0: TEST(event->Subject() == KTestSubject2); sl@0: TEST(event->Number() == KTestNumber2); sl@0: TEST(event->Contact() == KTestContact2); sl@0: TEST(event->Link() == KTestLink2); sl@0: TEST(event->Data() == KTestData2); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeEvent() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0901 sl@0: @SYMTestCaseDesc Tests for changing the log event details.Tests for CLogClient::ChangeEvent() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for changing the event details.Check for memory errors and error in the environment sl@0: If no memory error,get the event details and check for the integrity. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeEvent1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0901 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: event->SetId(0); sl@0: event->SetTime(now); sl@0: event->SetRemoteParty(KTestRemoteParty2); sl@0: event->SetDirection(KTestDirection2); sl@0: event->SetDurationType(KTestDurationType2); sl@0: event->SetDuration(KTestDuration2); sl@0: event->SetStatus(KTestStatus2); sl@0: event->SetSubject(KTestSubject2); sl@0: event->SetNumber(KTestNumber2); sl@0: event->SetContact(KTestContact2); sl@0: event->SetLink(KTestLink2); sl@0: event->SetDataL(KTestData2); sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->ChangeEvent(*event, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() > TTime(0)); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty1); sl@0: TEST(event->Direction() == KTestDirection1); sl@0: TEST(event->DurationType() == KTestDurationType1); sl@0: TEST(event->Duration() == KTestDuration1); sl@0: TEST(event->Status() == KTestStatus1); sl@0: TEST(event->Subject() == KTestSubject1); sl@0: TEST(event->Number() == KTestNumber1); sl@0: TEST(event->Contact() == KTestContact1); sl@0: TEST(event->Link() == KTestLink1); sl@0: TEST(event->Data() == KTestData1); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(event->Id() == 0); sl@0: TEST(event->Time() == now); sl@0: TEST(event->Description() == KTestEventDesc1); sl@0: TEST(event->EventType() == KTestEventUid); sl@0: TEST(event->RemoteParty() == KTestRemoteParty2); sl@0: TEST(event->Direction() == KTestDirection2); sl@0: TEST(event->DurationType() == KTestDurationType2); sl@0: TEST(event->Duration() == KTestDuration2); sl@0: TEST(event->Status() == KTestStatus2); sl@0: TEST(event->Subject() == KTestSubject2); sl@0: TEST(event->Number() == KTestNumber2); sl@0: TEST(event->Contact() == KTestContact2); sl@0: TEST(event->Link() == KTestLink2); sl@0: TEST(event->Data() == KTestData2); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeEvent() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0902 sl@0: @SYMTestCaseDesc Tests for deleting an event from the main event log.Tests for CLogClient::DeleteEvent() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for deleting an event with unique ID of 0,check for any memory errors sl@0: Try to get the deleted event and test for not found error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestDeleteEvent1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0902 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: event->SetId(0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->DeleteEvent(0, active->iStatus); sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: } sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(3); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::DeleteEvent() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0903 sl@0: @SYMTestCaseDesc Tests for deleting an event from the main event log sl@0: @SYMTestPriority High sl@0: @SYMTestActions Tests for deleting an event with unique ID of 0,check for any memory errors sl@0: Try to get the deleted event and test for not found error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestDeleteEvent3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0903 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event); sl@0: sl@0: event->SetId(0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->DeleteEvent(0, active->iStatus); sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: } sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(3, client); // event, active, client sl@0: TheTest.Printf(_L("===CLogClient::DeleteEvent() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0904 sl@0: @SYMTestCaseDesc Tests for CLogClient::GetConfig() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Set the configuration data with zero values. sl@0: Get the log engine configuration data,check for any memory errors. sl@0: Tests for the integrity of the data sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetConfig1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0904 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TLogConfig config; sl@0: sl@0: TEST(config.iMaxEventAge == 0); sl@0: TEST(config.iMaxLogSize == 0); sl@0: TEST(config.iMaxRecentLogSize == 0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->GetConfig(config, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: sl@0: __UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(config.iMaxEventAge > 0); sl@0: TEST(config.iMaxLogSize > 0); sl@0: TEST(config.iMaxRecentLogSize > 0); sl@0: sl@0: CleanupStack::PopAndDestroy(2, client); // active, client sl@0: TheTest.Printf(_L("===CLogClient::GetConfig() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0905 sl@0: @SYMTestCaseDesc Tests for CLogClient::GetConfig() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Set the configuration data with zero values. sl@0: Get the log engine configuration data,check for any memory errors. sl@0: Tests for the integrity of the data sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetConfig3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0905 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TLogConfig config; sl@0: sl@0: TEST(config.iMaxEventAge == 0); sl@0: TEST(config.iMaxLogSize == 0); sl@0: TEST(config.iMaxRecentLogSize == 0); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->GetConfig(config, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: } sl@0: sl@0: TEST(config.iMaxEventAge > 0); sl@0: TEST(config.iMaxLogSize > 0); sl@0: TEST(config.iMaxRecentLogSize > 0); sl@0: sl@0: CleanupStack::PopAndDestroy(2, client); // active, client sl@0: TheTest.Printf(_L("===CLogClient::GetConfig() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0906 sl@0: @SYMTestCaseDesc Tests for CLogClient::ChangeConfig() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Get the configuration data and store in temporary object. sl@0: Set the new configuration data and change the log engine configuration,check for no memory error sl@0: If no memory error,get the configuration data and test for the new changes of the data with the old data. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeConfig1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0906 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TLogConfig configOld; sl@0: sl@0: active->StartL(); sl@0: client->GetConfig(configOld, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TLogConfig config; sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: config.iMaxLogSize = KTestMaxLogSize; sl@0: config.iMaxRecentLogSize = KTestMaxRecentLogSize; sl@0: config.iMaxEventAge = KTestMaxEventAge; sl@0: sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: client->ChangeConfig(config, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetConfig(config, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(config.iMaxLogSize == configOld.iMaxLogSize); sl@0: TEST(config.iMaxRecentLogSize == configOld.iMaxRecentLogSize); sl@0: TEST(config.iMaxEventAge == configOld.iMaxEventAge); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: TEST(config.iMaxLogSize == KTestMaxLogSize); sl@0: TEST(config.iMaxRecentLogSize == KTestMaxRecentLogSize); sl@0: TEST(config.iMaxEventAge == KTestMaxEventAge); sl@0: sl@0: CleanupStack::PopAndDestroy(2, client); // active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeConfig() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0907 sl@0: @SYMTestCaseDesc Tests for CLogClient::ChangeConfig() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Get the configuration data and store in temporary object. sl@0: Set the new configuration data and change the log engine configuration,check for no memory error sl@0: If no memory error,get the configuration data and test for the new changes of the data with the old data. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestChangeConfig3L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0907 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: TLogConfig configOld; sl@0: sl@0: active->StartL(); sl@0: client->GetConfig(configOld, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TLogConfig config; sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: error = KErrNone; sl@0: sl@0: config.iMaxLogSize = KTestMaxLogSize; sl@0: config.iMaxRecentLogSize = KTestMaxRecentLogSize; sl@0: config.iMaxEventAge = KTestMaxEventAge; sl@0: sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: client->ChangeConfig(config, active->iStatus); sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: error = active->iStatus.Int(); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: if (error == KErrNoMemory) sl@0: { sl@0: active->StartL(); sl@0: client->GetConfig(config, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TEST(config.iMaxLogSize == configOld.iMaxLogSize); sl@0: TEST(config.iMaxRecentLogSize == configOld.iMaxRecentLogSize); sl@0: TEST(config.iMaxEventAge == configOld.iMaxEventAge); sl@0: } sl@0: else sl@0: TEST2(error, KErrNone); sl@0: } sl@0: sl@0: TEST(config.iMaxLogSize == KTestMaxLogSize); sl@0: TEST(config.iMaxRecentLogSize == KTestMaxRecentLogSize); sl@0: TEST(config.iMaxEventAge == KTestMaxEventAge); sl@0: sl@0: CleanupStack::PopAndDestroy(2, client); // active, client sl@0: TheTest.Printf(_L("===CLogClient::ChangeConfig() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0908 sl@0: @SYMTestCaseDesc Tests for CLogClient::GetString() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Get the standard string name from the resource. sl@0: Tests for no memory error and null string. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestGetString1L() sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0908 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: TBuf str; sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: TInt error; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: sl@0: error = client->GetString(str, R_LOG_DIR_IN); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: finished = ETrue; sl@0: TEST(str.Length() > 0); sl@0: } sl@0: else sl@0: { sl@0: TEST2(error, KErrNoMemory); sl@0: TEST(str.Length() == 0); sl@0: } sl@0: } sl@0: CleanupStack::PopAndDestroy(client); sl@0: TheTest.Printf(_L("===CLogClient::GetString() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0909 sl@0: @SYMTestCaseDesc Tests for CLogClient::ClearLog() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Add 4 events to the event log,check for no errors sl@0: Clear the log by calling ClearLog function. sl@0: Try for getting the before added 4 events and check for not found error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestClearEventLog1L(TBool aMicroSeconds) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0909 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: TDateTime dt(now.DateTime()); sl@0: if(!aMicroSeconds) sl@0: dt.SetMicroSecond(0); sl@0: dt.SetYear(dt.Year() - 1); sl@0: TTime date1(dt); sl@0: sl@0: dt.SetYear(dt.Year() - 1); sl@0: TTime date2(dt); sl@0: sl@0: TTime ClearThreshold(date1); sl@0: ClearThreshold -= TTimeIntervalSeconds(1); sl@0: /*need to use set the clear threshold (at least 1 sec) before the date of event 1,2. sl@0: Otherwise the test will fail if now happens to occur at 0 microseconds (e.g the sl@0: last 6 digit of now is 0) */ sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event1 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event1); sl@0: event1->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event1->SetTime(date1); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event2 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event2); sl@0: event2->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event2->SetTime(date1); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event3 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event3); sl@0: event3->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event3->SetTime(date2); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event4 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event4); sl@0: event4->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event4->SetTime(date2); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->ClearLog(ClearThreshold, active->iStatus); sl@0: sl@0: __UHEAP_RESET; sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: if (active->iStatus != KErrNone) sl@0: TheTest.Printf(_L("error code:%d failcoount:%d\n"),active->iStatus.Int(),failCount); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->ClearLog(now, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(6, client); // event4, event3, event2, event1, active, client sl@0: TheTest.Printf(_L("===CLogClient::ClearLog() client side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-0910 sl@0: @SYMTestCaseDesc Tests for CLogClient::ClearLog() function sl@0: @SYMTestPriority High sl@0: @SYMTestActions Add 4 events to the event log,check for no errors sl@0: Clear the log by calling ClearLog function. sl@0: Try for getting the before added 4 events and check for not found error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: LOCAL_C void TestClearEventLog3L(TBool aMicroSeconds) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0910 ")); sl@0: sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: TDateTime dt(now.DateTime()); sl@0: if(!aMicroSeconds) sl@0: dt.SetMicroSecond(0); sl@0: dt.SetYear(dt.Year() - 1); sl@0: TTime date1(dt); sl@0: sl@0: dt.SetYear(dt.Year() - 1); sl@0: TTime date2(dt); sl@0: sl@0: TTime ClearThreshold(date1); sl@0: ClearThreshold -= TTimeIntervalSeconds(1); sl@0: /*need to use set the clear threshold (at least 1 sec) before the date of event 1,2. sl@0: Otherwise the test will fail if now happens to occur at 0 microseconds (e.g the sl@0: last 6 digit of now is 0) */ sl@0: sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: CLogEvent* event1 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event1); sl@0: event1->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event1->SetTime(date1); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event2 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event2); sl@0: event2->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event2->SetTime(date1); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event3 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event3); sl@0: event3->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event3->SetTime(date2); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: CLogEvent* event4 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event4); sl@0: event4->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event4->SetTime(date2); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: sl@0: client->ClearLog(ClearThreshold, active->iStatus); sl@0: sl@0: __LOGSERV_UHEAP_RESET; sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: } sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event3, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event4, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->ClearLog(now, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(6, client); // event4, event3, event2, event1, active, client sl@0: TheTest.Printf(_L("===CLogClient::ClearLog() server side OOM test succeeded at iteration %d\n"), failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-LOGENG-CT-1910 sl@0: @SYMTestCaseDesc Tests for CLogClient::ClearLog() under boundary conditions sl@0: @SYMTestPriority High sl@0: @SYMTestActions Add 4 events to the event log,check for no errors sl@0: Clear the log by calling ClearLog function. sl@0: However using the date for 2 events the same as the clear date threshold. sl@0: Try for getting the before added 4 events and check for not found error. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMDEF DEF093601 sl@0: */ sl@0: LOCAL_C void TestDEF093601L(TBool aClientTest) sl@0: { sl@0: TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-1910 ")); sl@0: if(aClientTest) sl@0: TestClearEventLog3L(EFalse); sl@0: else sl@0: TestClearEventLog1L(EFalse); sl@0: } sl@0: sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: sl@0: /** sl@0: @SYMTestCaseID PDS-LOGENG-UT-4038 sl@0: @SYMTestCaseDesc Clear log events with specific SimId - client/server side OOM test. sl@0: The test adds 2 events, one of them with a SimId. Then the test sl@0: executes CLogClient::ClearLog() in an OOM loop. sl@0: @SYMTestActions Clear log events with specific SimId - client/server side OOM test. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMTestPriority Medium sl@0: @SYMREQ REQ12748 sl@0: */ sl@0: void ClearLogSimIdOomTestL(TBool aServerSideOomTest) sl@0: {//This test case is compiled only when SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM macro is defined sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: const TSimId KSimId = 4100000000U; sl@0: TTime now; sl@0: now.UniversalTime(); sl@0: sl@0: TDateTime dt(now.DateTime()); sl@0: dt.SetYear(dt.Year() - 1); sl@0: TTime date(dt); sl@0: sl@0: TTime threshold(date); sl@0: threshold += TTimeIntervalSeconds(10); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: //////// Event1 /////////////////////////// sl@0: CLogEvent* event1 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event1); sl@0: event1->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event1->SetTime(date); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: //////// Event2 /////////////////////////// sl@0: CLogEvent* event2 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event2); sl@0: event2->SetEventType(KTestEventUid); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: event2->SetTime(date); sl@0: event2->SetSimId(KSimId); sl@0: sl@0: active->StartL(); sl@0: client->ChangeEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: //////////////////////////////////////////// sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: if(aServerSideOomTest) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: } sl@0: else sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: } sl@0: sl@0: client->ClearLog(threshold, KSimId, active->iStatus); sl@0: sl@0: if(aServerSideOomTest) sl@0: { sl@0: __LOGSERV_UHEAP_RESET; sl@0: } sl@0: else sl@0: { sl@0: __UHEAP_RESET; sl@0: } sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: } sl@0: sl@0: //Check: event1 is without SimId and must not be deleted. event2 is with SimId and should be deleted. sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: //Delete all events sl@0: active->StartL(); sl@0: client->ClearLog(now, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: active->StartL(); sl@0: client->GetEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNotFound); sl@0: sl@0: CleanupStack::PopAndDestroy(4, client); //event2, event1, active, client sl@0: TheTest.Printf(_L("===CLogClient::ClearLog() + SimId %S OOM test succeeded at iteration %d\n"), aServerSideOomTest ? &KServerSide : &KClientSide, failCount); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID PDS-LOGENG-UT-4039 sl@0: @SYMTestCaseDesc Clear log events with specific SimId and recent list- client/server side OOM test. sl@0: The test adds 2 events to a recent list, one of them with a SimId. Then the test sl@0: executes CLogClient::ClearLog() in an OOM loop. sl@0: @SYMTestActions Clear log events with specific SimId and recent list- client/server side OOM test. sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMTestPriority Medium sl@0: @SYMREQ REQ12748 sl@0: */ sl@0: void ClearLogRecentSimIdOomTestL(TBool aServerSideOomTest) sl@0: {//This test case is compiled only when SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM macro is defined sl@0: CLogClient* client = CLogClient::NewL(theFs); sl@0: CleanupStack::PushL(client); sl@0: sl@0: const TSimId KSimId = 4200000000U; sl@0: const TUid KEvTypeUid = {KLogCallEventType}; sl@0: _LIT(KEvDirection, "Missed call"); sl@0: sl@0: CTestActive* active = new(ELeave)CTestActive(); sl@0: CleanupStack::PushL(active); sl@0: sl@0: //////// Event1 /////////////////////////// sl@0: CLogEvent* event1 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event1); sl@0: event1->SetEventType(KEvTypeUid); sl@0: event1->SetDirection(KEvDirection); sl@0: event1->SetNumber(_L("12345678")); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event1, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: //////// Event2 /////////////////////////// sl@0: CLogEvent* event2 = CLogEvent::NewL(); sl@0: CleanupStack::PushL(event2); sl@0: event2->SetEventType(KEvTypeUid); sl@0: event2->SetDirection(KEvDirection); sl@0: event2->SetNumber(_L("87654321")); sl@0: event2->SetSimId(KSimId); sl@0: sl@0: active->StartL(); sl@0: client->AddEvent(*event2, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: //////////////////////////////////////////// sl@0: sl@0: TInt failCount = 0; sl@0: TBool finished = EFalse; sl@0: sl@0: while(!finished) sl@0: { sl@0: if(aServerSideOomTest) sl@0: { sl@0: __LOGSERV_UHEAP_FAILNEXT(++failCount); sl@0: } sl@0: else sl@0: { sl@0: __UHEAP_FAILNEXT(++failCount); sl@0: } sl@0: sl@0: client->ClearLog(KLogRecentMissedCalls, KSimId, active->iStatus); sl@0: sl@0: if(aServerSideOomTest) sl@0: { sl@0: __LOGSERV_UHEAP_RESET; sl@0: } sl@0: else sl@0: { sl@0: __UHEAP_RESET; sl@0: } sl@0: sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: sl@0: if (active->iStatus == KErrNone) sl@0: finished = ETrue; sl@0: else sl@0: TEST2(active->iStatus.Int(), KErrNoMemory); sl@0: } sl@0: sl@0: //Check: event1 is without SimId and must be presented in the view. Event2 is with SimId and should not be in the view. sl@0: CLogViewRecent* view = CLogViewRecent::NewL(*client); sl@0: CleanupStack::PushL(view); sl@0: TBool rc = view->SetRecentListL(KLogRecentMissedCalls, active->iStatus); sl@0: TEST(rc); sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: TInt count = view->CountL(); sl@0: TEST2(count, 1); sl@0: rc = view->FirstL(active->iStatus); sl@0: TEST(rc); sl@0: active->StartL(); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: const CLogEvent& e = view->Event(); sl@0: TEST2(e.SimId(), KLogNullSimId); sl@0: sl@0: CleanupStack::PopAndDestroy(view); sl@0: sl@0: //Delete all events sl@0: active->StartL(); sl@0: client->ClearLog(KLogRecentMissedCalls, active->iStatus); sl@0: CActiveScheduler::Start(); sl@0: TEST2(active->iStatus.Int(), KErrNone); sl@0: sl@0: //Check: no events in the recent view list sl@0: view = CLogViewRecent::NewL(*client); sl@0: CleanupStack::PushL(view); sl@0: rc = view->SetRecentListL(KLogRecentMissedCalls, active->iStatus); sl@0: TEST(!rc); sl@0: sl@0: CleanupStack::PopAndDestroy(5, client); //view, event2, event1, active, client sl@0: TheTest.Printf(_L("===CLogClient::ClearLog()/Recent + SimId %S OOM test succeeded at iteration %d\n"), aServerSideOomTest ? &KServerSide : &KClientSide, failCount); sl@0: } sl@0: sl@0: #endif//SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: sl@0: LOCAL_C void doClientFailureL() sl@0: { sl@0: TheTest.Next(_L("Server startup")); sl@0: TestStartup1L(); sl@0: User::After(100000); sl@0: sl@0: TheTest.Next(_L("Construction + create logeng database")); sl@0: TestConstruction1L(ETrue); // Creates database sl@0: TheTest.Next(_L("Construction + open logeng database")); sl@0: TestConstruction1L(EFalse); // Opens existing database sl@0: TestUtils::DeleteDatabaseL(); sl@0: theLog.Write(_L8("Test 1.1 OK\n")); sl@0: sl@0: TheTest.Next(_L("Add Event Type")); sl@0: TestAddEventType1L(); sl@0: theLog.Write(_L8("Test 1.2 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Event Type")); sl@0: TestGetEventType1L(); sl@0: theLog.Write(_L8("Test 1.3 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Event Type")); sl@0: TestChangeEventType1L(); sl@0: theLog.Write(_L8("Test 1.4 OK\n")); sl@0: sl@0: TheTest.Next(_L("Delete Event Type")); sl@0: TestDeleteEventType1L(); sl@0: theLog.Write(_L8("Test 1.5 OK\n")); sl@0: sl@0: TheTest.Next(_L("Add Event")); sl@0: TestAddEvent1L(); sl@0: theLog.Write(_L8("Test 1.6 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Event")); sl@0: TestGetEvent1L(); sl@0: theLog.Write(_L8("Test 1.7 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Event")); sl@0: TestChangeEvent1L(); sl@0: theLog.Write(_L8("Test 1.8 OK\n")); sl@0: sl@0: TheTest.Next(_L("Delete Event")); sl@0: TestDeleteEvent1L(); sl@0: theLog.Write(_L8("Test 1.9 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Config")); sl@0: TestGetConfig1L(); sl@0: theLog.Write(_L8("Test 1.10 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Config")); sl@0: TestChangeConfig1L(); sl@0: theLog.Write(_L8("Test 1.11 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get String")); sl@0: TestGetString1L(); sl@0: theLog.Write(_L8("Test 1.12 OK\n")); sl@0: sl@0: TheTest.Next(_L("Clear Event Log")); sl@0: TestClearEventLog1L(ETrue); sl@0: theLog.Write(_L8("Test 1.13 OK\n")); sl@0: sl@0: TheTest.Next(_L("DEF093601")); sl@0: TestDEF093601L(EFalse); sl@0: theLog.Write(_L8("Test 1.14 OK\n")); sl@0: sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4038 Clear Event Log + SimId")); sl@0: ClearLogSimIdOomTestL(EFalse); sl@0: theLog.Write(_L8("Test 1.15 OK\n")); sl@0: sl@0: TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4039 Clear Event Log/Recent + SimId")); sl@0: ClearLogRecentSimIdOomTestL(EFalse); sl@0: theLog.Write(_L8("Test 1.16 OK\n")); sl@0: #endif sl@0: } sl@0: sl@0: LOCAL_C void doLogServFailureL() sl@0: { sl@0: TheTest.Next(_L("Construction + create logeng database")); sl@0: TestConstruction3L(ETrue); // Creates database sl@0: TheTest.Next(_L("Construction + open logeng database")); sl@0: TestConstruction3L(EFalse); // Opens existing database sl@0: TestUtils::DeleteDatabaseL(); sl@0: theLog.Write(_L8("Test 2.1 OK\n")); sl@0: sl@0: TheTest.Next(_L("Add Event Type")); sl@0: TestAddEventType3L(); sl@0: theLog.Write(_L8("Test 2.2 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Event Type")); sl@0: TestGetEventType3L(); sl@0: theLog.Write(_L8("Test 2.3 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Event Type")); sl@0: TestChangeEventType3L(); sl@0: theLog.Write(_L8("Test 2.4 OK\n")); sl@0: sl@0: TheTest.Next(_L("Delete Event Type")); sl@0: TestDeleteEventType3L(); sl@0: theLog.Write(_L8("Test 2.5 OK\n")); sl@0: sl@0: TheTest.Next(_L("Add Event")); sl@0: TestAddEvent3L(); sl@0: theLog.Write(_L8("Test 2.6 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Event")); sl@0: TestGetEvent3L(); sl@0: theLog.Write(_L8("Test 2.7 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Event")); sl@0: TestChangeEvent3L(); sl@0: theLog.Write(_L8("Test 2.8 OK\n")); sl@0: sl@0: TheTest.Next(_L("Delete Event")); sl@0: TestDeleteEvent3L(); sl@0: theLog.Write(_L8("Test 2.9 OK\n")); sl@0: sl@0: TheTest.Next(_L("Get Config")); sl@0: TestGetConfig3L(); sl@0: theLog.Write(_L8("Test 2.10 OK\n")); sl@0: sl@0: TheTest.Next(_L("Change Config")); sl@0: TestChangeConfig3L(); sl@0: theLog.Write(_L8("Test 2.11 OK\n")); sl@0: sl@0: TheTest.Next(_L("Clear Event Log")); sl@0: TestClearEventLog3L(ETrue); sl@0: theLog.Write(_L8("Test 2.12 OK\n")); sl@0: sl@0: TheTest.Next(_L("DEF093601")); sl@0: TestDEF093601L(ETrue); sl@0: theLog.Write(_L8("Test 2.13 OK\n")); sl@0: sl@0: #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM sl@0: TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4038 Clear Event Log + SimId")); sl@0: ClearLogSimIdOomTestL(ETrue); sl@0: theLog.Write(_L8("Test 2.14 OK\n")); sl@0: sl@0: TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4039 Clear Event Log/Recent + SimId")); sl@0: ClearLogRecentSimIdOomTestL(ETrue); sl@0: theLog.Write(_L8("Test 2.15 OK\n")); sl@0: #endif sl@0: } sl@0: sl@0: void doTestsL() sl@0: { sl@0: TestUtils::Initialize(_L("t_logheap")); sl@0: sl@0: TheTest.Start(_L("Log Client")); sl@0: doClientFailureL(); sl@0: sl@0: TheTest.Next(_L("Log Server")); sl@0: doLogServFailureL(); sl@0: }