[PATCH 1/2] test-message: add message quota test
John de la Garza <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: John de la Garza <[email protected]> --- test/kdbus-test.c | 6 ++++++ test/kdbus-test.h | 1 + test/test-message.c | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/test/kdbus-test.c b/test/kdbus-test.c index 56a0ff9..d9e6a89 100644 --- a/test/kdbus-test.c +++ b/test/kdbus-test.c @@ -106,6 +106,12 @@ static const struct kdbus_test tests[] = { .flags = TEST_CREATE_BUS, }, { + .name = "message-quota", + .desc = "message quotas are enforced", + .func = kdbus_test_message_quota, + .flags = TEST_CREATE_BUS, + }, + { .name = "timeout", .desc = "timeout", .func = kdbus_test_timeout, diff --git a/test/kdbus-test.h b/test/kdbus-test.h index bb9b372..e267182 100644 --- a/test/kdbus-test.h +++ b/test/kdbus-test.h @@ -61,6 +61,7 @@ int kdbus_test_match_name_change(struct kdbus_test_env *env); int kdbus_test_match_name_remove(struct kdbus_test_env *env); int kdbus_test_message_basic(struct kdbus_test_env *env); int kdbus_test_message_prio(struct kdbus_test_env *env); +int kdbus_test_message_quota(struct kdbus_test_env *env); int kdbus_test_metadata_ns(struct kdbus_test_env *env); int kdbus_test_monitor(struct kdbus_test_env *env); int kdbus_test_name_basic(struct kdbus_test_env *env); diff --git a/test/test-message.c b/test/test-message.c index 93b9d9c..e7980a1 100644 --- a/test/test-message.c +++ b/test/test-message.c @@ -13,6 +13,9 @@ #include "kdbus-util.h" #include "kdbus-enum.h" #include "kdbus-test.h" +#include "../limits.h" +#include <sys/capability.h> + int kdbus_test_message_basic(struct kdbus_test_env *env) { @@ -124,3 +127,33 @@ int kdbus_test_message_prio(struct kdbus_test_env *env) return TEST_OK; } + +int kdbus_test_message_quota(struct kdbus_test_env *env) +{ + struct kdbus_conn *a, *b; + uint64_t cookie = 0; + int ret; + int i; + + if (geteuid() == 0) { + kdbus_printf("error geteuid() == 0, %s() can't be root\n", + __func__); + return TEST_SKIP; + } + + a = kdbus_hello(env->buspath, 0, NULL, 0); + b = kdbus_hello(env->buspath, 0, NULL, 0); + + for (i = 0; i <= KDBUS_CONN_MAX_MSGS_PER_USER; i++) { + ret = kdbus_msg_send(b, NULL, ++cookie, 0, 0, 0, a->id); + ASSERT_RETURN(ret == 0); + } + + ret = kdbus_msg_send(b, NULL, ++cookie, 0, 0, 0, a->id); + ASSERT_RETURN(ret == -ENOBUFS); + + kdbus_conn_free(a); + kdbus_conn_free(b); + + return TEST_OK; +} -- 2.1.1 _______________________________________________ dbus mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/dbus