From 1dce48f049063cb569c5b94ef133661fa3b9920e Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sun, 2 Apr 2023 16:41:12 -0700 Subject: [PATCH] Got build/execute/report working. --- Makefile | 32 ++++++++++++++++++++++++++++++++ examples/ClassToTest.cpp | 0 examples/ClassToTest.h | 3 +++ examples/JTest.cpp | 33 +++++++++++++++++++++++++++++++++ examples/JTest.h | 21 +++++++++++++++++++++ examples/example.cpp | 30 ++++++++++++++++++++++++++++++ examples/example.o | Bin 0 -> 9672 bytes include/JTest.h | 0 8 files changed, 119 insertions(+) create mode 100644 Makefile create mode 100644 examples/ClassToTest.cpp create mode 100644 examples/ClassToTest.h create mode 100644 examples/JTest.cpp create mode 100644 examples/JTest.h create mode 100644 examples/example.cpp create mode 100644 examples/example.o create mode 100644 include/JTest.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..aac9e7f --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ + +BUILD_DIR ?= build +ARCHS = -arch arm64 # -arch x86_64 +CC = clang++ +CCFLAGS += -std=c++17 -finput-charset=utf-8 -fdiagnostics-show-template-tree -fno-elide-type -g $(ARCHS) --stdlib=libc++ +LD = clang++ +LDFLAGS += $(ARCHS) + +.Phony: clean all $(BUILD_DIR)/test.txt + +all: $(BUILD_DIR)/test.txt $(BUILD_DIR)/examples/example + @echo $(BUILD_DIR) + +clean: + rm -rf $(BUILD_DIR) + mkdir -p $(BUILD_DIR)/examples + @echo CC=$(CC) + @echo CCFLAGS=$(CCFLAGS) + @echo LD=$(LD) + @echo LDFLAGS=$(LDFLAGS) + +$(BUILD_DIR)/test.txt: + @echo $(BUILD_DIR)/test.txt + +$(BUILD_DIR)/examples/example: $(BUILD_DIR)/examples/example.o $(BUILD_DIR)/examples/JTest.o + $(LD) $(LDFLAGS) -o $@ $^ + +$(BUILD_DIR)/examples/example.o: examples/example.cpp examples/ClassToTest.h examples/JTest.h + $(CC) $(CCFLAGS) -c -o $@ $< + +$(BUILD_DIR)/examples/JTest.o: examples/JTest.cpp examples/JTest.h + $(CC) $(CCFLAGS) -c -o $@ $< diff --git a/examples/ClassToTest.cpp b/examples/ClassToTest.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/ClassToTest.h b/examples/ClassToTest.h new file mode 100644 index 0000000..fbeafb0 --- /dev/null +++ b/examples/ClassToTest.h @@ -0,0 +1,3 @@ +namespace MyNS { + +} diff --git a/examples/JTest.cpp b/examples/JTest.cpp new file mode 100644 index 0000000..84a255c --- /dev/null +++ b/examples/JTest.cpp @@ -0,0 +1,33 @@ +#include "JTest.h" + +namespace JTest { + using std::wostream; + using std::endl; + + // typedef struct { + // uint32_t total; + // uint32_t skipped; + // uint32_t passed; + // uint32_t failed; + // // vector errors; + // // vector failures; + // // vector skipped; + // } testresults_t; + + testresults_t make_testresults() { + return {0, 0, 0, 0}; + } + + testresults_t make_testresults(uint32_t total, uint32_t skipped, uint32_t passed, uint32_t failed) { + return {total, skipped, passed, failed}; + } + + testresults_t add(const testresults_t& l, const testresults_t& r) { + return {l.total + r.total, l.skipped + r.skipped, l.passed + r.passed, l.failed + r.failed}; + } + + void print_test_results(const testresults_t& results, wostream& out) { + out << L"Tests: " << results.total << endl; + out << L"Failed: " << results.failed << ", Passed: " << results.passed << ", Skipped: " << results.skipped << endl; + } +} diff --git a/examples/JTest.h b/examples/JTest.h new file mode 100644 index 0000000..f54135d --- /dev/null +++ b/examples/JTest.h @@ -0,0 +1,21 @@ +#include // TODO: Maybe just ostream. + +namespace JTest { + using std::wostream; + // TODO: Consider making testresults_t a class so we can hide the vectors behind accessor methods void add(...), T get(), vector get(uint32_t index) + + typedef struct { + uint32_t total; + uint32_t skipped; + uint32_t passed; + uint32_t failed; + // vector errors; + // vector failures; + // vector skipped; + } testresults_t; + + testresults_t make_testresults(); + testresults_t make_testresults(uint32_t total, uint32_t skipped, uint32_t passed, uint32_t failed); + testresults_t add(const testresults_t&, const testresults_t&); + void print_test_results(const testresults_t&, wostream&); +} diff --git a/examples/example.cpp b/examples/example.cpp new file mode 100644 index 0000000..2793af6 --- /dev/null +++ b/examples/example.cpp @@ -0,0 +1,30 @@ +// #include +#include "JTest.h" +#include "ClassToTest.h" +#include +#include +#include + + +using namespace JTest; +using namespace MyNS; + +using std::wstring; +using std::vector; +using std::wcout; + +// const vector& might stop being a reference +testresults_t test_ClassToTest_main(int argc, const vector& argv) { + return make_testresults(); +} + +// Dummy test harness +int main(int argc, char* argv[]) { + testresults_t results = make_testresults(); + + results = add(results, test_ClassToTest_main(0, vector())); + + print_test_results(results, wcout); + + return 0; +} diff --git a/examples/example.o b/examples/example.o new file mode 100644 index 0000000000000000000000000000000000000000..9945706488b5f84b0fdf64fc3c3aac4a2314b9f1 GIT binary patch literal 9672 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