From 2f564f6fdc21a4f851db2f85cf5416fee5c7d339 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Wed, 2 Dec 2015 20:02:11 +0100
Subject: First version
---
cstest.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 cstest.h
(limited to 'cstest.h')
diff --git a/cstest.h b/cstest.h
new file mode 100644
index 0000000..6fb3280
--- /dev/null
+++ b/cstest.h
@@ -0,0 +1,78 @@
+/**
+ * CSTest - Minimalistic C unit test framework
+ * Copyright (C) 2015 Camil Staps
+
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+#include
+
+typedef struct {
+ uint16_t passed; // Number of passed tests
+ uint16_t failed; // Number of failed tests
+ bool show_pass; // Whether or not to print a message when a test passes
+} cstester;
+
+/**
+ * Initialize a tester struct
+ *
+ * This allocates a cstester on the heap. Don't forget to call test_destroy to
+ * free that memory.
+ *
+ * @return a struct on the heap for use in the other test_* functions
+ */
+cstester* test_initialize(void);
+
+/**
+ * Show summarised data about the tester
+ *
+ * Shows a green message when all tests passed, otherwise a red message that
+ * some failed. Shows passed/failed counts as well.
+ *
+ * @param cstester* a pointer to a cstester from test_initialize
+ */
+void test_wrapup(cstester*);
+
+/**
+ * Destroy a cstester struct
+ *
+ * Essentially frees the memory that was allocated for the struct.
+ *
+ * @param cstester* a pointer to a cstester from test_initialize
+ */
+void test_destroy(cstester*);
+
+/**
+ * Exit the program with an appropriate return value
+ *
+ * Returns -1 if one or more tests failed, 0 otherwise. Exits the program.
+ *
+ * @param cstester* a pointer to a cstester from test_initialize
+ * @return don't expect this to return
+ */
+void test_exit(cstester*);
+
+/**
+ * Test for truth on a bool
+ *
+ * Outputs a red message for failure, and a green one for passing if
+ * cstester->show_pass is true. Adds this test to the summarised data in the
+ * cstester.
+ *
+ * @param cstester* a pointer to a cstester from test_initialize
+ * @param check the boolean that should be true
+ * @param test a custom message to show
+ */
+void test_true(cstester* tester, bool check, const char* text);
+
--
cgit v1.2.3