]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/test/test-static-destruct.c
Merge pull request #12756 from cdown/uninit
[thirdparty/systemd.git] / src / test / test-static-destruct.c
CommitLineData
f36c39aa
LP
1/* SPDX-License-Identifier: LGPL-2.1+ */
2
3#include "alloc-util.h"
4#include "static-destruct.h"
5#include "tests.h"
6
7static int foo = 0;
8static int bar = 0;
9static int baz = 0;
10static char* memory = NULL;
11
12static void test_destroy(int *b) {
13 (*b)++;
14}
15
16STATIC_DESTRUCTOR_REGISTER(foo, test_destroy);
17STATIC_DESTRUCTOR_REGISTER(bar, test_destroy);
18STATIC_DESTRUCTOR_REGISTER(bar, test_destroy);
19STATIC_DESTRUCTOR_REGISTER(baz, test_destroy);
20STATIC_DESTRUCTOR_REGISTER(baz, test_destroy);
21STATIC_DESTRUCTOR_REGISTER(baz, test_destroy);
22STATIC_DESTRUCTOR_REGISTER(memory, freep);
23
24int main(int argc, char *argv[]) {
25 test_setup_logging(LOG_INFO);
26
27 assert_se(memory = strdup("hallo"));
28
29 assert_se(foo == 0 && bar == 0 && baz == 0);
30 static_destruct();
31 assert_se(foo == 1 && bar == 2 && baz == 3);
32
33 return EXIT_SUCCESS;
34}