4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Venkatesha Sarpangala <sarpangala.v@samsung.com>, Jayoun Lee <airjany@samsung.com>,
7 * Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
29 #include <sys/types.h>
32 #include <glib-object.h>
33 #include <dlog/dlog.h>
43 #define LOG_TAG "TEST_LOG"
45 #define TEST_APP_LOG_PRINT(FMT, ARG...) SLOGD(FMT, ##ARG);
47 #define AUTO_TEST 0 /*Flag to Enable or Disable auto testing */
51 #define ITER_COUNT 200 /*Stress testing iteration count */
58 } create_subtype; /*alarm type */
62 /*Used to hold multiple alarm id created */
63 alarm_id_t alarm_id_arr[ITER_COUNT] = { 0, };
67 #define USER_INPUT_YES 1
68 #define USER_INPUT_NO 2
70 #define USER_INPUT_DEFAULT 1
71 #define USER_INPUT_VOLATILE 2
73 GMainLoop *mainloop = NULL; /*gmain loop */
75 alarm_id_t alarm_id; /*Alarm identificaiton no */
77 guint pgm_exit_time = 2000000; /*gmainloop life in milli second for few scenarios */
79 bool cleanup_req = false; /*tells whether test program cleanup required
80 or not before program exit */
82 bool multiple_alarm = false;
85 static int __alarm_callback(alarm_id_t alarm_id, void *user_param);
87 static int __alarm_callback1(alarm_id_t alarm_id, void *user_param);
89 static void __create_interval_alarm(void);
91 static void __create_app_svc_interval_alarm(void);
93 static void __create_calendar_alarm(void);
95 static void __create_app_svc_calendar_alarm(void);
97 static gboolean __timout_handler(gpointer user_data);
99 static void __test_pgm_clean_up(void);
101 static int __get_integer_input_data(void);
103 static void __test_alarm_manager_delete_alarm(void);
105 static void __test_alarm_manager_create_alarm(void);
107 static void __test_alarm_manager_get_information(void);
109 static void __test_alarm_manager_get_appsvc_information(void);
111 static void __test_alarm_manager_get_alarm_ids(void);
113 static void __print_api_return_result(int err_no, const char *api_name);
115 static void __test_alarm_manager_callback(void);
117 static int __get_alarm_persistance_type(void);
119 static char *__get_alarm_destination(void);
121 static int __get_alarm_repeat_mode(void);
123 static void __print_appsvc_bundle_data(const char *key, const char *val, void *data);
126 /*This function will be executed upon alarm expiry*/
127 static int __alarm_callback(alarm_id_t alarm_id_rec, void *user_param)
129 time_t current_time = { 0, };
132 TEST_APP_LOG_PRINT("Alarm[%d] has expired at %s\n", alarm_id_rec,
133 ctime(¤t_time));
134 printf("Alarm[%d] has expired at %s\n", alarm_id_rec,
135 ctime(¤t_time));
141 /*This function will be executed upon alarm expiry*/
142 static int __alarm_callback1(alarm_id_t alarm_id_rec, void *user_param)
144 time_t current_time = { 0, };
146 printf("Callback function 2 executed\n");
148 TEST_APP_LOG_PRINT("Alarm[%d] has expired at %s\n", alarm_id_rec,
149 ctime(¤t_time));
150 printf("Alarm[%d] has expired at %s\n", alarm_id_rec,
151 ctime(¤t_time));
157 /*This function prints the result of Alarm manager API call*/
158 static void __print_api_return_result(int err_no, const char *api_name)
161 printf("Alarm Manager API \"%s\" retuned with result: ", api_name);
164 case ERR_ALARM_INVALID_PARAM:{
166 ("Alarm Manager error: \"ERR_ALARM_INVALID_PARAM\"\n");
169 case ERR_ALARM_INVALID_ID:{
171 ("Alarm Manager error: \"ERR_ALARM_INVALID_ID\"\n");
174 case ERR_ALARM_INVALID_REPEAT:{
176 ("Alarm Manager error: \"ERR_ALARM_INVALID_REPEAT\"\n");
179 case ERR_ALARM_INVALID_TIME:{
181 ("Alarm Manager error: \"ERR_ALARM_INVALID_TIME\"\n");
184 case ERR_ALARM_INVALID_DATE:{
186 ("Alarm Manager error: \"ERR_ALARM_INVALID_DATE\"\n");
189 case ERR_ALARM_NO_SERVICE_NAME:{
191 ("Alarm Manager error: \"ERR_ALARM_NO_SERVICE_NAME\"\n");
194 case ERR_ALARM_NO_PERMISSION:{
196 ("Alarm Manager error: \"ERR_ALARM_NO_PERMISSION\"\n");
199 case ERR_ALARM_INVALID_TYPE:{
201 ("Alarm Manager error: \"ERR_ALARM_INVALID_TYPE\"\n");
204 case ERR_ALARM_SYSTEM_FAIL:{
206 ("Alarm Manager error: \"ERR_ALARM_SYSTEM_FAIL\"\n");
209 case ALARMMGR_RESULT_SUCCESS:{
211 ("Alarm API Success: \"ALARMMGR_RESULT_SUCCESS\"\n");
215 printf("Alarm Manager error: Unknow Error \n");
219 /*Depending upon the test scenario,
220 these errno are added to assert()! */
221 assert(err_no == ALARMMGR_RESULT_SUCCESS
222 || err_no == ERR_ALARM_INVALID_ID
223 || err_no == ERR_ALARM_INVALID_PARAM);
225 assert(err_no == ALARMMGR_RESULT_SUCCESS);
232 static void __print_appsvc_bundle_data(const char *key, const char *val, void *data){
233 printf("Key-->[%s], Val-->[%s]\n",key,val);
237 /*This function is to take command line integer input from the user*/
238 static int __get_integer_input_data(void)
240 char input_str[1024] = { 0, };
243 if (fgets(input_str, 1024, stdin) == NULL) {
244 printf("Input buffer overflow....\n");
248 if (sscanf(input_str, "%4d", &data) != 1) {
249 printf("Input only integer option....\n");
256 /*Function to get alarm persistance type*/
257 static int __get_alarm_persistance_type(void)
259 int type = ALARM_TYPE_VOLATILE;
261 printf("Enter Type\n");
262 printf("1. ALARM_TYPE_DEFAULT \n");
263 printf("2. ALARM_TYPE_VOLATILE\n");
264 printf("Enter Choice between [1-2]....\n");
265 alarm_type = __get_integer_input_data();
267 switch (alarm_type) {
268 case USER_INPUT_DEFAULT:
270 type = ALARM_TYPE_DEFAULT;
273 case USER_INPUT_VOLATILE:
275 type = ALARM_TYPE_VOLATILE;
280 printf("Invalid option....Try Again\n");
288 static char *__get_alarm_destination(void)
291 char *destination = NULL;
292 printf("[Optional]: Do you want to provide Destination?\n");
295 printf("Enter Choice between [1-2]....\n");
296 alarm_type = __get_integer_input_data();
297 switch (alarm_type) {
301 destination = (char *)malloc(1024);
302 if (NULL == destination) {
306 ("Enter destination: [Ex:com.samsung.alarm-test "
307 "or com.samsung.gallery...]\n");
308 if (fgets(destination, 1024, stdin) == NULL) {
309 printf("Input buffer overflow....,try again\n");
313 destination[strlen(destination) - 1] = '\0';
323 printf("Invalid option....Try Again\n");
331 static int __get_alarm_repeat_mode(void)
334 printf("Enter Repeat Mode:\n");
335 printf("0. ALARM_REPEAT_MODE_ONCE\n");
336 printf("1. ALARM_REPEAT_MODE_REPEAT\n");
337 printf("2. ALARM_REPEAT_MODE_WEEKLY\n");
338 printf("3. ALARM_REPEAT_MODE_MONTHLY\n");
339 printf("4. ALARM_REPEAT_MODE_ANNUALLY\n");
340 printf("5. ALARM_REPEAT_MODE_MAX\n");
341 printf("Enter Choice between [0-5]....\n");
342 repeat_mode = __get_integer_input_data();
343 if (repeat_mode > 5 || repeat_mode < 0) {
344 printf("Invalid option....Try Again\n");
350 static void __test_alarm_manager_set_rtc_wakeup_phone(void){
353 alarm_date_t time1={0,};
357 printf("current time: %s\n", ctime(¤t_time));
359 printf("Enter Year: ");
360 time1.year = __get_integer_input_data();
362 printf("Enter month: ");
363 time1.month = __get_integer_input_data();
365 printf("Enter day: ");
366 time1.day = __get_integer_input_data();
368 printf("Enter hour: ");
369 time1.hour = __get_integer_input_data();
371 printf("Enter minute: ");
372 time1.min = __get_integer_input_data();
374 printf("Enter second: ");
375 time1.sec = __get_integer_input_data();
377 ret = alarmmgr_set_rtc_time(&time1);
379 __print_api_return_result(ret, "alarmmgr_set_rtc_time");
385 /*Function to create alarm in the calender input format*/
386 static void __create_calendar_alarm(void)
388 char *destination = NULL;
390 struct tm current_tm;
391 alarm_entry_t *alarm_info = NULL;
393 alarm_date_t test_time;
395 int year, month, day, hour, min, sec;
398 year = month = day = hour = min = sec = 0;
401 printf("current time: %s\n", ctime(¤t_time));
403 localtime_r(¤t_time, ¤t_tm);
404 alarm_info = alarmmgr_create_alarm();
405 assert(alarm_info != NULL);
408 test_time.year = current_tm.tm_year;
409 test_time.month = current_tm.tm_mon;
410 test_time.day = current_tm.tm_mday;
412 test_time.hour = current_tm.tm_hour;
413 test_time.min = current_tm.tm_min + 1;
417 printf("Enter Year of Alarm Expiry: ");
418 year = __get_integer_input_data();
420 printf("Enter month of Alarm Expiry: ");
421 month = __get_integer_input_data();
423 printf("Enter day of Alarm Expiry: ");
424 day = __get_integer_input_data();
426 printf("Enter hour of Alarm Expiry: ");
427 hour = __get_integer_input_data();
429 printf("Enter minute of Alarm Expiry: ");
430 min = __get_integer_input_data();
432 printf("Enter second Alarm Expiry: ");
433 sec = __get_integer_input_data();
435 test_time.year = year;
436 test_time.month = month;
438 test_time.hour = hour;
442 ("Note: Test Program will exit After [Year:%d Month:%d Day:%d "
443 "at Hour:%d Min:%d Sec:%d]. Please wait....\n\n",
444 year, month, day, hour, min, sec);
447 result = alarmmgr_set_time(alarm_info, test_time);
448 __print_api_return_result(result, "alarmmgr_set_time");
451 repeat_mode = ALARM_REPEAT_MODE_WEEKLY;
453 repeat_mode = __get_alarm_repeat_mode();
455 result = alarmmgr_set_repeat_mode(alarm_info, repeat_mode,
456 ALARM_WDAY_SUNDAY | ALARM_WDAY_MONDAY
457 | ALARM_WDAY_TUESDAY |
458 ALARM_WDAY_WEDNESDAY |
459 ALARM_WDAY_THURSDAY |
461 ALARM_WDAY_SATURDAY);
462 __print_api_return_result(result, "alarmmgr_set_repeat_mode");
465 type = (random() % 2) + 1;
467 type = __get_alarm_persistance_type();
469 result = alarmmgr_set_type(alarm_info, type);
470 __print_api_return_result(result, "alarmmgr_set_type");
474 alarmmgr_add_alarm_with_localtime(alarm_info, destination,
477 destination = __get_alarm_destination();
479 alarmmgr_add_alarm_with_localtime(alarm_info, destination,
481 __print_api_return_result(result, "alarmmgr_add_alarm_with_localtime");
482 printf("Created Alarm with Alarm ID %d\n", alarm_id);
487 pgm_exit_time = 70000;
489 ("Note: Test Program will exit After %f seconds..."
490 "Please wait....\n\n", (float)pgm_exit_time / 1000);
495 /*Function to create alarm with a delay for first expiry and
496 alarm expiry inteval for subsequent alarm*/
497 static void __create_interval_alarm(void)
499 time_t current_time = { 0, };
505 char *destination = NULL;
512 printf("current time: %s\n", ctime(¤t_time));
513 printf("Enter First Delay (in seconds) for alarm: \n");
514 delay = __get_integer_input_data();
520 printf("Enter Alarm repeat Interval in seconds (if 0, no repeat): \n");
521 interval = __get_integer_input_data();
525 type = (random() % 2) + 1;
527 type = __get_alarm_persistance_type();
531 multiple_alarm = true;
532 for (i = 0; i < ITER_COUNT; i++) {
536 alarmmgr_add_alarm(type, delay, interval,
537 destination, &alarm_id_arr[i]);
538 __print_api_return_result(result, "alarmmgr_add_alarm");
541 destination = __get_alarm_destination();
543 alarmmgr_add_alarm(type, delay, interval, destination, &alarm_id);
544 __print_api_return_result(result, "alarmmgr_add_alarm");
545 printf("Created Alarm with Alarm ID %d\n", alarm_id);
551 pgm_exit_time = ((delay + interval) * 1000) + 100;
553 ("Note: Test Program will exit After %f seconds..."
554 "Please wait....\n\n", (float)pgm_exit_time / 1000);
559 /*Function to create alarm (with app-svc information)
560 in the calender input format */
561 static void __create_app_svc_calendar_alarm(void)
564 struct tm current_tm;
565 alarm_entry_t *alarm_info = NULL;
567 alarm_date_t test_time;
573 char pkgname[1024] = { 0, };
575 memset(pkgname, '\0', 1024);
577 int year, month, day, hour, min, sec;
578 year = month = day = hour = min = sec = 0;
581 printf("current time: %s\n", ctime(¤t_time));
583 localtime_r(¤t_time, ¤t_tm);
584 alarm_info = alarmmgr_create_alarm();
585 assert(alarm_info != NULL);
588 test_time.year = current_tm.tm_year;
589 test_time.month = current_tm.tm_mon;
590 test_time.day = current_tm.tm_mday;
592 test_time.hour = current_tm.tm_hour;
593 test_time.min = current_tm.tm_min + 1;
596 printf("Enter Year of Alarm Expiry: ");
597 year = __get_integer_input_data();
599 printf("Enter month of Alarm Expiry: ");
600 month = __get_integer_input_data();
602 printf("Enter day of Alarm Expiry: ");
603 day = __get_integer_input_data();
605 printf("Enter hour of Alarm Expiry: ");
606 hour = __get_integer_input_data();
608 printf("Enter minute of Alarm Expiry: ");
609 min = __get_integer_input_data();
611 printf("Enter second Alarm Expiry: ");
612 sec = __get_integer_input_data();
614 test_time.year = year;
615 test_time.month = month;
617 test_time.hour = hour;
622 ("Note: Test Program will exit After "
623 "[Year:%d Month:%d Day:%d at Hour:%d Min:%d Sec:%d]."
624 " Please wait....\n\n", year, month, day, hour, min, sec);
626 result = alarmmgr_set_time(alarm_info, test_time);
627 __print_api_return_result(result, "alarmmgr_set_time");
630 repeat_mode = ALARM_REPEAT_MODE_WEEKLY;
632 repeat_mode = __get_alarm_repeat_mode();
634 result = alarmmgr_set_repeat_mode(alarm_info, repeat_mode,
635 ALARM_WDAY_SUNDAY | ALARM_WDAY_MONDAY
636 | ALARM_WDAY_TUESDAY |
637 ALARM_WDAY_WEDNESDAY |
638 ALARM_WDAY_THURSDAY |
640 ALARM_WDAY_SATURDAY);
641 __print_api_return_result(result, "alarmmgr_set_repeat_mode");
644 type = (random() % 2) + 1;
646 type = __get_alarm_persistance_type();
648 result = alarmmgr_set_type(alarm_info, type);
649 __print_api_return_result(result, "alarmmgr_set_type");
658 printf("Enter APPSVC Operation\n");
659 printf("1. APPSVC_OPERATION_DEFAULT \n");
660 printf("2. APPSVC_OPERATION_SEARCH\n");
661 printf("3. No operation\n");
662 op_type = __get_integer_input_data();
666 appsvc_set_operation(b, APPSVC_OPERATION_DEFAULT);
670 appsvc_set_operation(b, APPSVC_OPERATION_SEARCH);
675 printf("NO APPSVC OPERATION!!!\n");
679 printf("Invalid option....Try Again\n");
686 sprintf(pkgname, "com.samsung.gallery");
690 ("Enter Pkgname: [Ex:com.samsung.alarm-test "
691 "or com.samsung.gallery...]\n");
692 if (fgets(pkgname, 1024, stdin) == NULL) {
693 printf("Input buffer overflow....,try again\n");
697 pkgname[strlen(pkgname) - 1] = '\0';
699 appsvc_set_pkgname(b, pkgname);
702 alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, (void *)b,
704 __print_api_return_result(result,
705 "alarmmgr_add_alarm_appsvc_with_localtime");
707 printf("Alarm created with alarm id %d\n", alarm_id);
711 pgm_exit_time = 70000;
714 ("Note: Test Program will exit After %f "
715 "seconds...Please wait....\n\n", (float)pgm_exit_time / 1000);
717 ("Upon Alarm Expiry, %s application will be "
718 "launched (purpose:testing)\n", pkgname);
722 /*Function to create alarm with a delay for first expiry and
723 alarm expiry inteval for subsequent alarm (with app-svc information)*/
724 static void __create_app_svc_interval_alarm(void)
726 time_t current_time = { 0, };
734 char pkgname[1024] = { 0, };
736 memset(pkgname, '\0', 1024);
741 delay = (random() % 9) + 1;
742 interval = (random() % 9);
744 printf("current time: %s\n", ctime(¤t_time));
745 printf("Enter First Delay (in seconds) for alarm: \n");
746 delay = __get_integer_input_data();
747 printf("Enter Alarm repeat Interval in seconds (if 0, no repeat): \n");
748 interval = __get_integer_input_data();
753 pgm_exit_time = ((delay + interval) * 1000) + 100;
755 ("Note: Test Program will exit After %f "
756 "seconds...Please wait....\n\n", (float)pgm_exit_time / 1000);
759 type = (random() % 2) + 1;
761 type = __get_alarm_persistance_type();
771 printf("Enter APPSVC Operation\n");
772 printf("1. APPSVC_OPERATION_DEFAULT \n");
773 printf("2. APPSVC_OPERATION_SEARCH\n");
774 printf("3. No operation\n");
775 op_type = __get_integer_input_data();
780 appsvc_set_operation(b, APPSVC_OPERATION_DEFAULT);
784 appsvc_set_operation(b, APPSVC_OPERATION_SEARCH);
789 printf("NO APPSVC OPERATION!!!\n");
793 printf("Invalid option....Try Again\n");
801 sprintf(pkgname, "com.samsung.gallery");
804 ("Enter Pkgname: [Ex:com.samsung.alarm-test "
805 "or com.samsung.gallery...]\n");
806 if (fgets(pkgname, 1024, stdin) == NULL) {
807 printf("Input buffer overflow...Try Again.\n");
810 pkgname[strlen(pkgname) - 1] = '\0';
812 appsvc_set_pkgname(b, pkgname);
815 multiple_alarm = true;
816 for (i = 0; i < ITER_COUNT; i++) {
820 alarmmgr_add_alarm_appsvc(type, delay, interval, (void *)b,
822 __print_api_return_result(result, "alarmmgr_add_alarm");
826 alarmmgr_add_alarm_appsvc(type, delay, interval, (void *)b,
828 __print_api_return_result(result, "alarmmgr_add_alarm_appsvc");
829 printf("Created Alarm with Alarm ID %d\n", alarm_id);
835 pgm_exit_time = ((delay + interval) * 1000) + 100;
837 ("Note: Test Program will exit After %f seconds..."
838 "Please wait....\n\n", (float)pgm_exit_time / 1000);
843 /*This function will be executed before program exit (if required)*/
844 static void __test_pgm_clean_up(void)
847 printf("Cleaning up test program\n");
850 if (multiple_alarm == true) {
851 for (i = 0; i < ITER_COUNT; i++) {
852 result = alarmmgr_remove_alarm(alarm_id_arr[i]);
853 __print_api_return_result(result,
854 "alarmmgr_remove_alarm");
856 multiple_alarm = false;
858 result = alarmmgr_remove_alarm(alarm_id);
859 __print_api_return_result(result, "alarmmgr_remove_alarm");
862 result = alarmmgr_remove_alarm(alarm_id);
863 __print_api_return_result(result, "alarmmgr_remove_alarm");
868 /*Function to exit gmainloop*/
869 static gboolean __timout_handler(gpointer user_data)
872 g_main_loop_quit(mainloop);
877 /*Main alarm create function which provides options
878 for different types of alarm creation*/
879 static void __test_alarm_manager_callback(void)
881 printf("Inside Alarm Callback test\n");
884 mainloop = g_main_loop_new(NULL, FALSE);
885 assert(mainloop != NULL);
887 result = alarmmgr_init("com.samsung.alarm-test");
888 __print_api_return_result(result, "alarmmgr_init");
890 result = alarmmgr_set_cb(__alarm_callback, NULL);
891 __print_api_return_result(result, "alarmmgr_set_cb");
892 result = alarmmgr_set_cb(__alarm_callback1, NULL);
893 __print_api_return_result(result, "alarmmgr_set_cb");
895 __create_interval_alarm();
897 g_timeout_add(pgm_exit_time, __timout_handler, NULL);
899 g_main_loop_run(mainloop);
902 __test_pgm_clean_up();
908 /*Main alarm create function which provides options
909 for different types of alarm creation*/
910 static void __test_alarm_manager_create_alarm(void)
916 alarm_type = sub_type;
918 char destination[1024] = { 0, };
920 printf("Enter Alarm Type\n");
921 printf("1. Interval with initial delay\n");
922 printf("2. App-svc Interval alarm with initial delay\n");
923 printf("3. Calendar Alarm\n");
924 printf("4. App-svc Calendar Alarm\n");
925 printf("Enter Choice between [1-4]....\n");
926 alarm_type = __get_integer_input_data();
928 mainloop = g_main_loop_new(NULL, FALSE);
929 assert(mainloop != NULL);
931 switch (alarm_type) {
935 result = alarmmgr_init("com.samsung.1000");
938 ("Enter pkgname (used to generate service name)"
939 "[Ex:com.samsung.alarm-test or "
940 "com.samsung.1000 etc]\n");
941 if (fgets(destination, 1024, stdin) == NULL) {
942 printf("Input buffer overflow....,try again\n");
946 destination[strlen(destination) - 1] = '\0';
948 result = alarmmgr_init(destination);
950 __print_api_return_result(result, "alarmmgr_init");
952 result = alarmmgr_set_cb(__alarm_callback, NULL);
953 __print_api_return_result(result, "alarmmgr_set_cb");
955 __create_interval_alarm();
961 printf("Inside APPSVC Interval Alarm test\n");
962 __create_app_svc_interval_alarm();
967 printf("Inside Calendar Alarm test\n");
969 result = alarmmgr_init("com.samsung.1000");
972 ("Enter pkgname (used to generate service name)"
973 "[Ex:com.samsung.alarm-test or "
974 "com.samsung.1000 etc]\n");
975 if (fgets(destination, 1024, stdin) == NULL) {
976 printf("Input buffer overflow....,try again\n");
980 destination[strlen(destination) - 1] = '\0';
982 result = alarmmgr_init(destination);
984 __print_api_return_result(result, "alarmmgr_init");
986 result = alarmmgr_set_cb(__alarm_callback, NULL);
987 __print_api_return_result(result, "alarmmgr_set_cb");
989 __create_calendar_alarm();
994 printf("Inside APPSVC Calendar Alarm test\n");
995 __create_app_svc_calendar_alarm();
1000 printf("Invalid option....Try Again\n");
1005 g_timeout_add(pgm_exit_time, __timout_handler, NULL);
1007 g_main_loop_run(mainloop);
1010 __test_pgm_clean_up();
1016 /*Main alarm get information function which provides
1017 different options of getting alarm information*/
1018 static void __test_alarm_manager_get_information(void)
1021 printf("Inside Get Info Interval Alarm test\n");
1024 alarm_entry_t *alarm_info;
1027 alarm_date_t time = { 0, };
1032 printf("1. Get Existing Alarm's Information\n");
1033 printf("2. Create Alarm & Get Information\n");
1034 option = __get_integer_input_data();
1036 alarm_info = alarmmgr_create_alarm();
1037 assert(alarm_info != NULL);
1042 printf("Enter Alarm Id: \n");
1043 alarm_id = __get_integer_input_data();
1044 result = alarmmgr_get_info(alarm_id, alarm_info);
1045 __print_api_return_result(result, "alarmmgr_get_info");
1046 result = alarmmgr_get_time(alarm_info, &time);
1047 __print_api_return_result(result, "alarmmgr_get_time");
1048 printf("day is %d\n", time.day);
1049 printf("Alarm Get Info Success\n");
1054 result = alarmmgr_init("com.samsung.10000");
1055 __print_api_return_result(result, "alarmmgr_init");
1058 type = (random() % 2) + 1;
1060 type = __get_alarm_persistance_type();
1064 alarmmgr_add_alarm(type, 2, 0, NULL, &alarm_id);
1065 __print_api_return_result(result, "alarmmgr_add_alarm");
1066 printf("Created Alarm with Alarm ID %d\n", alarm_id);
1068 pgm_exit_time = 3000;
1069 g_timeout_add(pgm_exit_time, __timout_handler, NULL);
1071 result = alarmmgr_get_info(alarm_id, alarm_info);
1072 __print_api_return_result(result, "alarmmgr_get_info");
1074 alarm_date_t time = { 0, };
1075 result = alarmmgr_get_time(alarm_info, &time);
1076 __print_api_return_result(result, "alarmmgr_get_time");
1078 printf("day is %d\n", time.day);
1079 printf("Alarm Get Info Success\n");
1081 __test_pgm_clean_up();
1087 printf("Invalid option\n");
1094 static void __test_alarm_manager_get_appsvc_information(void)
1098 printf("Inside Get Info Interval Alarm test\n");
1101 alarm_entry_t *alarm_info;
1107 printf("1. Get Existing Alarm's Information\n");
1108 printf("2. Create Alarm & Get Information\n");
1109 option = __get_integer_input_data();
1111 alarm_info = alarmmgr_create_alarm();
1112 assert(alarm_info != NULL);
1117 printf("Enter Alarm ID:\n");
1118 alarm_id = __get_integer_input_data();
1120 b = alarmmgr_get_alarm_appsvc_info(alarm_id, &result);
1123 bundle_iterate(b, __print_appsvc_bundle_data, NULL);
1125 __print_api_return_result(result, "alarmmgr_get_alarm_appsvc_info");
1131 mainloop = g_main_loop_new(NULL, FALSE);
1132 assert(mainloop != NULL);
1134 __create_app_svc_interval_alarm();
1136 b = alarmmgr_get_alarm_appsvc_info(alarm_id, &result);
1137 __print_api_return_result(result, "alarmmgr_get_alarm_appsvc_info");
1139 bundle_iterate(b, __print_appsvc_bundle_data, NULL);
1141 g_timeout_add(2000, __timout_handler, NULL);
1143 g_main_loop_run(mainloop);
1146 __test_pgm_clean_up();
1152 printf("Invalid option\n");
1161 static int __alarm_id_retrive_callback(alarm_id_t id, void *user_param)
1164 n = (int *)user_param;
1166 printf("Invalid Parameter in test program");
1169 printf("[%d]Alarm ID is %d\n", *n, id);
1175 static void __test_alarm_manager_get_alarm_ids(void)
1177 printf("Inside Get Ids Alarm test\n");
1185 printf("1. Get Existing Alarm's ID\n");
1186 printf("2. Create Alarm & Get ID\n");
1188 option = __get_integer_input_data();
1193 result = alarmmgr_init("com.samsung.1000");
1194 __print_api_return_result(result, "alarmmgr_init");
1196 alarmmgr_enum_alarm_ids(__alarm_id_retrive_callback,
1198 __print_api_return_result(result,
1199 "alarmmgr_enum_alarm_ids");
1204 result = alarmmgr_init("com.samsung.test");
1205 __print_api_return_result(result, "alarmmgr_init");
1208 type = (random() % 2) + 1;
1210 type = __get_alarm_persistance_type();
1212 result = alarmmgr_add_alarm(type, 2, 0,
1214 printf("Created Alarm with Alarm ID %d\n", alarm_id);
1216 __print_api_return_result(result, "alarmmgr_add_alarm");
1218 result = alarmmgr_add_alarm(type, 3, 0,
1220 __print_api_return_result(result, "alarmmgr_add_alarm");
1221 printf("Created Alarm with Alarm ID %d\n", alarm_id);
1223 pgm_exit_time = 5100;
1224 g_timeout_add(pgm_exit_time, __timout_handler, NULL);
1227 alarmmgr_enum_alarm_ids(__alarm_id_retrive_callback,
1229 __print_api_return_result(result,
1230 "alarmmgr_enum_alarm_ids");
1236 printf("Invalid option\n");
1243 /*Main alarm delete test function which provides options
1244 for different types of alarm deletion*/
1245 static void __test_alarm_manager_delete_alarm(void)
1250 printf("Inside Delete Alarm test\n");
1255 printf("1. Delete Existing Alarm\n");
1256 printf("2. Create Alarm & Delete\n");
1258 option = __get_integer_input_data();
1263 printf("Enter Alarm Id: \n");
1264 option = __get_integer_input_data();
1266 result = alarmmgr_remove_alarm(option);
1267 __print_api_return_result(result,
1268 "alarmmgr_remove_alarm");
1273 result = alarmmgr_init("com.samsung.test");
1274 __print_api_return_result(result, "alarmmgr_init");
1277 type = (random() % 2) + 1;
1279 type = __get_alarm_persistance_type();
1281 result = alarmmgr_add_alarm(type, 2, 0,
1283 __print_api_return_result(result, "alarmmgr_add_alamr");
1284 printf("Created Alarm with Alarm ID %d\n", alarm_id);
1286 result = alarmmgr_remove_alarm(alarm_id);
1287 __print_api_return_result(result,
1288 "alarmmgr_remove_alarm");
1294 printf("Invalid Option\n");
1301 /*Entry point of the test program*/
1302 int main(int argc, char **argv)
1311 /*test result will be written into below file */
1312 fd = open("/var/alarm_test.log", O_CREAT | O_RDWR | O_APPEND, 0666);
1314 printf("Unable to create log file\n");
1318 printf("Insufficient arguments\n");
1320 ("Example: ./test_alarmmgr.exe {all|create_interval|"
1321 "create_svc_interval|create_calendar|create_svc_calendar|"
1322 "delete|get_id|callback} <iteration>");
1331 char *test_job = NULL;
1334 iteration = atoi(argv[2]);
1336 printf("##################Alarm Test for %s Starts##################\n",
1340 for (i = 0; i < iteration; i++) {
1341 printf("########ITERATION %d #############\n", i);
1342 if (strncmp(test_job, "create_interval", 15) == 0) {
1343 sub_type = INTERVAL;
1344 __test_alarm_manager_create_alarm();
1345 } else if (strncmp(test_job, "create_svc_interval", 19) == 0) {
1346 sub_type = INTERVAL_APPSVC;
1347 __test_alarm_manager_create_alarm();
1348 } else if (strncmp(test_job, "create_calendar", 15) == 0) {
1349 sub_type = CALENDAR;
1350 __test_alarm_manager_create_alarm();
1351 } else if (strncmp(test_job, "create_svc_calendar", 19) == 0) {
1352 sub_type = CALENDAR_APPSVC;
1353 __test_alarm_manager_create_alarm();
1354 } else if (strncmp(test_job, "delete", 6) == 0) {
1355 __test_alarm_manager_delete_alarm();
1356 } else if (strncmp(test_job, "get_info", 8) == 0) {
1357 __test_alarm_manager_get_information();
1358 } else if (strncmp(test_job, "get_id", 6) == 0) {
1359 __test_alarm_manager_get_alarm_ids();
1360 } else if (strncmp(test_job, "callback", 8) == 0) {
1361 __test_alarm_manager_callback();
1362 } else if (strncmp(test_job, "all", 3) == 0) {
1363 for (k = INTERVAL; k <= CALENDAR_APPSVC; k++) {
1365 __test_alarm_manager_create_alarm();
1367 __test_alarm_manager_delete_alarm();
1368 __test_alarm_manager_get_information();
1369 __test_alarm_manager_get_alarm_ids();
1370 __test_alarm_manager_get_alarm_ids();
1371 __test_alarm_manager_callback();
1374 printf("Invalid Option\n");
1378 printf("##################Alarm Test for %s Ends##################\n\n",
1383 /*Compile with disabling AUTO_TEST flag for individual testing */
1388 printf("*********ALARM MANAGER TESTING************\n");
1389 printf("1. Test Alarm-Manager: Create Alarm\n");
1390 printf("2. Test Alarm-Manager: Delete Alarm\n");
1391 printf("3. Test Alarm-Manager: Get Alarm Information\n");
1392 printf("4. Test Alarm-Manager: Get Alarm ID\n");
1393 printf("5. Test Alarm-Manager: Callback\n");
1394 printf("6. Test Alarm-Manager: Get Alarm app-svc(bundle) Information\n");
1395 printf("7. Test Alarm-Manager: Set RTC Wakeup\n");
1396 printf("Enter Choice between [1-7]....\n");
1398 option = __get_integer_input_data();
1402 __test_alarm_manager_create_alarm();
1407 __test_alarm_manager_delete_alarm();
1412 __test_alarm_manager_get_information();
1417 __test_alarm_manager_get_alarm_ids();
1422 __test_alarm_manager_callback();
1427 __test_alarm_manager_get_appsvc_information();
1432 __test_alarm_manager_set_rtc_wakeup_phone();
1437 printf("Invalid Input!!! Retry again\n");
1441 printf("****************************************\n");