]> git.mdlowis.com Git - projs/atf.git/commitdiff
Add first crack at ATF
authorMichael D. Lowis <mike.lowis@gentex.com>
Mon, 28 Jul 2014 20:34:01 +0000 (16:34 -0400)
committerMichael D. Lowis <mike.lowis@gentex.com>
Mon, 28 Jul 2014 20:34:01 +0000 (16:34 -0400)
source/atf.c [new file with mode: 0755]
source/atf.h [new file with mode: 0755]

diff --git a/source/atf.c b/source/atf.c
new file mode 100755 (executable)
index 0000000..14a972a
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+  @file atf.c
+  @brief See header for details
+  $Revision$
+  $HeadURL$
+  */
+#include "atf.h"
+
+char* Curr_Test = NULL;
+static unsigned int Total = 0;
+static unsigned int Failed = 0;
+
+void atf_run_suite(suite_t suite) {
+    suite();
+}
+
+void atf_test_start(char* p_test_name) {
+    Curr_Test = p_test_name;
+    Total++;
+}
+
+void atf_test_fail(char* expr, char* file, int line) {
+    Failed++;
+    printf("%s:%d:0:%s:FAIL\n\t%s\n", file, line, Curr_Test, expr); \
+}
+
+int atf_print_results(void) {
+    static const char* results_string =
+    "\nUnit Test Summary"
+    "\n-----------------"
+    "\nTotal:  %d"
+    "\nPassed: %d"
+    "\nFailed: %d"
+    "\n\n";
+    printf(results_string, Total, Total - Failed, Failed);
+    return Failed;
+}
+
diff --git a/source/atf.h b/source/atf.h
new file mode 100755 (executable)
index 0000000..f24b31a
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+  @file test.h
+  @brief TODO: Describe this file
+  $Revision$
+  $HeadURL$
+  */
+#ifndef TEST_H
+#define TEST_H
+
+#include <stdio.h>
+
+#define CHECK(expr) \
+    if (!(expr)) { atf_test_fail(#expr,__FILE__,__LINE__-1); break; }
+
+#define TEST_SUITE(name) void name(void)
+
+#define TEST(desc) \
+    for(atf_test_start(#desc); Curr_Test != NULL; Curr_Test = NULL)
+
+#define RUN_EXTERN_TEST_SUITE(name) \
+    do { extern TEST_SUITE(name); atf_run_suite(&name); } while(0)
+
+#define RUN_TEST_SUITE(name) \
+    do { atf_run_suite(&name) } while(0)
+
+#define PRINT_TEST_RESULTS atf_print_results
+
+typedef void (*suite_t)(void);
+
+extern char* Curr_Test;
+
+void atf_run_suite(suite_t suite);
+
+void atf_test_start(char* p_test_name);
+
+void atf_test_fail(char* expr, char* file, int line);
+
+int atf_print_results(void);
+
+#endif /* TEST_H */