Rework addition of Symbian splash screen to reduce the source impact (uses SVG from Bug 2414)
Notes: by using the OPTION SOURCEDIR parameter in the mifconv extension instructions, I can
arrange to use the same source file name in sfimage, without having to export over the original
Nokia file. This means that the name inside splashscreen.mbg is the same, which removes the need
for the conditional compilation in SplashScreen.cpp, and gets rid of sf_splashscreen.mmp.
// Copyright (c) 1997-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:
//
#include "ASTstAlarmTest.h"
#include "testserver.h"
// Globals
static TRequestStatus TheStatus;
static TTime TheTimeBefore;
static TTime TheTimeAfter;
static TAlarmId TheClockAlarmIds[10];
void TestInitAlarmsL()
//
// Set up alarms for before test
// 1. clock 0 between shutdown time and restart time
// 2. clock 1 daily alarm
// 3. clock 2 workday alarm
// 4. clock 3 after restart time
// 5. orphaned alarm
// 6. session alarm
// 7. clock 4 in 24 hours
// 8. clock 5 in past (for review alarm)
//
{
TheAlarmTest.Test().Next(_L("Setting up alarms before shut down"));
//
TInt r;
TInt count;
TASShdAlarm alarm;
TheTimeBefore.HomeTime();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
// 8. Clock 0 in past (for review alarm)
TheTimeBefore -= TTimeIntervalHours(1);
alarm.NextDueTime() = TheTimeBefore;
alarm.Message() = _L("past");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[0] = alarm.Id();
//
User::After(KTimeToWait);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm);
TheAlarmTest(alarm.State() == EAlarmStateNotified, __LINE__);
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
// 1. Clock 1 between shutdown time and restart time
TheTimeBefore += TTimeIntervalDays(1);
alarm.NextDueTime() = TheTimeBefore;
alarm.Message() = _L("once");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[1] = alarm.Id();
//
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm);
TheAlarmTest(alarm.State() == EAlarmStateQueued, __LINE__);
// 2. Clock 2 daily alarm
alarm.NextDueTime() = TheTimeBefore;
alarm.Message() = _L("daily");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatDaily;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[2] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 2, __LINE__);
// 3. Clock 3 workday alarm
alarm.NextDueTime() = TheTimeBefore;
alarm.Message() = _L("workday");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatWorkday;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[3] = alarm.Id();
// 4. Clock 4 after restart time
TheTimeAfter = TheTimeBefore + TTimeIntervalDays(2);
alarm.NextDueTime() = TheTimeAfter;
alarm.Message() = _L("after");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatWorkday;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[4] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 4, __LINE__);
// 5. Orphaned alarm
alarm.NextDueTime() = TheTimeAfter;
alarm.Message() = _L("orphaned");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheStatus == KRequestPending, __LINE__);
r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
TheAlarmTest(r == KErrNone, __LINE__);
User::WaitForRequest(TheStatus);
TheClockAlarmIds[5] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 5, __LINE__);
// 7. Clock 5 in 24 hours
alarm.Characteristics() = 0;
alarm.NextDueTime() = TheTimeAfter;
alarm.Message() = _L("next24");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatNext24Hours;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[6] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 6, __LINE__);
// 6. Session alarm
alarm.NextDueTime() = TheTimeAfter;
alarm.Message() =_L("different");
alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheStatus == KRequestPending, __LINE__);
TheClockAlarmIds[7] = alarm.Id();
// Verification
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 7, __LINE__);
//
count = TheAlarmTest.CountOrphanedAlarmsL();
TheAlarmTest(count == 1, __LINE__);
}
void TestPostShutDownL()
//
// Check persisted correct information
// 1. Clock 0 alarm deleted - its added to the queue when the backup store
// is internalized, but as soon as the server starts the scheduler, the
// change notifier runs and the date/time change is reported. At this point
// the alarm is more than 2 days in the past, and as such, any "Once only"
// alarm (regardless of State()) which is set in the past is deleted from
// the queue.
// 2. Clock 1 set between shutdown and restart time. Again this is deleted
// because when the change notifier runs, its more than a day old and
// so its automatically dequeued.
// 3. Clock 2 (daily repeat). This is just reset for the next valid repeat.
// 4. Clock 3 (workday repeat). This is just reset for the next valid repeat.
// 5. Clock 4 (workday repeat). This still uses the original "after the restart"
// expiry time.
// 6. Alarm 5 (orphaned alarm). This is still orphaned and is still valid.
// Effectively, this is a change in behaviour from the old EALWL, where
// old orphaned alarms were deleted when internalized.
// 7. Clock 5 (was next 24 hours repeat, is now RepeatOnce and orphaned).
// 8. Session alarm (which was pending when the server shut down). This is
// cleaned up and dequeued as part of the server shut-down process. When
// the session disconnects, any session alarms for that session are
// dequeued (by matching against the session id).
//
{
TheAlarmTest.Test().Next(_L("Comparing persisted alarms"));
//
TInt c;
c = TheAlarmTest.CountOrphanedAlarmsL();
TheAlarmTest(c == 1, __LINE__);
//
c = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(c == 4, __LINE__);
//
TInt r;
TASShdAlarm alarm;
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[0], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[1], alarm);
TheAlarmTest(r == KErrNotFound, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[2], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("daily"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatDaily, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[3], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("workday"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatWorkday, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[4], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("after"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatWorkday, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[5], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("orphaned"), __LINE__);
TheAlarmTest(alarm.HasBecomeOrphaned(), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatOnce, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[6], alarm);
TheAlarmTest(r == KErrNotFound, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("orphaned"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatOnce, __LINE__);
}
void TestInitUtcAlarmsL()
//
// Set up alarms for before test
// 1. clock 0 between shutdown time and restart time
// 2. clock 1 daily alarm
// 3. clock 2 workday alarm
// 4. clock 3 after restart time
// 5. orphaned alarm
// 6. session alarm
// 7. clock 4 in 24 hours
// 8. clock 5 in past (for review alarm)
//
{
TheAlarmTest.Test().Next(_L("Setting up UTC alarms before shut down"));
//
TInt r;
TInt count;
TASShdAlarm alarm;
TheTimeBefore.UniversalTime();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
// 8. Clock 0 in past (for review alarm)
TheTimeBefore -= TTimeIntervalHours(1);
alarm.SetUtcNextDueTime(TheTimeBefore);
alarm.Message()=(_L("past"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatOnce;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[0] = alarm.Id();
//
User::After(KTimeToWait);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm);
TheAlarmTest(alarm.State() == EAlarmStateNotified, __LINE__);
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
// 1. Clock 1 between shutdown time and restart time
TheTimeBefore += TTimeIntervalDays(1);
alarm.SetUtcNextDueTime(TheTimeBefore);
alarm.Message()=(_L("once"));
alarm.RepeatDefinition()=(EAlarmRepeatDefintionRepeatOnce);
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[1] = alarm.Id();
//
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm);
TheAlarmTest(alarm.State() == EAlarmStateQueued, __LINE__);
// 2. Clock 2 daily alarm
alarm.SetUtcNextDueTime(TheTimeBefore);
alarm.Message()=(_L("daily"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatDaily;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[2] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 2, __LINE__);
// 3. Clock 3 workday alarm
alarm.SetUtcNextDueTime(TheTimeBefore);
alarm.Message()=(_L("workday"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatWorkday;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[3] = alarm.Id();
// 4. Clock 4 after restart time
TheTimeAfter = TheTimeBefore + TTimeIntervalDays(2);
alarm.SetUtcNextDueTime(TheTimeAfter);
alarm.Message()=(_L("after"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatWorkday;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[4] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 4, __LINE__);
// 5. Orphaned alarm
alarm.SetUtcNextDueTime(TheTimeAfter);
alarm.Message()=(_L("orphaned"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatOnce;
TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheStatus == KRequestPending, __LINE__);
r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
TheAlarmTest(r == KErrNone, __LINE__);
User::WaitForRequest(TheStatus);
TheClockAlarmIds[5] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 5, __LINE__);
// 7. Clock 5 in 24 hours
alarm.Reset();
alarm.Characteristics().ClearAll();
alarm.SetUtcNextDueTime(TheTimeAfter);
alarm.Message()=(_L("next24"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatNext24Hours;
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheClockAlarmIds[6] = alarm.Id();
//
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 6, __LINE__);
// 6. Session alarm
alarm.SetUtcNextDueTime(TheTimeAfter);
alarm.Message()=(_L("different"));
alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatOnce;
TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheStatus == KRequestPending, __LINE__);
TheClockAlarmIds[7] = alarm.Id();
// Verification
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 7, __LINE__);
//
count = TheAlarmTest.CountOrphanedAlarmsL();
TheAlarmTest(count == 1, __LINE__);
}
void TestPostShutDownUtcL()
//
// Check persisted correct information
// 1. Clock 0 alarm deleted - its added to the queue when the backup store
// is internalized, but as soon as the server starts the scheduler, the
// change notifier runs and the date/time change is reported. At this point
// the alarm is more than 2 days in the past, and as such, any "Once only"
// alarm (regardless of State()) which is set in the past is deleted from
// the queue.
// 2. Clock 1 set between shutdown and restart time. Again this is deleted
// because when the change notifier runs, its more than a day old and
// so its automatically dequeued.
// 3. Clock 2 (daily repeat). This is just reset for the next valid repeat.
// 4. Clock 3 (workday repeat). This is just reset for the next valid repeat.
// 5. Clock 4 (workday repeat). This still uses the original "after the restart"
// expiry time.
// 6. Alarm 5 (orphaned alarm). This is still orphaned and is still valid.
// Effectively, this is a change in behaviour from the old EALWL, where
// old orphaned alarms were deleted when internalized.
// 7. Clock 5 (was next 24 hours repeat, is now RepeatOnce and orphaned).
// 8. Session alarm (which was pending when the server shut down). This is
// cleaned up and dequeued as part of the server shut-down process. When
// the session disconnects, any session alarms for that session are
// dequeued (by matching against the session id).
//
{
TheAlarmTest.Test().Next(_L("Comparing persisted UTC alarms"));
//
TInt c;
c = TheAlarmTest.CountOrphanedAlarmsL();
TheAlarmTest(c == 1, __LINE__);
//
c = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(c == 4, __LINE__);
//
TInt r;
TASShdAlarm alarm;
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[0], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[1], alarm);
TheAlarmTest(r == KErrNotFound, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[2], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("daily"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatDaily, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[3], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("workday"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatWorkday, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[4], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("after"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatWorkday, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[5], alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("orphaned"), __LINE__);
TheAlarmTest(alarm.HasBecomeOrphaned(), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatOnce, __LINE__);
//
r = TheAlarmTest.Session().GetAlarmDetails(TheClockAlarmIds[6], alarm);
TheAlarmTest(r == KErrNotFound, __LINE__);
TheAlarmTest(alarm.Status() == EAlarmStatusEnabled, __LINE__);
TheAlarmTest(alarm.Message() == _L("orphaned"), __LINE__);
TheAlarmTest(alarm.RepeatDefinition() == EAlarmRepeatDefintionRepeatOnce, __LINE__);
}
static void DoTestsL()
{
CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
CleanupStack::PushL(scheduler);
CActiveScheduler::Install(scheduler);
#if defined(__WINS__) && defined(_DEBUG)
RPIMTestServer pimServ;
User::LeaveIfError(pimServ.Connect());
#endif
#ifdef __WINS__
// This instance of TASShdAlarm is needed to avoid a link error under wins/urel
// It's not actually used for anything
TASShdAlarm dummy;
#endif // __WINS__
TheAlarmTest.Next(_L("Connecting to server"));
TInt r = TheAlarmTest.Session().Connect();
TheAlarmTest(r == KErrNone, __LINE__);
//
TheAlarmTest.TestClearStoreL();
TInt count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
//
#if !defined(_DEBUG)
TheAlarmTest.Test().Printf(_L("THIS TEST IS A DEBUG TEST ONLY\n"));
#else // _DEBUG
#ifdef __WINS__
TheAlarmTest.Session().__DbgPreventUserNotify(ETrue);
TestInitAlarmsL();
TheAlarmTest.Test().Next(_L("Closing Alarm Server"));
TheAlarmTest.Session().__DbgShutDownServer();
TheAlarmTest.Session().Close();
//
TTime newTime;
newTime.HomeTime();
newTime += TTimeIntervalDays(2);
User::LeaveIfError(pimServ.SetHomeTime(newTime));
User::After(KTimeToWait);
//
TheAlarmTest.Next(_L("Restarting Alarm Server"));
TheAlarmTest.TestStartServers();
r=TheAlarmTest.Session().Connect();
TheAlarmTest(r==KErrNone, __LINE__);
//
TestPostShutDownL();
#endif // __WINS__
#endif // _DEBUG
TheAlarmTest.Next(_L("Connecting to server"));
r = TheAlarmTest.Session().Connect();
TheAlarmTest(r == KErrNone, __LINE__);
//
TheAlarmTest.TestClearStoreL();
count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
TheAlarmTest(count == 0, __LINE__);
//
#if !defined(_DEBUG)
TheAlarmTest.Test().Printf(_L("THIS TEST IS A DEBUG TEST ONLY\n"));
#else // _DEBUG
#ifdef __WINS__
TheAlarmTest.Session().__DbgPreventUserNotify(ETrue);
TestInitUtcAlarmsL();
TheAlarmTest.Test().Next(_L("Closing Alarm Server"));
TheAlarmTest.Session().__DbgShutDownServer();
TheAlarmTest.Session().Close();
//
newTime.HomeTime();
newTime += TTimeIntervalDays(2);
pimServ.SetHomeTime(newTime);
User::After(KTimeToWait);
//
TheAlarmTest.Next(_L("Restarting Alarm Server"));
TheAlarmTest.TestStartServers();
r=TheAlarmTest.Session().Connect();
TheAlarmTest(r==KErrNone, __LINE__);
//
TestPostShutDownUtcL();
#endif // __WINS__
#endif // _DEBUG
TheAlarmTest.TestClearStoreL();
TheAlarmTest.Session().Close();
#if defined(__WINS__) && defined(_DEBUG)
pimServ.Close();
#endif
CleanupStack::PopAndDestroy(scheduler);
}
/**
@SYMTestCaseID PIM-TQUEUERESTORATION-0001
*/
GLDEF_C TInt E32Main()
//
// Test the alarm server.
//
{
__UHEAP_MARK;
TInt ret = KErrNone;
CTrapCleanup* cleanup = CTrapCleanup::New();
if (!cleanup)
{
return KErrNoMemory;
}
TheAlarmTest.Title();
TheAlarmTest.Start(_L("@SYMTestCaseID PIM-TQUEUERESTORATION-0001 TQueueRestoration"));
TheAlarmTest.TestStartServers();
//
TRAPD(error, DoTestsL());
TheAlarmTest(error == KErrNone, __LINE__);
//
TRAP(ret,TheAlarmTest.EndL());
TheAlarmTest.Test().Close();
ASTstAlarmTest::Close();
delete cleanup;
__UHEAP_MARKEND;
return ret;
}