diff --git a/test/test-free.c b/test/test-free.c index 01dca80..f666da3 100644 --- a/test/test-free.c +++ b/test/test-free.c @@ -14,6 +14,22 @@ #include "kdbus-enum.h" #include "kdbus-test.h" +static int sample_ioctl_call(struct kdbus_test_env *env) +{ + int ret; + struct kdbus_cmd_list cmd_list = { + .flags = KDBUS_LIST_QUEUED, + .size = sizeof(cmd_list), + }; + + ret = kdbus_cmd_list(env->conn->fd, &cmd_list); + ASSERT_RETURN(ret == 0); + + /* DON'T FREE THIS SLICE OF MEMORY! */ + + return TEST_OK; +} + int kdbus_test_free(struct kdbus_test_env *env) { int ret; @@ -32,5 +48,17 @@ int kdbus_test_free(struct kdbus_test_env *env) ret = kdbus_cmd_free(env->conn->fd, &cmd_free); ASSERT_RETURN(ret == -ENXIO); + /* + * The user application is responsible for freeing the allocated + * memory with the KDBUS_CMD_FREE ioctl, so let's test what happens + * if we forget about it. + */ + + ret = sample_ioctl_call(env); + ASSERT_RETURN(ret == 0); + + ret = sample_ioctl_call(env); + ASSERT_RETURN(ret == 0); + return TEST_OK; } -- 1.9.3
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel