diff options
author | Daniel Mack <daniel@zonque.org> | 2014-10-22 14:18:18 +0200 |
---|---|---|
committer | Daniel Mack <daniel@zonque.org> | 2014-10-22 14:18:18 +0200 |
commit | 237153466d1a6efa54dada51fb4f944bcd6a7394 (patch) | |
tree | 7cfc7382d5f38c68f22dfce4a964033cd5ac9809 | |
parent | 559d061d5853b63656d71e63d3f491ae9679d8ed (diff) | |
download | kdbus-bus-237153466d1a6efa54dada51fb4f944bcd6a7394.tar.gz kdbus-bus-237153466d1a6efa54dada51fb4f944bcd6a7394.tar.bz2 kdbus-bus-237153466d1a6efa54dada51fb4f944bcd6a7394.zip |
test-fd: add a bloom filter to broadcast message
Satisfy a kernel check so we can be sure we really bail out due
to the check we're actually enforcing.
Signed-off-by: Daniel Mack <daniel@zonque.org>
-rw-r--r-- | test/test-fd.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/test-fd.c b/test/test-fd.c index 84708e824a4..b635b2c45c1 100644 --- a/test/test-fd.c +++ b/test/test-fd.c @@ -93,11 +93,20 @@ static int send_memfds(struct kdbus_conn *conn, uint64_t dst_id, size = sizeof(struct kdbus_msg); size += memfd_count * KDBUS_ITEM_SIZE(sizeof(struct kdbus_memfd)); + if (dst_id == KDBUS_DST_ID_BROADCAST) + size += KDBUS_ITEM_SIZE(sizeof(struct kdbus_bloom_filter)) + 64; + ret = make_msg_payload_dbus(conn->id, dst_id, size, &msg); ASSERT_RETURN_VAL(ret == 0, ret); item = msg->items; + if (dst_id == KDBUS_DST_ID_BROADCAST) { + item->type = KDBUS_ITEM_BLOOM_FILTER; + item->size = KDBUS_ITEM_SIZE(sizeof(struct kdbus_bloom_filter)) + 64; + item = KDBUS_ITEM_NEXT(item); + } + make_item_memfds(item, memfds_array, memfd_count); ret = ioctl(conn->fd, KDBUS_CMD_MSG_SEND, msg); @@ -325,10 +334,9 @@ int kdbus_test_fd_passing(struct kdbus_test_env *env) memfd = memfd_write("memfd-name", &now, sizeof(now)); ASSERT_RETURN(memfd >= 0); - /* Try to broadcast memfd. This must fail. */ - ret = send_memfds(conn_src, KDBUS_DST_ID_BROADCAST, - (int *)&memfd, 1); - ASSERT_RETURN(ret == -ENOTUNIQ); + /* Try to broadcast memfd. This must succeed. */ + ret = send_memfds(conn_src, KDBUS_DST_ID_BROADCAST, (int *)&memfd, 1); + ASSERT_RETURN(ret == 0); ret = kdbus_send_multiple_fds(conn_src, conn_dst); ASSERT_RETURN(ret == 0); |