chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: put together messages with memfd payload correctly
[elogind.git]
/
src
/
libsystemd-bus
/
test-bus-zero-copy.c
diff --git
a/src/libsystemd-bus/test-bus-zero-copy.c
b/src/libsystemd-bus/test-bus-zero-copy.c
index 024a0bfddf9a15014511e5bd12b31250b31071d7..0d8435ec1eba827877fe2d5e2732f8bd255ed23c 100644
(file)
--- a/
src/libsystemd-bus/test-bus-zero-copy.c
+++ b/
src/libsystemd-bus/test-bus-zero-copy.c
@@
-38,6
+38,7
@@
int main(int argc, char *argv[]) {
int r, bus_ref;
sd_bus_message *m;
sd_memfd *f;
int r, bus_ref;
sd_bus_message *m;
sd_memfd *f;
+ uint64_t sz;
log_set_max_level(LOG_DEBUG);
log_set_max_level(LOG_DEBUG);
@@
-79,21
+80,27
@@
int main(int argc, char *argv[]) {
memset(p, 'L', 32);
memset(p, 'L', 32);
- r = sd_memfd_new_and_map(&f,
32
, &p);
+ r = sd_memfd_new_and_map(&f,
17
, &p);
assert_se(r >= 0);
assert_se(r >= 0);
- memset(p, 'P',
32
);
- munmap(p,
32
);
+ memset(p, 'P',
17
);
+ munmap(p,
17
);
- r = sd_memfd_
set_size(f, 32
);
+ r = sd_memfd_
get_size(f, &sz
);
assert_se(r >= 0);
assert_se(r >= 0);
+ assert_se(sz == 17);
r = sd_bus_message_append_array_memfd(m, 'y', f);
assert_se(r >= 0);
r = sd_bus_message_append_array_memfd(m, 'y', f);
assert_se(r >= 0);
+ sd_memfd_free(f);
+
r = sd_bus_message_close_container(m);
assert_se(r >= 0);
r = sd_bus_message_close_container(m);
assert_se(r >= 0);
+ r = sd_bus_message_append(m, "u", 4711);
+ assert_se(r >= 0);
+
r = bus_message_seal(m, 55);
assert_se(r >= 0);
r = bus_message_seal(m, 55);
assert_se(r >= 0);
@@
-106,7
+113,6
@@
int main(int argc, char *argv[]) {
sd_bus_unref(a);
sd_bus_unref(b);
sd_bus_unref(a);
sd_bus_unref(b);
- sd_memfd_free(f);
return 0;
}
return 0;
}