You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by pe...@apache.org on 2016/11/03 22:27:57 UTC

[3/3] incubator-mynewt-core git commit: MYNEWT-139: Register test suites

MYNEWT-139: Register test suites

Intermediate checkin to add suite to list of test_suites which may be callable from newtmgr.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/81fd0287
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/81fd0287
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/81fd0287

Branch: refs/heads/develop
Commit: 81fd02877c678e1b6f27036f0e71d160a07ea0af
Parents: 882077b
Author: Peter Snyder <pe...@apache.org>
Authored: Thu Nov 3 15:24:54 2016 -0700
Committer: Peter Snyder <pe...@apache.org>
Committed: Thu Nov 3 15:24:54 2016 -0700

----------------------------------------------------------------------
 test/testutil/include/testutil/testutil.h | 19 +++++++++++++------
 test/testutil/src/suite.c                 | 17 +++++++++++++++++
 test/testutil/src/testutil.c              |  2 +-
 3 files changed, 31 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/81fd0287/test/testutil/include/testutil/testutil.h
----------------------------------------------------------------------
diff --git a/test/testutil/include/testutil/testutil.h b/test/testutil/include/testutil/testutil.h
index 3f0aca8..eebc13c 100644
--- a/test/testutil/include/testutil/testutil.h
+++ b/test/testutil/include/testutil/testutil.h
@@ -73,14 +73,16 @@ void tu_suite_pre_test(void);
 void tu_suite_post_test(void);
 void tu_suite_complete(void);
 
-SLIST_HEAD(ts_testsuite_list, ts_suite);
-
 struct ts_suite {
     SLIST_ENTRY(ts_suite) ts_next;
     const char *ts_name;
     tu_testsuite_fn_t *ts_test;
 };
 
+SLIST_HEAD(ts_testsuite_list, ts_suite);
+
+extern struct ts_testsuite_list *ts_suites;
+
 struct ts_config {
     int ts_print_results;
     int ts_system_assert;
@@ -186,8 +188,13 @@ extern int tu_case_failed;
 extern int tu_case_idx;
 extern jmp_buf tu_case_jb;
 
+#define TEST_SUITE_NAME(suite_name) TEST_SUITE##suite_name
+
+#define TEST_SUITE_DECL(suite_name)                         \
+  extern tu_testsuite_fn_t *TEST_SUITE##suite_name()
+
 #define TEST_SUITE(suite_name)                               \
-static void                                                  \
+void                                                         \
 TEST_SUITE_##suite_name(void);                               \
                                                              \
     int                                                      \
@@ -200,7 +207,7 @@ TEST_SUITE_##suite_name(void);                               \
         return tu_suite_failed;                              \
     }                                                        \
                                                              \
-    static void                                              \
+    void                                                     \
     TEST_SUITE_##suite_name(void)
 
 /*
@@ -214,7 +221,7 @@ TEST_SUITE_##suite_name(void);                               \
  * Unit test definition.
  */
 #define TEST_CASE(case_name)                                  \
-    static void TEST_CASE_##case_name(void);                  \
+    void TEST_CASE_##case_name(void);                         \
                                                               \
     int                                                       \
     case_name(void)                                           \
@@ -238,7 +245,7 @@ TEST_SUITE_##suite_name(void);                               \
         return tu_case_failed;                                \
     }                                                         \
                                                               \
-    static void                                               \
+    void                                                      \
     TEST_CASE_##case_name(void)
 
 #define FIRST_AUX(first, ...) first

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/81fd0287/test/testutil/src/suite.c
----------------------------------------------------------------------
diff --git a/test/testutil/src/suite.c b/test/testutil/src/suite.c
index 794e2c7..887a966 100644
--- a/test/testutil/src/suite.c
+++ b/test/testutil/src/suite.c
@@ -18,12 +18,29 @@
  */
 
 #include <assert.h>
+#include "os/os.h"
 #include "testutil/testutil.h"
 #include "testutil_priv.h"
 
 const char *tu_suite_name = 0;
 int tu_suite_failed = 0;
 
+int
+tu_suite_register(const char *name, tu_testsuite_fn_t* ts)
+{
+    struct ts_suite *tsp;
+    TEST_SUITE_DECL(name);
+
+    tsp = (struct ts_suite *)os_malloc(sizeof(*tsp));
+    if (!tsp) {
+        return -1;
+    }
+    tsp->ts_name = name;
+    tsp->ts_test = ts;
+    SLIST_INSERT_HEAD(ts_suites, tsp, ts_next);
+    return 0;
+}
+
 static void
 tu_suite_set_name(const char *name)
 {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/81fd0287/test/testutil/src/testutil.c
----------------------------------------------------------------------
diff --git a/test/testutil/src/testutil.c b/test/testutil/src/testutil.c
index 06bd25c..1c7a29c 100644
--- a/test/testutil/src/testutil.c
+++ b/test/testutil/src/testutil.c
@@ -36,7 +36,7 @@ struct ts_config *ts_current_config = &ts_config;
 int tu_any_failed;
 int tu_first_idx;
 
-struct ts_testsuites;
+struct ts_testsuite_list *ts_suites;
 
 int
 tu_init(void)