diff --git a/tests/Makefile b/tests/Makefile index a7bdb63a7bce30413e91f56a47195881e6b88a68..f234a8ae17d34f2bda2f958d118f1ff9edae86ef 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -3,7 +3,9 @@ EXPECT_BINS=\ args \ arpainet \ assert \ + constructor \ ctype \ + destructor \ dirent/scandir \ error \ fcntl/create \ diff --git a/tests/constructor.c b/tests/constructor.c new file mode 100644 index 0000000000000000000000000000000000000000..4a5a4fa55e50065534e996fdeb1edda64d67955e --- /dev/null +++ b/tests/constructor.c @@ -0,0 +1,21 @@ +#include <stdio.h> + +__attribute__((constructor)) +void constructor_no_priority(void) { + puts("constructor (no priority)"); +} + +#define TEST(__priority) \ + __attribute__((constructor(__priority))) \ + void constructor_priority_##__priority(void) { \ + puts("constructor ("#__priority")"); \ + } + +TEST(101); +TEST(102); +TEST(103); +TEST(104); + +int main(int argc, char *argv[]) { + puts("main"); +} diff --git a/tests/destructor.c b/tests/destructor.c new file mode 100644 index 0000000000000000000000000000000000000000..af3e1416bffdcda9efbaf672c782d79b55e5c80f --- /dev/null +++ b/tests/destructor.c @@ -0,0 +1,21 @@ +#include <stdio.h> + +__attribute__((destructor)) +void destructor_no_priority(void) { + puts("destructor (no priority)"); +} + +#define TEST(__priority) \ + __attribute__((destructor(__priority))) \ + void destructor_priority_##__priority(void) { \ + puts("destructor ("#__priority")"); \ + } + +TEST(101); +TEST(102); +TEST(103); +TEST(104); + +int main(int argc, char *argv[]) { + puts("main"); +} diff --git a/tests/expected/constructor.stderr b/tests/expected/constructor.stderr new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/expected/constructor.stdout b/tests/expected/constructor.stdout new file mode 100644 index 0000000000000000000000000000000000000000..14e23d4cbb5788c6b35f811d07aa187c4296c6b4 --- /dev/null +++ b/tests/expected/constructor.stdout @@ -0,0 +1,6 @@ +constructor (101) +constructor (102) +constructor (103) +constructor (104) +constructor (no priority) +main diff --git a/tests/expected/destructor.stderr b/tests/expected/destructor.stderr new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/expected/destructor.stdout b/tests/expected/destructor.stdout new file mode 100644 index 0000000000000000000000000000000000000000..1da7c2970663dcf2d4632431678e6a946197819b --- /dev/null +++ b/tests/expected/destructor.stdout @@ -0,0 +1,6 @@ +main +destructor (no priority) +destructor (104) +destructor (103) +destructor (102) +destructor (101)