4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
29 #include "menu_db_util.h"
34 #define MAX_LOCAL_BUFSZ 128
35 #define QUERY_LEN 10240
42 typedef struct _test_func_t {
49 static bundle *create_internal_bundle(int start)
55 for (i = start; i < gargc - 1; i++) {
56 if ((i + 1) > gargc - 1)
57 bundle_add(kb, gargv[i], " ");
59 bundle_add(kb, gargv[i], gargv[i + 1]);
71 kb = create_internal_bundle(3);
75 printf("[aul_launch_app %d test] %s \n", num++, gargv[2]);
77 ret = aul_launch_app(gargv[2], kb);
86 int launch_test_async()
92 kb = create_internal_bundle(3);
96 printf("[aul_launch_app %d test] %s \n", num++, gargv[2]);
98 ret = aul_launch_app_async(gargv[2], kb);
107 int dbus_launch_test()
112 kb = create_internal_bundle(3);
118 ret = aul_launch_app(gargv[2], kb);
128 static void prt_recvd_bundle(const char *key, const char *value, void *d)
130 printf("recvd - key: %s, value: %s\n", key, value);
133 static void cb_func(bundle *kb, int is_cancel, void *data)
139 printf("==== %d : canceled(preemptted) my request ===\n", num);
141 printf("==== %d : result packet ===\n", num);
142 bundle_iterate(kb, prt_recvd_bundle, NULL);
145 if ((strcmp(cmd, "launch_res") == 0)
146 || (strcmp(cmd, "open_svc_res") == 0))
147 ecore_main_loop_quit();
154 printf("[aul_open_app %d test] %s \n", num++, gargv[2]);
155 return aul_open_app(gargv[2]);
162 printf("[aul_open_app %d test] %s \n", num++, gargv[2]);
163 return aul_resume_app(gargv[2]);
166 int resume_pid_test()
169 printf("[aul_resume_pid %d test] %d \n", num++, apn_pid);
170 return aul_resume_pid(apn_pid);
176 printf("[aul_term_pid %d test] %d \n", num++, apn_pid);
177 return aul_terminate_pid(apn_pid);
180 int term_pid_without_restart_test()
183 printf("[aul_term_pid_without_restart %d test] %d \n", num++, apn_pid);
184 return aul_terminate_pid_without_restart(apn_pid);
187 int term_req_pid_test()
190 printf("[aul_subapp_terminate_request_pid %d test] %d \n", num++, apn_pid);
191 return aul_subapp_terminate_request_pid(apn_pid);
194 static test_func_t scn_func[] = {
195 {"n", launch_test, "launch_test", ""},
196 {"n", launch_test, "launch_test", ""},
197 {"n", resume_test, "open_test", ""},
198 {"n", resume_test, "open_test", ""},
199 {"p", resume_pid_test, "resume_pid_test", ""},
200 {"p", resume_pid_test, "resume_pid_test", ""},
201 {"p", term_pid_test, "term_pid_test", ""},
202 {"n", resume_test, "open_test", ""},
203 {"n", launch_test, "launch_test", ""}
206 static Eina_Bool run_all_test(void *data)
211 if (pos > sizeof(scn_func) / sizeof(test_func_t) - 1) {
212 printf("all internal test done\n");
213 ecore_main_loop_quit();
217 if (strncmp(scn_func[pos].name, "n", 1) == 0) {
218 printf("[test %d] %s , pkgname = %s\n", pos, scn_func[pos].desc,
220 apn_pid = scn_func[pos].func();
221 printf("... return pid = %d\n", apn_pid);
223 printf("[test %d] %s , pid = %d\n", pos, scn_func[pos].desc,
225 ret = scn_func[pos].func();
226 printf("... return res = %d\n", ret);
235 ecore_timer_add(2, run_all_test, NULL);
241 if (aul_app_is_running(gargv[2]))
242 printf("... %s is running\n", gargv[2]);
244 printf("... %s is not running\n", gargv[2]);
249 int iterfunc(const aul_app_info *info, void *data)
251 printf("\t==========================\n");
252 printf("\t pkg_name: %s\n", info->appid);
253 printf("\t app_path: %s\n", info->app_path);
254 printf("\t running pid: %d\n", info->pid);
255 printf("\t==========================\n");
260 int get_allpkg_test()
263 printf("[aul_app_get_ruuning_app_info %d test] \n", num++);
264 return aul_app_get_running_app_info(iterfunc, NULL);
267 int get_pkgpid_test()
271 char buf[MAX_LOCAL_BUFSZ];
273 printf("[aul_app_get_appid_bypid %d test] \n", num++);
274 pid = atoi(gargv[2]);
276 if (aul_app_get_appid_bypid(pid, buf, sizeof(buf)) < 0)
277 printf("no such pkg by %d\n", pid);
279 printf("pkgname = %s, pid = %d\n", buf, pid);
284 int get_mime_file_test()
288 char buf[MAX_LOCAL_BUFSZ];
289 printf("[aul_get_mime_from_file %d test] %s \n", num++, gargv[2]);
290 ret = aul_get_mime_from_file(gargv[2], buf, sizeof(buf));
292 printf("==> mime type = %s\n", buf);
296 int get_mime_content_test()
300 char buf[MAX_LOCAL_BUFSZ];
301 printf("[aul_get_mime_from_content %d test] %s \n", num++, gargv[2]);
302 ret = aul_get_mime_from_content(gargv[2], buf, sizeof(buf));
304 printf("==> mime type = %s\n", buf);
308 int aul_get_mime_icon_test()
311 char buf[MAX_LOCAL_BUFSZ];
312 ret = aul_get_mime_icon(gargv[2], buf, sizeof(buf));
314 printf("==> mimetype %s : iconname = %s\n", gargv[2], buf);
318 int aul_get_mime_description_test()
321 char buf[MAX_LOCAL_BUFSZ];
322 ret = aul_get_mime_description(gargv[2], buf, sizeof(buf));
324 printf("==> mimetype %s : description = %s\n", gargv[2], buf);
328 int aul_get_mime_extension_test()
331 char buf[MAX_LOCAL_BUFSZ];
332 ret = aul_get_mime_extension(gargv[2], buf, sizeof(buf));
334 printf("==> mimetype %s : extension = %s\n", gargv[2], buf);
338 static void print_menu_db_info(const app_info_from_db *info)
341 printf("pkg %s no found\n", gargv[2]);
345 printf("\t==========================\n");
346 printf("\t pkg_name: %s\n", info->pkg_name);
347 printf("\t app_path: %s\n", info->app_path);
348 printf("\t is_minst: %d\n", 0);
349 printf("\t==========================\n");
352 static int get_pkg_func()
354 app_info_from_db *info;
356 info = _get_app_info_from_db_by_pkgname(gargv[2]);
357 print_menu_db_info(info);
359 _free_app_info_from_db(info);
364 static int update_running_list()
366 aul_running_list_update(gargv[2], gargv[3], gargv[4]);
373 static int set_pkg_func()
378 char query[QUERY_LEN];
383 appname = strrchr(apppath,'/')+1;
384 snprintf(ai.app_icon_path, PATH_LEN, "aul_test_icon_path/%d",getpid());
385 snprintf(ai.desktop_path, PATH_LEN,
386 "aul_test_desktop_path/%d",getpid());
388 snprintf (query, sizeof(query), "insert into "TABLE_MENU"(\
394 values ('%s', '%s', '%s', '%s', '%s')",
398 record->app_icon_path,
399 record->desktop_path,
402 // TODO: record_add is not supported anymore; use AIL
403 if (record_add(ADD_ICON, &ai)){
404 printf("set pkg success\n");
408 printf("set pkg fail\n");
413 static int del_pkg_func()
417 memset(&ai, 0, sizeof(app_info));
418 snprintf(ai.pkg_name, NAME_LEN, "%s", gargv[2]);
420 // TODO: record_add is not supported anymore; use AIL
421 if(record_delete(DELETE_MENU, &ai)){
422 printf("del pkg success\n");
426 printf("del pkg fail\n");
432 static int test_regex()
435 char mime[MAX_LOCAL_BUFSZ];
440 printf("=======================\n");
442 token = strtok_r(gargv[2], " \t\n,.()", &saveptr);
443 if (aul_get_mime_from_content(token, mime, sizeof(mime)) == AUL_R_OK)
444 printf("found %s %s\n", mime, token);
447 token = strtok_r(NULL, " \t\n,()", &saveptr);
448 if (aul_get_mime_from_content(token, mime, sizeof(mime)) ==
450 printf("found %s %s\n", mime, token);
453 PERF("======= parse end =====\n");
457 static test_func_t test_func[] = {
458 {"launch",launch_test,"aul_launch_app test",
459 "[usage] launch <pkgname> <key1> <val1> <key2> <val2> ..."},
460 {"launch_async",launch_test_async,"aul_launch_app test",
461 "[usage] launch_async <pkgname> <key1> <val1> <key2> <val2> ..."},
462 {"open",open_test,"aul_open_app test",
463 "[usage] open <pkgname>" },
464 {"resume",resume_test,"aul_resume_app test",
465 "[usage] resume <pkgname>" },
466 {"resume_pid",resume_pid_test,"aul_resume_pid test",
467 "[usage] resume_pid <pid>" },
468 {"term_pid", term_pid_test,"aul_terminate_pid test",
469 "[usage] term_pid <pid>" },
470 {"term_pid_without_restart", term_pid_without_restart_test,"aul_terminate_pid_without_restart test",
471 "[usage] term_pid_without_restart <pid>" },
472 {"term_req_pid", term_req_pid_test,"aul_subapp_terminate_request_pid test",
473 "[usage] term_req_pid <pid>" },
474 {"dbuslaunch", dbus_launch_test,"launch by dbus auto activation",
475 "[usage] term_pid <pid>" },
476 {"all",all_test,"test based on predefine scenario",
477 "[usage] all <pkgname>"},
479 {"is_run", is_run_test,"aul_is_running test",
480 "[usage] is_run <pkgname>"},
481 {"getallpkg", get_allpkg_test, "aul_app_get_running_app_info test",
482 "[usage] getallpkg all"},
483 {"getpkgpid", get_pkgpid_test, "aul_app_get_appid_bypid test",
484 "[usage] getpkgpid <pid>"},
486 {"get_mime_file", get_mime_file_test, "aul_get_mime_from_file test",
487 "[usage] get_mime_file <filename>"},
488 {"get_mime_content", get_mime_content_test, "aul_get_mime_from_content",
489 "[usage] get_mime_content <content>"},
491 {"get_mime_icon", aul_get_mime_icon_test, "aul_get_mime_icon test",
492 "[usage] get_mime_icon <mimetype>"},
493 {"get_mime_desc", aul_get_mime_description_test, "aul_get_mime_description test",
494 "[usage] get_mime_desc <mimetype>"},
495 {"get_mime_ext", aul_get_mime_extension_test, "aul_get_mime_extension test",
496 "[usage] get_mime_ext <mimetype>"},
498 {"test_regex", test_regex, "regular expression parser test",
499 "[usage] test_regex <full text>"},
501 {"getpkg", get_pkg_func, "get package",
502 "[usage] getpkg <pkgname>"},
503 {"update_list", update_running_list, "update running list",
504 "[usage] update_list <appid> <app_path> <pid>"},
506 {"setpkg", set_pkg_func, "set package",
507 "[usage] setpkg <pkgname> <apppath>"},
508 {"delpkg", del_pkg_func, "del package",
509 "[usage] getpkg <pkgname>"},
513 int callfunc(char *testname)
519 for (i = 0; i < sizeof(test_func) / sizeof(test_func_t); i++) {
521 if (strcmp(testname, tmp->name) == 0) {
523 if (strcmp(testname, "all")) {
525 printf("... test failed\n");
527 printf("... test successs ret = %d\n",
535 int dead_tracker(int pid, void *data)
537 printf("[DEAD] pid = %d dead\n", pid);
541 void print_usage(char *progname)
546 printf("[usage] %s <cmd> ...\n", progname);
547 printf(" - available cmd list\n");
549 for (i = 0; i < sizeof(test_func) / sizeof(test_func_t); i++) {
551 printf("\t%s : %s\n", tmp->name, tmp->desc);
552 printf("\t\t%s\n", tmp->usage);
555 printf("[note] getpkg/setpkg/delpkg/init_defapp_mime "
556 "cmd is internal purpose\n");
559 static Eina_Bool run_func(void *data)
563 if (strcmp(cmd, "launch_res") == 0 || strcmp(cmd, "all") == 0
564 || strcmp(cmd, "dbuslaunch") == 0
565 || strcmp(cmd, "open_svc_res") == 0)
568 ecore_main_loop_quit();
573 int main(int argc, char **argv)
576 print_usage(argv[0]);
585 apn_pid = atoi(argv[2]);
587 aul_launch_init(NULL, NULL);
589 /*aul_listen_app_dead_signal(dead_tracker,NULL); */
590 /*aul_listen_app_dead_signal(NULL,NULL); */
592 ecore_idler_add(run_func, NULL);
594 ecore_main_loop_begin();
599 /* vi: set ts=8 sts=8 sw=8: */