summaryrefslogtreecommitdiff
path: root/include/test_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/test_util.h')
-rw-r--r--include/test_util.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/test_util.h b/include/test_util.h
new file mode 100644
index 0000000000..40ce8c2633
--- /dev/null
+++ b/include/test_util.h
@@ -0,0 +1,50 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* Various utility for unit testing */
+
+#ifndef __CROS_EC_TEST_UTIL_H
+#define __CROS_EC_TEST_UTIL_H
+
+#include "common.h"
+#include "console.h"
+
+#define RUN_TEST(n) \
+ do { \
+ ccprintf("Running %s...", #n); \
+ cflush(); \
+ if (n() == EC_SUCCESS) { \
+ ccputs("OK\n"); \
+ } else { \
+ ccputs("Fail\n"); \
+ __test_error_count++; \
+ } \
+ } while (0)
+
+#define TEST_ASSERT(n) \
+ do { \
+ if (!(n)) { \
+ ccprintf("ASSERTION failed: %s\n", #n); \
+ return EC_ERROR_UNKNOWN; \
+ } \
+ } while (0)
+
+#define TEST_CHECK(n) \
+ do { \
+ if (n) \
+ return EC_SUCCESS; \
+ else \
+ return EC_ERROR_UNKNOWN; \
+ } while (0)
+
+void run_test(void);
+
+void test_reset(void);
+
+void test_print_result(void);
+
+extern int __test_error_count;
+
+#endif /* __CROS_EC_TEST_UTIL_H */