diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-10-12 04:12:07 +0200 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-10-12 10:54:23 +0200 |
commit | 3ffd12bfbe9f91b392d80fbf6a8b2def2a13bf6d (patch) | |
tree | b53098b5649ee17a26e10e8e6c1f36aff23b64a0 /src/test/test-set-disable-mempool.c | |
parent | Add LOGO to os-release (diff) | |
download | systemd-3ffd12bfbe9f91b392d80fbf6a8b2def2a13bf6d.tar.xz systemd-3ffd12bfbe9f91b392d80fbf6a8b2def2a13bf6d.zip |
test: add tests for $SYSTEMD_MEMPOOL=
This adds tests for b4f607433cac749b617e15b3d5d122322ed2bc71 and
205c085bc36c2c61a09dc40621d8561b135d9b57 (#9792).
Diffstat (limited to 'src/test/test-set-disable-mempool.c')
-rw-r--r-- | src/test/test-set-disable-mempool.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/test/test-set-disable-mempool.c b/src/test/test-set-disable-mempool.c new file mode 100644 index 0000000000..aea83d2679 --- /dev/null +++ b/src/test/test-set-disable-mempool.c @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ + +#include <pthread.h> + +#include "process-util.h" +#include "set.h" +#include "tests.h" + +#define NUM 100 + +static void* thread(void *p) { + Set **s = p; + + assert_se(s); + assert_se(*s); + + assert_se(!is_main_thread()); + assert_se(set_size(*s) == NUM); + *s = set_free(*s); + + return NULL; +} + +static void test_one(const char *val) { + pthread_t t; + int x[NUM] = {}; + unsigned i; + Set *s; + + log_info("Testing with SYSTEMD_MEMPOOL=%s", val); + assert_se(setenv("SYSTEMD_MEMPOOL", val, true) == 0); + assert_se(is_main_thread()); + + assert_se(s = set_new(NULL)); + for (i = 0; i < NUM; i++) + assert_se(set_put(s, &x[i])); + + assert_se(pthread_create(&t, NULL, thread, &s) == 0); + assert_se(pthread_join(t, NULL) == 0); + + assert_se(!s); +} + +int main(int argc, char *argv[]) { + test_setup_logging(LOG_DEBUG); + + test_one("0"); + /* The value $SYSTEMD_MEMPOOL= is cached. So the following + * test should also succeed. */ + test_one("1"); + + return 0; +} |