From 48c8e7f92cdd48173e395bdf23fe59c6cae10f37 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Wed, 29 Jun 2022 01:56:32 -0500 Subject: [PATCH] Setup basic structure for test runner --- Makefile | 28 ++++++++++++++++++++-------- include/gargoyle/test/twine.h | 8 ++++++++ test/runner.c | 32 ++++++++++++++++++++++++++++++++ test/twine.c | 18 ++++++++++++++++++ 4 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 include/gargoyle/test/twine.h create mode 100644 test/runner.c create mode 100644 test/twine.c diff --git a/Makefile b/Makefile index 14f5d00..e38cadb 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,13 @@ -CFLAGS ?= -Wall -Wextra -g -O1 -fpic -LDFLAGS ?= -g -O1 -shared +CFLAGS ?= -Wall -Wextra -g -O1 +LDFLAGS ?= -g -O1 +LIB_CFLAGS ?= -fpic +LIB_LDFLAGS ?= -shared GARGOYLE_OBJS := gargoyle sleuth twine scribe +# temporary until there are tests for all source files + +GARGOYLE_TEST_OBJS := runner twine + .PHONY: all gargoyle init docs test clean all: gargoyle @@ -11,19 +17,25 @@ gargoyle: bin/libgargoyle.so init: bin bin: - mkdir -p -- bin + mkdir -p -- bin/test bin/libgargoyle.so: $(addprefix bin/,$(addsuffix .o,$(GARGOYLE_OBJS))) - cc $(LDFLAGS) -o $@ $^ + cc $(LDFLAGS) $(LIB_LDFLAGS) -o $@ $^ bin/%.o: src/%.c | init - cc $(CFLAGS) -std=c99 -I include -c -o $@ $< + cc $(CFLAGS) $(LIB_CFLAGS) -std=c99 -I include -c -o $@ $< docs: @printf "not implemented yet.\n" >&2 -test: - @printf "not implemented yet.\n" >&2 +test: bin/libgargoyle.so bin/gargoyle + +bin/gargoyle: $(addprefix bin/test/,$(addsuffix .o,$(GARGOYLE_TEST_OBJS))) + cc $(LDFLAGS) -L bin -o $@ $^ -l gargoyle -l cunit + bin/gargoyle + +bin/test/%.o: test/%.c | init + cc $(CFLAGS) -std=c99 -I include -c -o $@ $< clean: - rm -rf -- bin/* + rm -rf -- bin diff --git a/include/gargoyle/test/twine.h b/include/gargoyle/test/twine.h new file mode 100644 index 0000000..090dc28 --- /dev/null +++ b/include/gargoyle/test/twine.h @@ -0,0 +1,8 @@ +#ifndef GARGOYLE_TEST_TWINE_H_ +#define GARGOYLE_TEST_TWINE_H_ + +int init_suite_twine(void); +int clean_suite_twine(void); +void twine_test_is_sep(void); + +#endif diff --git a/test/runner.c b/test/runner.c new file mode 100644 index 0000000..3984b72 --- /dev/null +++ b/test/runner.c @@ -0,0 +1,32 @@ +#include +#include +#include + +int main() { + if(CU_initialize_registry() != CUE_SUCCESS) { + return CU_get_error(); + } + + CU_TestInfo twine_tests[] = { + { "is_sep", twine_test_is_sep }, + CU_TEST_INFO_NULL, + }; + + CU_SuiteInfo suites[] = { + // { "gargoyle", init_suite_gargoyle, clean_suite_gargoyle, NULL, NULL, gargoyle_tests }, + // { "scribe", init_suite_scribe, clean_suite_scribe, NULL, NULL, scribe_tests }, + // { "sleuth", init_suite_sleuth, clean_suite_sleuth, NULL, NULL, sleuth_tests }, + { "twine", init_suite_twine, clean_suite_twine, NULL, NULL, twine_tests }, + CU_SUITE_INFO_NULL, + }; + + if(CU_register_suites(suites) != CUE_SUCCESS) { + CU_cleanup_registry(); + return CU_get_error(); + } + + CU_basic_set_mode(CU_BRM_VERBOSE); + CU_basic_run_tests(); + CU_cleanup_registry(); + return CU_get_error(); +} diff --git a/test/twine.c b/test/twine.c new file mode 100644 index 0000000..1bd2b43 --- /dev/null +++ b/test/twine.c @@ -0,0 +1,18 @@ +#include +#include +#include + +int init_suite_twine(void) { + return CUE_SUCCESS; +} + +int clean_suite_twine(void) { + return CUE_SUCCESS; +} + +void twine_test_is_sep(void) { + CU_ASSERT_TRUE(is_sep('-')); + CU_ASSERT_TRUE(is_sep('_')); + CU_ASSERT_FALSE(is_sep('*')); + CU_ASSERT_FALSE(is_sep('u')); +}