X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Ftest-bus-match.c;h=713311703832a7e2fbf534fba0a39feba12a3250;hb=840ceb897ff2b44275dcf2fe8227a750941789f0;hp=6c5d35b3d326f312ee03f35b96793e24b1a246a2;hpb=2a0958d2d011b2debdb266144754bb5cdc4da65d;p=elogind.git diff --git a/src/libsystemd/sd-bus/test-bus-match.c b/src/libsystemd/sd-bus/test-bus-match.c index 6c5d35b3d..713311703 100644 --- a/src/libsystemd/sd-bus/test-bus-match.c +++ b/src/libsystemd/sd-bus/test-bus-match.c @@ -33,8 +33,9 @@ static bool mask[32]; static int filter(sd_bus *b, sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { - log_info("Ran %i", PTR_TO_INT(userdata)); - mask[PTR_TO_INT(userdata)] = true; + log_info("Ran %u", PTR_TO_UINT(userdata)); + assert(PTR_TO_UINT(userdata) < ELEMENTSOF(mask)); + mask[PTR_TO_UINT(userdata)] = true; return 0; } @@ -85,9 +86,9 @@ int main(int argc, char *argv[]) { }; _cleanup_bus_message_unref_ sd_bus_message *m = NULL; - _cleanup_bus_unref_ sd_bus *bus = NULL; + _cleanup_bus_close_unref_ sd_bus *bus = NULL; enum bus_match_node_type i; - sd_bus_slot slots[15]; + sd_bus_slot slots[19]; int r; r = sd_bus_open_system(&bus); @@ -108,16 +109,20 @@ int main(int argc, char *argv[]) { assert_se(match_add(slots, &root, "arg1='two'", 12) >= 0); assert_se(match_add(slots, &root, "member='waldo',arg2path='/prefix/'", 13) >= 0); assert_se(match_add(slots, &root, "member=waldo,path='/foo/bar',arg3namespace='prefix'", 14) >= 0); + assert_se(match_add(slots, &root, "arg4='pi'", 15) >= 0); + assert_se(match_add(slots, &root, "arg4='pa'", 16) >= 0); + assert_se(match_add(slots, &root, "arg4='po'", 17) >= 0); + assert_se(match_add(slots, &root, "arg4='pu'", 18) >= 0); bus_match_dump(&root, 0); assert_se(sd_bus_message_new_signal(bus, &m, "/foo/bar", "bar.x", "waldo") >= 0); - assert_se(sd_bus_message_append(m, "ssss", "one", "two", "/prefix/three", "prefix.four") >= 0); + assert_se(sd_bus_message_append(m, "ssssas", "one", "two", "/prefix/three", "prefix.four", 3, "pi", "pa", "po") >= 0); assert_se(bus_message_seal(m, 1, 0) >= 0); zero(mask); assert_se(bus_match_run(NULL, &root, m) == 0); - assert_se(mask_contains((unsigned[]) { 9, 8, 7, 5, 10, 12, 13, 14 }, 8)); + assert_se(mask_contains((unsigned[]) { 9, 8, 7, 5, 10, 12, 13, 14, 15, 16, 17 }, 11)); assert_se(bus_match_remove(&root, &slots[8].match_callback) >= 0); assert_se(bus_match_remove(&root, &slots[13].match_callback) >= 0); @@ -126,7 +131,7 @@ int main(int argc, char *argv[]) { zero(mask); assert_se(bus_match_run(NULL, &root, m) == 0); - assert_se(mask_contains((unsigned[]) { 9, 5, 10, 12, 14, 7 }, 6)); + assert_se(mask_contains((unsigned[]) { 9, 5, 10, 12, 14, 7, 15, 16, 17 }, 9)); for (i = 0; i < _BUS_MATCH_NODE_TYPE_MAX; i++) { char buf[32];