[PATCH 1/2] test-message: add message quota test

Lennart Poettering mzqohf at 0pointer.de
Thu Nov 6 15:38:36 PST 2014


On Sun, 02.11.14 19:15, John de la Garza (john at jjdev.com) wrote:

Hmm, please send kdbus patches to the systemd ML, not the dbus ML!

We don#t really have a real mailing list for kdbus right now, but most
folks who hack on kdbus are on the systemd ML, hence we just poth
patches there!

Sorry for the confusion!

> Signed-off-by: John de la Garza <john at jjdev.com>
> ---
>  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
> dbus at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dbus


Lennart

-- 
Lennart Poettering, Red Hat


More information about the dbus mailing list