From 5e6bf869b0570f03d2fab92b3f386d2b1ea9a75f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= <rene.kijewski@fu-berlin.de>
Date: Tue, 13 May 2014 07:06:03 +0200
Subject: [PATCH] unittests: exit(1) or error

---
 tests/unittests/embunit/embUnit/TestRunner.c | 5 +++++
 tests/unittests/embunit/embUnit/TestRunner.h | 2 ++
 tests/unittests/main.c                       | 5 +++++
 3 files changed, 12 insertions(+)

diff --git a/tests/unittests/embunit/embUnit/TestRunner.c b/tests/unittests/embunit/embUnit/TestRunner.c
index 0698185e30..20915dd451 100644
--- a/tests/unittests/embunit/embUnit/TestRunner.c
+++ b/tests/unittests/embunit/embUnit/TestRunner.c
@@ -41,6 +41,7 @@
 
 static TestResult result_;
 static Test* root_;
+int TestRunnerHadErrors;
 
 static void TestRunner_startTest(TestListner* self,Test* test)
 {
@@ -73,6 +74,8 @@ static void TestRunner_addFailure(TestListner* self,Test* test,char* msg,int lin
 	}
 	stdimpl_print(msg);
 	stdimpl_print("\n");
+
+	TestRunnerHadErrors = 1;
 }
 
 static const TestListnerImplement TestRunnerImplement = {
@@ -107,6 +110,8 @@ void TestRunner_end(void)
 		stdimpl_itoa(result_.failureCount, buf, 10);
 		stdimpl_print(buf);
 		stdimpl_print("\n");
+
+		TestRunnerHadErrors = 1;
 	} else {
 		stdimpl_print("\nOK (");
 		stdimpl_itoa(result_.runCount, buf, 10);
diff --git a/tests/unittests/embunit/embUnit/TestRunner.h b/tests/unittests/embunit/embUnit/TestRunner.h
index f709f7491f..74152c9569 100644
--- a/tests/unittests/embunit/embUnit/TestRunner.h
+++ b/tests/unittests/embunit/embUnit/TestRunner.h
@@ -43,6 +43,8 @@ void TestRunner_start(void);
 void TestRunner_runTest(Test* test);
 void TestRunner_end(void);
 
+extern int TestRunnerHadErrors;
+
 #ifdef	__cplusplus
 }
 #endif
diff --git a/tests/unittests/main.c b/tests/unittests/main.c
index 469c8be378..8b851fc418 100644
--- a/tests/unittests/main.c
+++ b/tests/unittests/main.c
@@ -58,6 +58,11 @@ int main(void)
     /* put test TEST_RUN() calls here */
     TESTS_END();
 
+#if defined (BOARD_NATIVE) && !defined (OUTPUT)
+    void _exit(int);
+    _exit(TestRunnerHadErrors);
+#endif
+
     lpm_set(LPM_POWERDOWN);
 
     return 0;
-- 
GitLab