commonappservices/alarmserver/Test/TAlarmIdArrays.cpp
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Test/TAlarmIdArrays.cpp	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,474 @@
+// 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"
+
+// Globals
+static TRequestStatus TheStatus;
+#if defined(__WINS__)
+static TInt TheNumberOfReviewAlarms=0;
+#endif  // __WINS__
+
+
+static void testSetAlarmsL()
+//
+//	Set alarms in future and past
+//		3 orphan alarms (one, three, four)
+//		1 clock alarm (two)
+//		1 session alarm (five)
+//		1 review alarm (six, clock)
+//	This test is only performed when simulating, i.e. it is not active on hardware
+//  The reason is that we can not give any instruction set to the alarm alert server on HW
+	{
+#if defined(__WINS__)
+	TheAlarmTest.Test().Next(_L("Set orphan review clock and session alarms"));
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified) == TheNumberOfReviewAlarms, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 0, __LINE__);
+	//
+	TInt r;
+	TAlarmId id;
+	TASShdAlarm alarm;
+	TASShdAlarm alarmInfo;
+	//
+	alarm.NextDueTime().HomeTime();
+	alarm.NextDueTime() += TTimeIntervalDays(1);
+	alarm.Message() = _L("one");
+	alarm.Characteristics() = EAlarmCharacteristicsSessionSpecific;
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	TASShdAlarm alarm2;
+	alarm2.NextDueTime().HomeTime();
+	alarm2.NextDueTime() += TTimeIntervalDays(1);
+	alarm2.NextDueTime() += TTimeIntervalMinutes(1);
+	alarm2.Message() = _L("two");
+	alarm2.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
+	r = TheAlarmTest.Session().AlarmAdd(alarm2);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TheAlarmTest(alarm2.Id() != KNullAlarmId, __LINE__);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	alarm.NextDueTime() += TTimeIntervalDays(1);
+	alarm.Message() = _L("three");
+	alarm.Characteristics() = EAlarmCharacteristicsSessionSpecific;
+	//
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KErrNone, __LINE__);
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+	//
+	alarm.NextDueTime() += TTimeIntervalDays(1);
+	alarm.Message() = _L("four");
+	alarm.Characteristics() = EAlarmCharacteristicsSessionSpecific;
+	//
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KErrNone, __LINE__);
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+	//
+	alarm.Characteristics() = EAlarmCharacteristicsSessionSpecific;
+	alarm.NextDueTime() += TTimeIntervalDays(1);
+	alarm.NextDueTime() += TTimeIntervalMinutes(1);
+	alarm.Message() = _L("five");
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	const TAlarmId sessionAlarmId = alarm.Id();
+	//
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 3, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified) == TheNumberOfReviewAlarms, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 5, __LINE__);
+	//
+	User::After(5000000);
+	//
+	alarm.NextDueTime().HomeTime();
+	alarm.NextDueTime() += TTimeIntervalMinutes(-1);
+	alarm.Message() = _L("six");
+	alarm.SoundName() = _L("rings");
+	alarm.Characteristics() = 0;
+	alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
+	//
+	r = TheAlarmTest.Session().AlarmAdd(alarm);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	//
+	User::After(5000000);
+	//
+	TInt count;
+	count = TheAlarmTest.CountOrphanedAlarmsL();
+	TheAlarmTest(count == 3, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed);
+	TheAlarmTest(count == 0, __LINE__);
+	count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
+	TheAlarmTest(count == 5, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified);
+	TheAlarmTest(count == TheNumberOfReviewAlarms + 1, __LINE__);
+	//
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(sessionAlarmId, 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+#endif  // __WINS__
+	}
+
+
+static void testSnoozeArrayL()
+//
+//	Test the snooze debug alarm
+//
+	{
+	TheAlarmTest.Test().Next(_L("Snoozed alarms"));
+#if !defined(_DEBUG)
+	TheAlarmTest.Test().Printf(_L("This is a debug test only!\n"));
+	return;
+#else   // _DEBUG
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+
+	TASShdAlarm alarm;
+	alarm.NextDueTime().HomeTime();
+	alarm.NextDueTime() += TTimeIntervalDays(1);
+	alarm.NextDueTime().RoundUpToNextMinute();
+	alarm.Message() =_L("one");
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	TheAlarmTest(TheStatus == KRequestPending, __LINE__);
+	//
+	TASShdAlarm alarm2;
+	TInt r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm2);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 1, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+	//
+	r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+	TheAlarmTest(r == KErrAccessDenied, __LINE__);
+	//
+	TTime snooze = alarm.NextDueTime() + TTimeIntervalMinutes(20);
+	r = TheAlarmTest.Session().__DbgSnoozeAlarm(alarm.Id(), snooze - User::UTCOffset());
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TInt count;
+	count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
+	TheAlarmTest(count == 1, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed);
+	TheAlarmTest(count == 1, __LINE__);
+	count = TheAlarmTest.CountOrphanedAlarmsL();
+	TheAlarmTest(count == 0, __LINE__);
+	//
+	TAlarmId nextAlarmId;
+	r = TheAlarmTest.Session().GetNextDueAlarmId(nextAlarmId);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TASShdAlarm nextAlarm;
+	r = TheAlarmTest.Session().GetAlarmDetails(nextAlarmId, nextAlarm);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TheAlarmTest(nextAlarm.State() == EAlarmStateSnoozed, __LINE__);
+	TheAlarmTest(nextAlarm.NextDueTime() == snooze, __LINE__);
+	//
+	RArray<TAlarmId> ids;
+	TheAlarmTest.Session().GetAlarmIdListByStateL(EAlarmStateSnoozed, ids);
+	TheAlarmTest(ids.Count() == 1, __LINE__);
+	TheAlarmTest(ids[0] == nextAlarm.Id(), __LINE__);
+	TheAlarmTest(nextAlarmId == alarm.Id(), __LINE__);
+	TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
+	ids.Close();
+#endif  // _DEBUG
+	}
+
+	
+static void testSnoozeArrayUtcL()
+	{
+	TheAlarmTest.Test().Next(_L("Snoozed UTC alarms"));
+#if !defined(_DEBUG)
+	TheAlarmTest.Test().Printf(_L("THis is a debug test only!\n"));
+	return;
+#else   // _DEBUG
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+
+	TASShdAlarm alarm;
+	TTime time;
+	time.UniversalTime();
+	time += TTimeIntervalDays(1);
+	time.RoundUpToNextMinute();
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("one"));
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	TheAlarmTest(TheStatus == KRequestPending, __LINE__);
+	//
+	TASShdAlarm alarm2;
+	TInt r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), alarm2);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 1, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+	//
+	r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+	TheAlarmTest(r == KErrAccessDenied, __LINE__);
+	//
+	TTime snooze = alarm.NextDueTime() + TTimeIntervalMinutes(20);
+	r = TheAlarmTest.Session().__DbgSnoozeAlarm(alarm.Id(), snooze);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TInt count;
+	count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
+	TheAlarmTest(count == 1, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed);
+	TheAlarmTest(count == 1, __LINE__);
+	count = TheAlarmTest.CountOrphanedAlarmsL();
+	TheAlarmTest(count == 0, __LINE__);
+	//
+	TAlarmId nextAlarmId;
+	r = TheAlarmTest.Session().GetNextDueAlarmId(nextAlarmId);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TASShdAlarm nextAlarm;
+	r = TheAlarmTest.Session().GetAlarmDetails(nextAlarmId, nextAlarm);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	//
+	TheAlarmTest(nextAlarm.State() == EAlarmStateSnoozed, __LINE__);
+	TheAlarmTest(nextAlarm.NextDueTime() == snooze, __LINE__);
+	//
+	RArray<TAlarmId> ids;
+	TheAlarmTest.Session().GetAlarmIdListByStateL(EAlarmStateSnoozed, ids);
+	TheAlarmTest(ids.Count() == 1, __LINE__);
+	TheAlarmTest(ids[0] == nextAlarm.Id(), __LINE__);
+	TheAlarmTest(nextAlarmId == alarm.Id(), __LINE__);
+	TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
+	ids.Close();
+#endif  // _DEBUG
+	}
+
+
+static void testSetUtcAlarmsL()
+	{
+#if defined(__WINS__)
+	TheAlarmTest.Test().Next(_L("Set orphan review clock and session alarms"));
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified) == TheNumberOfReviewAlarms, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 0, __LINE__);
+	//
+	TInt r;
+	TAlarmId id;
+	TASShdAlarm alarm;
+	TASShdAlarm alarmInfo;
+	TLocale locale;
+	//
+	TTime time;
+	time.UniversalTime();
+	time += TTimeIntervalDays(1);
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("one"));
+	alarm.Characteristics().Set(EAlarmCharacteristicsSessionSpecific);
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	TASShdAlarm alarm2;
+	time.HomeTime();
+	time -= locale.UniversalTimeOffset();
+	time += TTimeIntervalDays(1);
+	time += TTimeIntervalMinutes(1);
+	alarm2.SetUtcNextDueTime(time);
+	alarm2.Message()=(_L("two"));
+	alarm2.RepeatDefinition()=(EAlarmRepeatDefintionRepeatOnce);
+	r = TheAlarmTest.Session().AlarmAdd(alarm2);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TheAlarmTest(alarm2.Id() != KNullAlarmId, __LINE__);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	User::WaitForRequest(TheStatus);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	//
+	r = TheAlarmTest.Session().GetNextDueAlarmId(id);
+	TheAlarmTest(id == alarm.Id(), __LINE__);
+	r = TheAlarmTest.Session().GetAlarmDetails(id, alarmInfo);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(alarmInfo.Message() == alarm.Message(), __LINE__);
+	//
+	time = alarm.NextDueTime() + TTimeIntervalDays(1);
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("three"));
+	alarm.Characteristics().Set(EAlarmCharacteristicsSessionSpecific);
+	//
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KErrNone, __LINE__);
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+	//
+	time = alarm.NextDueTime() + TTimeIntervalDays(1);
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("four"));
+	alarm.Characteristics().Set(EAlarmCharacteristicsSessionSpecific);
+	//
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	TheAlarmTest(alarm.Id() != KErrNone, __LINE__);
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(alarm.Id(), 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+	//
+	alarm.Characteristics().Set(EAlarmCharacteristicsSessionSpecific);
+	time = alarm.NextDueTime() + TTimeIntervalDays(1);
+	time += TTimeIntervalMinutes(1);
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("five"));
+	TheAlarmTest.Session().AlarmAddWithNotification(TheStatus, alarm);
+	const TAlarmId sessionAlarmId = alarm.Id();
+	//
+	TheAlarmTest(TheAlarmTest.CountOrphanedAlarmsL() == 3, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed) == 0, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified) == TheNumberOfReviewAlarms, __LINE__);
+	TheAlarmTest(TheAlarmTest.Session().NumberOfAlarmsActiveInQueue() == 5, __LINE__);
+	//
+	User::After(5000000);
+	//
+	time.UniversalTime();
+	time += TTimeIntervalMinutes(-1);
+	alarm.SetUtcNextDueTime(time);
+	alarm.Message()=(_L("six"));
+	alarm.SoundName()=(_L("rings"));
+	alarm.Characteristics().Set(0);
+	alarm.RepeatDefinition()=EAlarmRepeatDefintionRepeatOnce;
+	//
+	r = TheAlarmTest.Session().AlarmAdd(alarm);
+	TheAlarmTest(r == KErrNone, __LINE__);
+	TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
+	//
+	User::After(5000000);
+	//
+	TInt count;
+	count = TheAlarmTest.CountOrphanedAlarmsL();
+	TheAlarmTest(count == 3, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateSnoozed);
+	TheAlarmTest(count == 0, __LINE__);
+	count = TheAlarmTest.Session().NumberOfAlarmsActiveInQueue();
+	TheAlarmTest(count == 5, __LINE__);
+	count = TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified);
+	TheAlarmTest(count == TheNumberOfReviewAlarms + 1, __LINE__);
+	//
+	r = TheAlarmTest.Session().SetAlarmCharacteristics(sessionAlarmId, 0);
+	TheAlarmTest(r==KErrNone, __LINE__);
+	TheAlarmTest(TheStatus != KRequestPending, __LINE__);
+	User::WaitForRequest(TheStatus);
+#endif  // __WINS__
+	}
+
+
+static void doTestsL()
+	{
+	const TInt KGmtOffset = 0;
+	_LIT(KTime, "20041130:050000.000000"); //In winter time
+	TInt err = User::SetUTCTimeAndOffset(TTime(KTime), KGmtOffset);
+
+	RArray<TInt> instructionSet;
+	instructionSet.AppendL(EKeyEscape);
+	instructionSet.AppendL(EKeyEscape);
+	TheAlarmTest.TestStartServers(&instructionSet);
+	TheAlarmTest.Test().Next(_L("Connecting to the alarm server"));
+	TheAlarmTest(TheAlarmTest.Session().Connect()==KErrNone, __LINE__);
+	//
+#if defined(__WINS__)
+	TheNumberOfReviewAlarms = TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified);
+#else   // __WINS__
+	TheAlarmTest.Session().AlarmCountByState(EAlarmStateNotified);
+#endif  // __WINS__
+
+	TheAlarmTest.TestClearStoreL();
+	testSnoozeArrayL();
+	testSetAlarmsL();
+	//
+	TheAlarmTest.TestClearStoreL();
+	testSnoozeArrayUtcL();
+	testSetUtcAlarmsL();
+
+	TheAlarmTest.TestClearStoreL();
+	TheAlarmTest.Session().Close();
+	instructionSet.Close();
+	}
+
+/**
+@SYMTestCaseID PIM-TALARMIDARRAYS-0001
+*/
+GLDEF_C TInt E32Main()
+//
+// Test the alarm server.
+//
+    {
+	__UHEAP_MARK;
+	//
+	TInt ret = KErrNone;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+	//
+	TheAlarmTest.Title();
+	TheAlarmTest.Start(_L("@SYMTestCaseID PIM-TALARMIDARRAYS-0001 Alarm arrays"));
+	TRAPD(err, doTestsL());
+	TheAlarmTest(err == KErrNone, __LINE__);
+	TRAP(ret,TheAlarmTest.EndL());
+	TheAlarmTest.Test().Close();
+	ASTstAlarmTest::Close();
+	//
+	delete cleanup;
+	//
+	__UHEAP_MARKEND;
+	return ret;
+    }