From 5789562646d6fd97a3214198f8eb92f4d2836171 Mon Sep 17 00:00:00 2001 From: alex <alex@infiniteadaptability.org> Date: Mon, 25 Apr 2022 17:36:10 -0700 Subject: [PATCH] ... --- Makefile.am | 6 ++++++ test/integration/Makefile.am | 1 + test/integration/basic.test | Bin 0 -> 50760 bytes test/integration/basic.test.c | 7 +++++++ test/integration/test_macros.h | 4 ++++ test/integration/test_utils.c | 16 ++++++++++++++++ test/integration/test_utils.h | 15 +++++++++++++++ 7 files changed, 49 insertions(+) create mode 100755 test/integration/basic.test create mode 100644 test/integration/basic.test.c create mode 100644 test/integration/test_macros.h create mode 100644 test/integration/test_utils.c create mode 100644 test/integration/test_utils.h diff --git a/Makefile.am b/Makefile.am index fd615a7..9a1fc3c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -123,3 +123,9 @@ seederd_SOURCES += \ inc/watch.h SUBDIRS = . test/unit test/integration bench + +# test target/shortcuts +unit: + $(MAKE) -C test/unit check +integration: + $(MAKE) -C test/integration check diff --git a/test/integration/Makefile.am b/test/integration/Makefile.am index 24046e9..b610eef 100644 --- a/test/integration/Makefile.am +++ b/test/integration/Makefile.am @@ -22,6 +22,7 @@ AM_LOG_FLAGS = --leak-check=full -v --track-origins=yes --error-exitcode=1 endif common_SOURCES = \ + $(seederd_SOURCES) \ test_utils.c basic_test_SOURCES = \ diff --git a/test/integration/basic.test b/test/integration/basic.test new file mode 100755 index 0000000000000000000000000000000000000000..dce91021db2448de50be8c932cc3b6ce1e7f933e GIT binary patch literal 50760 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 A9{>OV literal 0 HcmV?d00001 diff --git a/test/integration/basic.test.c b/test/integration/basic.test.c new file mode 100644 index 0000000..b6a16a3 --- /dev/null +++ b/test/integration/basic.test.c @@ -0,0 +1,7 @@ +#include<test_utils.h> + +int main(); + +int main() { + return EXIT_SUCCESS; +} diff --git a/test/integration/test_macros.h b/test/integration/test_macros.h new file mode 100644 index 0000000..e229fe5 --- /dev/null +++ b/test/integration/test_macros.h @@ -0,0 +1,4 @@ +#ifndef __TEST_MACROS_H_ +#define __TEST_MACROS_H_ + +#endif diff --git a/test/integration/test_utils.c b/test/integration/test_utils.c new file mode 100644 index 0000000..331953b --- /dev/null +++ b/test/integration/test_utils.c @@ -0,0 +1,16 @@ +#include<test_utils.h> + +void clean_env() { + system("rm -rf " PREFIX); +} + +void reset_env() { + clean_env(); + setup_env(); +} + +void setup_env() { + clean_env(); + + srand(time(NULL)); +} diff --git a/test/integration/test_utils.h b/test/integration/test_utils.h new file mode 100644 index 0000000..4e9eb0d --- /dev/null +++ b/test/integration/test_utils.h @@ -0,0 +1,15 @@ +#ifndef __TEST_UTILS_H_ +#define __TEST_UTILS_H_ + +#include<test_macros.h> + +#include<assert.h> +#include<stdlib.h> +#include<string.h> +#include<time.h> + +void clean_env(); +void reset_env(); +void setup_env(); + +#endif -- 2.39.5