X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Ftest-bus-signature.c;h=3fc565c6208a6ca17364787f07f72f006ffdb504;hb=32f464809e8e487739fde53a2feb0afba70c8db7;hp=c4304697f036864f716df1249188028b597d3738;hpb=29ddb38fea134c6132e4f2dd608e9da3871eaebe;p=elogind.git diff --git a/src/libsystemd-bus/test-bus-signature.c b/src/libsystemd-bus/test-bus-signature.c index c4304697f..3fc565c62 100644 --- a/src/libsystemd-bus/test-bus-signature.c +++ b/src/libsystemd-bus/test-bus-signature.c @@ -27,6 +27,8 @@ #include "bus-internal.h" int main(int argc, char *argv[]) { + char prefix[256]; + int r; assert_se(signature_is_single("y", false)); assert_se(signature_is_single("u", false)); @@ -133,5 +135,29 @@ int main(int argc, char *argv[]) { assert_se(!object_path_is_valid("/foo//bar")); assert_se(!object_path_is_valid("/foo/aaaäöä")); + OBJECT_PATH_FOREACH_PREFIX(prefix, "/") { + log_info("<%s>", prefix); + assert_not_reached("???"); + } + + r = 0; + OBJECT_PATH_FOREACH_PREFIX(prefix, "/xxx") { + log_info("<%s>", prefix); + assert_se(streq(prefix, "/")); + assert_se(r == 0); + r++; + } + assert_se(r == 1); + + r = 0; + OBJECT_PATH_FOREACH_PREFIX(prefix, "/xxx/yyy/zzz") { + log_info("<%s>", prefix); + assert_se(r != 0 || streq(prefix, "/xxx/yyy")); + assert_se(r != 1 || streq(prefix, "/xxx")); + assert_se(r != 2 || streq(prefix, "/")); + r++; + } + assert_se(r == 3); + return 0; }