109
111
ret = g_dbus_proxy_call_sync(powerd_proxy,
110
112
"requestSysState",
111
g_variant_new("(i)", state),
113
g_variant_new("(si)", name, state),
112
114
G_DBUS_CALL_FLAGS_NONE,
149
151
ret = g_dbus_proxy_call_sync(powerd_proxy,
150
152
"requestDisplayState",
151
g_variant_new("(iu)", pdr.state, pdr.flags),
153
g_variant_new("(siu)", name, pdr.state, pdr.flags),
152
154
G_DBUS_CALL_FLAGS_NONE,
223
225
g_error_free(error);
226
g_variant_get(ret, "(a(si))", &iter);
228
g_variant_get(ret, "(a(ssi))", &iter);
227
229
while ((item = g_variant_iter_next_value (iter))) {
228
g_variant_get_child (item, 0, "s", &psr.owner);
229
g_variant_get_child (item, 1, "i", &psr.state);
230
g_variant_get_child (item, 0, "s", &psr.name);
231
g_variant_get_child (item, 1, "s", &psr.owner);
232
g_variant_get_child (item, 2, "i", &psr.state);
230
233
g_array_append_val(retarray, psr);
231
234
g_variant_unref(item);
247
250
for (i = 0; i < requests->len; i++) {
248
251
psr = &g_array_index(requests, struct PublicSysRequest, i);
249
printf(" Owner: %s, State: %d\n", psr->owner, psr->state);
252
printf(" Name: %s, Owner: %s, State: %d\n", psr->name,
253
psr->owner, psr->state);
272
276
g_error_free(error);
275
g_variant_get(ret, "(a(siu))", &iter);
279
g_variant_get(ret, "(a(ssiu))", &iter);
276
280
while ((item = g_variant_iter_next_value (iter))) {
277
g_variant_get_child(item, 0, "s", &pdr.owner);
278
g_variant_get_child(item, 1, "i", &pdr.state);
279
g_variant_get_child(item, 2, "u", &pdr.flags);
281
g_variant_get_child(item, 0, "s", &pdr.name);
282
g_variant_get_child(item, 1, "s", &pdr.owner);
283
g_variant_get_child(item, 2, "i", &pdr.state);
284
g_variant_get_child(item, 3, "u", &pdr.flags);
280
285
g_array_append_val(retarray, pdr);
281
286
g_variant_unref(item);
297
302
for (i = 0; i < requests->len; i++) {
298
303
pdr = &g_array_index(requests, struct PublicDispRequest, i);
299
printf(" Owner: %s, State: %d, Flags: %#08x\n",
300
pdr->owner, pdr->state, pdr->flags);
304
printf(" Name: %s, Owner: %s, State: %d, Flags: %#08x\n",
305
pdr->name, pdr->owner, pdr->state, pdr->flags);
436
441
main_loop = g_main_loop_new (NULL, FALSE);
438
443
// Hold active state request as long we're running tests
439
requestSysState(POWERD_SYS_STATE_ACTIVE, &main_cookie);
444
requestSysState("main-req", POWERD_SYS_STATE_ACTIVE, &main_cookie);
441
446
ret = g_spawn_async_with_pipes(NULL, argv, NULL,
442
447
G_SPAWN_SEARCH_PATH|G_SPAWN_DO_NOT_REAP_CHILD,
466
471
silence_errors(TRUE);
468
473
// Hold active state request as long we're running tests
469
requestSysState(POWERD_SYS_STATE_ACTIVE, &main_cookie);
474
requestSysState("main-req", POWERD_SYS_STATE_ACTIVE, &main_cookie);
471
for (i = 0; i < TEST_NUM_SYS_REQUESTS; i++)
472
do_test(requestSysState(POWERD_SYS_STATE_ACTIVE, &cookies[i]) == TRUE);
476
for (i = 0; i < TEST_NUM_SYS_REQUESTS; i++) {
478
snprintf(name, sizeof(name), "test-cookie-%d", i);
479
do_test(requestSysState(name, POWERD_SYS_STATE_ACTIVE, &cookies[i]) == TRUE);
474
482
// Make sure we have at least NUM_REQUESTS + 1
475
483
requests = listSysRequests();
501
509
g_array_free(requests, TRUE);
503
511
//cannot request the suspend state, this will fail
504
do_test(requestSysState(POWERD_SYS_STATE_SUSPEND, &cookie) == FALSE);
512
do_test(requestSysState("test-cookie", POWERD_SYS_STATE_SUSPEND, &cookie) == FALSE);
506
do_test(requestSysState(-1, &cookie) == FALSE);
507
do_test(requestSysState(POWERD_NUM_POWER_STATES, &cookie) == FALSE);
508
do_test(requestSysState(POWERD_NUM_POWER_STATES+1, &cookie) == FALSE);
514
do_test(requestSysState("test-cookie", -1, &cookie) == FALSE);
515
do_test(requestSysState("test-cookie", POWERD_NUM_POWER_STATES, &cookie) == FALSE);
516
do_test(requestSysState("test-cookie", POWERD_NUM_POWER_STATES+1, &cookie) == FALSE);
511
519
do_test(clearSysState(main_cookie) == TRUE);
527
535
silence_errors(TRUE);
529
537
// Hold active state request as long we're running tests
530
requestSysState(POWERD_SYS_STATE_ACTIVE, &main_cookie);
538
requestSysState("main-req", POWERD_SYS_STATE_ACTIVE, &main_cookie);
532
540
for (i = 0; i < TEST_NUM_DISP_REQUESTS; i++) {
542
snprintf(name, sizeof(name), "disp-test-%d", i);
533
543
pdr.state = state++;
536
546
pdr.flags |= POWERD_DISPLAY_FLAG_BRIGHT;
538
do_test(requestDisplayState(pdr, &cookies[i]) == TRUE);
548
do_test(requestDisplayState(pdr, name, &cookies[i]) == TRUE);
539
549
if (state >= POWERD_NUM_DISPLAY_STATES) {
570
do_test(requestDisplayState(pdr, &cookie) == FALSE);
580
do_test(requestDisplayState(pdr, "disp-test", &cookie) == FALSE);
572
582
pdr.state = POWERD_NUM_DISPLAY_STATES;
573
do_test(requestDisplayState(pdr, &cookie) == FALSE);
583
do_test(requestDisplayState(pdr, "disp-test", &cookie) == FALSE);
575
585
pdr.state = POWERD_DISPLAY_STATE_ON;
576
586
pdr.flags = 0xdeadbeef;
577
do_test(requestDisplayState(pdr, &cookie) == FALSE);
587
do_test(requestDisplayState(pdr, "disp-test", &cookie) == FALSE);
579
589
// updateDisplayState tests
580
590
pdr.state = POWERD_DISPLAY_STATE_ON;
582
do_test(requestDisplayState(pdr, &cookie) == TRUE);
592
do_test(requestDisplayState(pdr, "disp-test", &cookie) == TRUE);
584
594
// update with same state should be okay
585
595
do_test(updateDisplayState(pdr, cookie) == TRUE);
798
808
g_array_free(requests, TRUE);
800
810
else if (!strcmp(argv[1],"active-nc")) {
801
requestSysState(POWERD_SYS_STATE_ACTIVE,&cookie);
811
requestSysState("active-nc", POWERD_SYS_STATE_ACTIVE,&cookie);
802
812
printf("Power State requested, cookie is %s\n", cookie);
805
815
else if (!strcmp(argv[1],"active")) {
806
requestSysState(POWERD_SYS_STATE_ACTIVE,&cookie);
816
requestSysState("active", POWERD_SYS_STATE_ACTIVE,&cookie);
807
817
printf("Power State requested, cookie is %s.\nPress ctrl-c to exit.\n",
809
819
pause(); /* wait for SIGINT */
823
requestDisplayState(pdr,&cookie);
833
requestDisplayState(pdr, "disp-test", &cookie);
824
834
printf("Display State requested, cookie is %s.\nPress ctrl-c to exit.\n",
826
836
pause(); /* wait for SIGINT */
885
895
// This printf is read by the parent
886
896
printf("DBUSNAME: %s\n", bus_name);
887
897
// Grab some requests so we can see that they get cleared later
888
requestSysState(POWERD_SYS_STATE_ACTIVE,&cookie);
889
requestSysState(POWERD_SYS_STATE_ACTIVE,&cookie);
890
requestSysState(POWERD_SYS_STATE_ACTIVE,&cookie);
898
requestSysState("dbusnametest1", POWERD_SYS_STATE_ACTIVE,&cookie);
899
requestSysState("dbusnametest2", POWERD_SYS_STATE_ACTIVE,&cookie);
900
requestSysState("dbusnametest3", POWERD_SYS_STATE_ACTIVE,&cookie);
891
901
pdr.state = POWERD_DISPLAY_STATE_DONT_CARE;
893
requestDisplayState(pdr, &cookie);
894
requestDisplayState(pdr, &cookie);
895
requestDisplayState(pdr, &cookie);
903
requestDisplayState(pdr, "dbusnametest1", &cookie);
904
requestDisplayState(pdr, "dbusnametest2", &cookie);
905
requestDisplayState(pdr, "dbusnametest3", &cookie);
896
906
g_object_unref(bus);
897
907
// Exit here without cleanup