diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-11-05 02:25:24 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-11-05 02:26:48 +0100 |
commit | 9b07511d658fa367f71de9f55fb60c37f0f596ad (patch) | |
tree | cca776dbb94951c7b760a85daaeeef92df14ff18 /src/libsystemd-bus/test-bus-marshal.c | |
parent | 0dcd14b940e4a6c9904e11952c8a98e9152938f3 (diff) |
bus: add sd_bus_message_skip() to skip over multiple fields
Diffstat (limited to 'src/libsystemd-bus/test-bus-marshal.c')
-rw-r--r-- | src/libsystemd-bus/test-bus-marshal.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/libsystemd-bus/test-bus-marshal.c b/src/libsystemd-bus/test-bus-marshal.c index baa269c9aa..8f270896a8 100644 --- a/src/libsystemd-bus/test-bus-marshal.c +++ b/src/libsystemd-bus/test-bus-marshal.c @@ -232,5 +232,35 @@ int main(int argc, char *argv[]) { assert_se(first_size == third_size); assert_se(memcmp(first, third, third_size) == 0); + r = sd_bus_message_rewind(m, true); + assert_se(r >= 0); + + assert_se(sd_bus_message_verify_type(m, 's', NULL) > 0); + + r = sd_bus_message_skip(m, "sas"); + assert_se(r > 0); + + assert_se(sd_bus_message_verify_type(m, 's', NULL) > 0); + + r = sd_bus_message_skip(m, "sass"); + assert_se(r >= 0); + + assert_se(sd_bus_message_verify_type(m, 'a', "{yv}") > 0); + + r = sd_bus_message_skip(m, "a{yv}"); + assert_se(r >= 0); + + assert_se(sd_bus_message_verify_type(m, 'b', NULL) > 0); + + r = sd_bus_message_read(m, "ba(ss)", &boolean, 3, &x, &y, &a, &b, &c, &d); + assert_se(r > 0); + assert_se(boolean); + assert_se(streq(x, "aaa")); + assert_se(streq(y, "1")); + assert_se(streq(a, "bbb")); + assert_se(streq(b, "2")); + assert_se(streq(c, "ccc")); + assert_se(streq(d, "3")); + return 0; } |