You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2016/03/01 09:13:28 UTC

[4/4] incubator-mynewt-site git commit: testutil documentation added. This closes pull request #16.

testutil documentation added. This closes pull request #16.


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

Branch: refs/heads/asf-site
Commit: c7a3894b8c6bcac8ea09eb1feba0fea130c8d026
Parents: 284e603
Author: aditihilbert <ad...@runtime.io>
Authored: Tue Mar 1 00:13:16 2016 -0800
Committer: aditihilbert <ad...@runtime.io>
Committed: Tue Mar 1 00:13:16 2016 -0800

----------------------------------------------------------------------
 mkdocs/search_index.json                        | 184 +++++--
 os/modules/testutil/test_assert/index.html      | 521 ++++++++++++++++++
 os/modules/testutil/test_case/index.html        | 472 ++++++++++++++++
 os/modules/testutil/test_pass/index.html        | 478 ++++++++++++++++
 os/modules/testutil/test_suite/index.html       | 476 ++++++++++++++++
 os/modules/testutil/testutil/index.html         | 109 +++-
 os/modules/testutil/tu_case_abort/index.html    | 541 -------------------
 .../tu_case_append_assert_msg/index.html        | 541 -------------------
 .../testutil/tu_case_append_buf/index.html      | 541 -------------------
 .../tu_case_append_file_info/index.html         | 541 -------------------
 .../tu_case_append_manual_pass_msg/index.html   | 541 -------------------
 os/modules/testutil/tu_case_complete/index.html | 541 -------------------
 .../testutil/tu_case_fail_assert/index.html     | 541 -------------------
 os/modules/testutil/tu_case_init/index.html     | 541 -------------------
 .../testutil/tu_case_pass_manual/index.html     | 541 -------------------
 os/modules/testutil/tu_case_set_name/index.html | 541 -------------------
 .../testutil/tu_case_vappend_buf/index.html     | 541 -------------------
 .../testutil/tu_case_write_fail_buf/index.html  | 541 -------------------
 .../testutil/tu_case_write_pass_auto/index.html | 541 -------------------
 .../testutil/tu_case_write_pass_buf/index.html  | 541 -------------------
 os/modules/testutil/tu_init/index.html          | 142 ++---
 os/modules/testutil/tu_restart/index.html       | 133 +----
 os/modules/testutil/tu_suite_init/index.html    | 541 -------------------
 .../testutil/tu_suite_set_name/index.html       | 541 -------------------
 sitemap.xml                                     |  16 +-
 25 files changed, 2233 insertions(+), 8954 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json
index 9e2ec09..bb196b7 100644
--- a/mkdocs/search_index.json
+++ b/mkdocs/search_index.json
@@ -3477,118 +3477,188 @@
         }, 
         {
             "location": "/os/modules/testutil/testutil/", 
-            "text": "testutil\n\n\nInsert synopsis here\n\n\nDescription\n\n\nDescribe module here, special features, how pieces fit together etc.\n\n\nData structures\n\n\nReplace this with the list of data structures used, why, any neat features\n\n\nList of Functions\n\n\n\n\nThe functions available in testutil are:\n\n\n\n\ntu_case_abort\n\n\ntu_case_append_assert_msg\n\n\ntu_case_append_buf\n\n\ntu_case_append_file_info\n\n\ntu_case_append_manual_pass_msg\n\n\ntu_case_complete\n\n\ntu_case_fail_assert\n\n\ntu_case_init\n\n\ntu_case_pass_manual\n\n\ntu_case_set_name\n\n\ntu_case_vappend_buf\n\n\ntu_case_write_fail_buf\n\n\ntu_case_write_pass_auto\n\n\ntu_case_write_pass_buf\n\n\ntu_init\n\n\ntu_restart\n\n\ntu_suite_init\n\n\ntu_suite_set_name", 
+            "text": "testutil\n\n\nThe testutil package is a test framework that provides facilities for specifying test cases and recording test results.\n\n\nYou would use it to build regression tests for your library.\n\n\nDescription\n\n\nA package may optionally contain a set of test cases.  Test cases are not normally compiled and linked when a package is built; they are only included\nwhen the \"test\" identity is specified.  All of a package's test code goes in its \nsrc/test\n directory.  For example, the nffs package's test code is located in the following directory:\n\n\n    * fs/nffs/src/test/\n\n\n\n\nThis directory contains the source and header files that implement the nffs test code.\n\n\nThe test code has access to all the header files in the following directories:\n\n\n    * src\n    * src/arch/\ntarget-arch\n\n    * include\n    * src/test\n    * src/test/arch/\ntarget-arch\n\n    * include directories of all package dependencies\n\n\n\n\nPackage test code typical
 ly depends on the testutil package, described later in this document.  If a package's test code uses testutil, then the package itself needs to have testutil in its dependency list.\n\n\nSome test cases or test initialization code may be platform-specific.  In such cases, the platform-specific function definitions are placed in arch subdirectories within the package test directory.\n\n\nWhile building the test code (i.e., when the \ntest\n identity is specified), the newt tool defines the \nTEST\n macro.  This macro is defined during compilation of all C source files in all projects and packages.\n\n\nTests are structured according to the following hierarchy:\n\n\n                [test]\n               /      \\\n        [suite]        [suite]\n       /       \\      /       \\\n     [case] [case]  [case] [case]\n\n\n\n\nI.e., a test consists of test suites, and a test suite consists of test cases.\n\n\nThe test code uses testutil to define test suites and test cases.\n\n\nRegressio
 n test can then be executed using 'newt target test' command, or by including a call to your test suite from \nproject/test/src/test.c\n.\n\n\nExample\n\n\nThe following example demonstrates how to create a simple test suite.\n\n\n    TEST_CASE(test_addition)\n    {\n        int sum;\n\n        sum = 5 + 10;\n        TEST_ASSERT(sum == 15, \nactual value: %d\n, sum);\n    }\n\n    TEST_CASE(test_times_0)\n    {\n        TEST_ASSERT(3 * 0 == 0);\n        TEST_ASSERT(4 * 0 == 0);\n        TEST_ASSERT(712 * 0 == 0);\n    }\n\n    TEST_SUITE(test_suite_arithmetic)\n    {\n        test_addition();\n        test_times_0();\n    }\n\n\n\n\nThe test suite would then be executed via a call to \ntest_suite_arithmetic()\n.\n\n\nData structures\n\n\nstruct tu_config {\n    int tc_print_results;\n    int tc_system_assert;\n\n    tu_case_init_fn_t *tc_case_init_cb;\n    void *tc_case_init_arg;\n\n    tu_case_report_fn_t *tc_case_fail_cb;\n    void *tc_case_fail_arg;\n\n    tu_case_report_fn_t *tc
 _case_pass_cb;\n    void *tc_case_pass_arg;\n\n    tu_suite_init_fn_t *tc_suite_init_cb;\n    void *tc_suite_init_arg;\n\n    tu_restart_fn_t *tc_restart_cb;\n    void *tc_restart_arg;\n};\nextern struct tu_config tu_config;\n\n\n\n\nThe global \ntu_config\n struct contains all the testutil package's settings.\nThis should be populated before \ntu_init()\n is called.\n\n\nList of Functions\n\n\n\n\nThe functions, and macros available in testutil are:\n\n\n\n\ntu_init\n\n\nTEST_ASSERT\n\n\nTEST_PASS\n\n\nTEST_SUITE\n\n\nTEST_CASE\n\n\ntu_restart", 
             "title": "Overview"
         }, 
         {
             "location": "/os/modules/testutil/testutil/#testutil", 
-            "text": "Insert synopsis here", 
+            "text": "The testutil package is a test framework that provides facilities for specifying test cases and recording test results.  You would use it to build regression tests for your library.", 
             "title": "testutil"
         }, 
         {
             "location": "/os/modules/testutil/testutil/#description", 
-            "text": "Describe module here, special features, how pieces fit together etc.", 
+            "text": "A package may optionally contain a set of test cases.  Test cases are not normally compiled and linked when a package is built; they are only included\nwhen the \"test\" identity is specified.  All of a package's test code goes in its  src/test  directory.  For example, the nffs package's test code is located in the following directory:      * fs/nffs/src/test/  This directory contains the source and header files that implement the nffs test code.  The test code has access to all the header files in the following directories:      * src\n    * src/arch/ target-arch \n    * include\n    * src/test\n    * src/test/arch/ target-arch \n    * include directories of all package dependencies  Package test code typically depends on the testutil package, described later in this document.  If a package's test code uses testutil, then the package itself needs to have testutil in its dependency list.  Some test cases or test initialization code may be platform-specific.  In
  such cases, the platform-specific function definitions are placed in arch subdirectories within the package test directory.  While building the test code (i.e., when the  test  identity is specified), the newt tool defines the  TEST  macro.  This macro is defined during compilation of all C source files in all projects and packages.  Tests are structured according to the following hierarchy:                  [test]\n               /      \\\n        [suite]        [suite]\n       /       \\      /       \\\n     [case] [case]  [case] [case]  I.e., a test consists of test suites, and a test suite consists of test cases.  The test code uses testutil to define test suites and test cases.  Regression test can then be executed using 'newt target test' command, or by including a call to your test suite from  project/test/src/test.c .", 
             "title": "Description"
         }, 
         {
+            "location": "/os/modules/testutil/testutil/#example", 
+            "text": "The following example demonstrates how to create a simple test suite.      TEST_CASE(test_addition)\n    {\n        int sum;\n\n        sum = 5 + 10;\n        TEST_ASSERT(sum == 15,  actual value: %d , sum);\n    }\n\n    TEST_CASE(test_times_0)\n    {\n        TEST_ASSERT(3 * 0 == 0);\n        TEST_ASSERT(4 * 0 == 0);\n        TEST_ASSERT(712 * 0 == 0);\n    }\n\n    TEST_SUITE(test_suite_arithmetic)\n    {\n        test_addition();\n        test_times_0();\n    }  The test suite would then be executed via a call to  test_suite_arithmetic() .", 
+            "title": "Example"
+        }, 
+        {
             "location": "/os/modules/testutil/testutil/#data-structures", 
-            "text": "Replace this with the list of data structures used, why, any neat features", 
+            "text": "struct tu_config {\n    int tc_print_results;\n    int tc_system_assert;\n\n    tu_case_init_fn_t *tc_case_init_cb;\n    void *tc_case_init_arg;\n\n    tu_case_report_fn_t *tc_case_fail_cb;\n    void *tc_case_fail_arg;\n\n    tu_case_report_fn_t *tc_case_pass_cb;\n    void *tc_case_pass_arg;\n\n    tu_suite_init_fn_t *tc_suite_init_cb;\n    void *tc_suite_init_arg;\n\n    tu_restart_fn_t *tc_restart_cb;\n    void *tc_restart_arg;\n};\nextern struct tu_config tu_config;  The global  tu_config  struct contains all the testutil package's settings.\nThis should be populated before  tu_init()  is called.", 
             "title": "Data structures"
         }, 
         {
             "location": "/os/modules/testutil/testutil/#list-of-functions", 
-            "text": "The functions available in testutil are:   tu_case_abort  tu_case_append_assert_msg  tu_case_append_buf  tu_case_append_file_info  tu_case_append_manual_pass_msg  tu_case_complete  tu_case_fail_assert  tu_case_init  tu_case_pass_manual  tu_case_set_name  tu_case_vappend_buf  tu_case_write_fail_buf  tu_case_write_pass_auto  tu_case_write_pass_buf  tu_init  tu_restart  tu_suite_init  tu_suite_set_name", 
+            "text": "The functions, and macros available in testutil are:   tu_init  TEST_ASSERT  TEST_PASS  TEST_SUITE  TEST_CASE  tu_restart", 
             "title": "List of Functions"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_abort/", 
-            "text": "", 
-            "title": "tu_case_abort"
+            "location": "/os/modules/testutil/tu_init/", 
+            "text": "tu_init\n\n\nint tu_init(void)\n\n\n\n\nInitializes the test framework according to the contents of the \ntu_config\n struct. This function must be called before any tests are run.\n\n\nArguments\n\n\nN/A\n\n\nReturned values\n\n\nReturns 0 on success; nonzero on failure.\n\n\nExample\n\n\nHere's an example of stand-alone code which allows the user to execute regression tests for sys/config package only.\n\n\n#ifdef PKG_TEST\n\nint\nmain(int argc, char **argv)\n{\n    tu_config.tc_print_results = 1;\n    tu_init();\n\n    conf_init();\n    config_test_all();\n\n    return tu_any_failed;\n}\n\n#endif", 
+            "title": "tu_init"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_append_assert_msg/", 
-            "text": "", 
-            "title": "tu_case_append_assert_msg"
+            "location": "/os/modules/testutil/tu_init/#tu_init", 
+            "text": "int tu_init(void)  Initializes the test framework according to the contents of the  tu_config  struct. This function must be called before any tests are run.", 
+            "title": " tu_init"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_append_buf/", 
-            "text": "", 
-            "title": "tu_case_append_buf"
+            "location": "/os/modules/testutil/tu_init/#arguments", 
+            "text": "N/A", 
+            "title": "Arguments"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_append_file_info/", 
-            "text": "", 
-            "title": "tu_case_append_file_info"
+            "location": "/os/modules/testutil/tu_init/#returned-values", 
+            "text": "Returns 0 on success; nonzero on failure.", 
+            "title": "Returned values"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_append_manual_pass_msg/", 
-            "text": "", 
-            "title": "tu_case_append_manual_pass_msg"
+            "location": "/os/modules/testutil/tu_init/#example", 
+            "text": "Here's an example of stand-alone code which allows the user to execute regression tests for sys/config package only.  #ifdef PKG_TEST\n\nint\nmain(int argc, char **argv)\n{\n    tu_config.tc_print_results = 1;\n    tu_init();\n\n    conf_init();\n    config_test_all();\n\n    return tu_any_failed;\n}\n\n#endif", 
+            "title": "Example"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_complete/", 
-            "text": "", 
-            "title": "tu_case_complete"
+            "location": "/os/modules/testutil/test_assert/", 
+            "text": "TEST_ASSERT\n\n\nTEST_ASSERT(expression, fail_msg, ...)\n\n\n\n\nTEST_ASSERT_FATAL(expression, fail_msg, ...)\n\n\n\n\nAsserts that the specified condition is true.  If the expression is true, nothing gets reported. \nfail_msg\n will be printed out if the expression is false. The expression argument is mandatory; the rest are optional.  The fail_msg argument is a printf format string which specifies how the remaining arguments are parsed.\n\n\nTEST_ASSERT_FATAL()\n causes the current test case to be aborted, if expression fails.\n\n\nArguments\n\n\n\n\n\n\n\n\nArguments\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nexpression\n\n\nCondition being tested. If it fails, test is considered a failure, and a message is printed out.\n\n\n\n\n\n\nfail_msg\n\n\nPointer to C string that contains a format string that follows the same specifications as format in printf.\n\n\n\n\n\n\n...\n\n\nDepending on the format string, the function may expect either a sequence of additional arg
 uments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in \n in stdarg.h.\n\n\n\n\n\n\n\n\nReturned values\n\n\nNone\n\n\nNotes\n\n\nWhile \nconsole_printf\n, with its well understood formatting options in C, is more convenient and easy on the eyes than the raw output of \nconsole_write\n, the associated code size is considerably larger.\n\n\nExample\n\n\nExample #1:\n\n\nTEST_CASE(config_test_insert)\n{\n    int rc;\n\n    rc = conf_register(\nconfig_test_handler);\n    TEST_ASSERT(rc == 0);\n}\n\n\n\n\nExample #2:\n\n\nTEST_CASE(nffs_test_unlink)\n{\n    int rc;\n\n    ....\n\n    rc = nffs_format(nffs_area_descs);\n    TEST_ASSERT_FATAL(rc == 0);\n\n    ....\n}\n\n\n\n\nExample #3:\n\n\n\nstatic int \ncbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, \n        void *arg)\n{\n    ....\n\n    rc = cbmem_read(cbmem, hdr, \nactual, 0, sizeof(actual));\n    TEST_ASSERT_FATAL(rc == 1, \
 nCouldn't read 1 byte from cbmem\n);\n    TEST_ASSERT_FATAL(actual == expected, \n            \nActual doesn't equal expected (%d = %d)\n, actual, expected);\n\n    ....\n}", 
+            "title": "TEST_ASSERT"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_fail_assert/", 
-            "text": "", 
-            "title": "tu_case_fail_assert"
+            "location": "/os/modules/testutil/test_assert/#test_assert", 
+            "text": "TEST_ASSERT(expression, fail_msg, ...)  TEST_ASSERT_FATAL(expression, fail_msg, ...)  Asserts that the specified condition is true.  If the expression is true, nothing gets reported.  fail_msg  will be printed out if the expression is false. The expression argument is mandatory; the rest are optional.  The fail_msg argument is a printf format string which specifies how the remaining arguments are parsed.  TEST_ASSERT_FATAL()  causes the current test case to be aborted, if expression fails.", 
+            "title": " TEST_ASSERT"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_init/", 
-            "text": "", 
-            "title": "tu_case_init"
+            "location": "/os/modules/testutil/test_assert/#arguments", 
+            "text": "Arguments  Description      expression  Condition being tested. If it fails, test is considered a failure, and a message is printed out.    fail_msg  Pointer to C string that contains a format string that follows the same specifications as format in printf.    ...  Depending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in   in stdarg.h.", 
+            "title": "Arguments"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_pass_manual/", 
-            "text": "", 
-            "title": "tu_case_pass_manual"
+            "location": "/os/modules/testutil/test_assert/#returned-values", 
+            "text": "None", 
+            "title": "Returned values"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_set_name/", 
-            "text": "", 
-            "title": "tu_case_set_name"
+            "location": "/os/modules/testutil/test_assert/#notes", 
+            "text": "While  console_printf , with its well understood formatting options in C, is more convenient and easy on the eyes than the raw output of  console_write , the associated code size is considerably larger.", 
+            "title": "Notes"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_vappend_buf/", 
-            "text": "", 
-            "title": "tu_case_vappend_buf"
+            "location": "/os/modules/testutil/test_assert/#example", 
+            "text": "Example #1:  TEST_CASE(config_test_insert)\n{\n    int rc;\n\n    rc = conf_register( config_test_handler);\n    TEST_ASSERT(rc == 0);\n}  Example #2:  TEST_CASE(nffs_test_unlink)\n{\n    int rc;\n\n    ....\n\n    rc = nffs_format(nffs_area_descs);\n    TEST_ASSERT_FATAL(rc == 0);\n\n    ....\n}  Example #3:  \nstatic int \ncbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, \n        void *arg)\n{\n    ....\n\n    rc = cbmem_read(cbmem, hdr,  actual, 0, sizeof(actual));\n    TEST_ASSERT_FATAL(rc == 1,  Couldn't read 1 byte from cbmem );\n    TEST_ASSERT_FATAL(actual == expected, \n             Actual doesn't equal expected (%d = %d) , actual, expected);\n\n    ....\n}", 
+            "title": "Example"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_write_fail_buf/", 
-            "text": "", 
-            "title": "tu_case_write_fail_buf"
+            "location": "/os/modules/testutil/test_pass/", 
+            "text": "TEST_PASS \n\n\nTEST_PASS(msg, ...)\n\n\n\n\nReports a success result for the current test.  This function is not normally needed, as all successful tests automatically write an empty pass result at completion. It is only needed when the success result report should contain text.  The msg argument is a printf format string\n    which specifies how the remaining arguments are parsed.  The result file\n    produced by this function contains the following text:\n\n\n        |\nfile\n:\nline-number\n| manual pass\n        \nmsg\n\n\n\n\n\nArguments\n\n\n\n\n\n\n\n\nArguments\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nmsg\n\n\nThis is a printf format string which specifies how the remaining arguments are parsed\n\n\n\n\n\n\n...\n\n\nDepending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in \n in stdarg.h.\
 n\n\n\n\n\n\n\n\nReturned values\n\n\nNone\n\n\nNotes\n\n\nAfter this function is called, the remainder of the test case is not executed.", 
+            "title": "TEST_PASS"
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_write_pass_auto/", 
-            "text": "", 
-            "title": "tu_case_write_pass_auto"
+            "location": "/os/modules/testutil/test_pass/#test_pass", 
+            "text": "TEST_PASS(msg, ...)  Reports a success result for the current test.  This function is not normally needed, as all successful tests automatically write an empty pass result at completion. It is only needed when the success result report should contain text.  The msg argument is a printf format string\n    which specifies how the remaining arguments are parsed.  The result file\n    produced by this function contains the following text:          | file : line-number | manual pass\n         msg", 
+            "title": " TEST_PASS "
         }, 
         {
-            "location": "/os/modules/testutil/tu_case_write_pass_buf/", 
-            "text": "", 
-            "title": "tu_case_write_pass_buf"
+            "location": "/os/modules/testutil/test_pass/#arguments", 
+            "text": "Arguments  Description      msg  This is a printf format string which specifies how the remaining arguments are parsed    ...  Depending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in   in stdarg.h.", 
+            "title": "Arguments"
         }, 
         {
-            "location": "/os/modules/testutil/tu_init/", 
-            "text": "", 
-            "title": "tu_init"
+            "location": "/os/modules/testutil/test_pass/#returned-values", 
+            "text": "None", 
+            "title": "Returned values"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_pass/#notes", 
+            "text": "After this function is called, the remainder of the test case is not executed.", 
+            "title": "Notes"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_suite/", 
+            "text": "TEST_SUITE \n\n\nTEST_SUITE(test_suite_name)\n\n\n\n\nDeclares a test suite function with the following type \nint test_suite_name(void)\n. This can then be called from either \nproject/test\n, or from main routine for package specific regression test.\n\n\nArguments\n\n\n\n\n\n\n\n\nArguments\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\ntest_suite_name\n\n\nUsed as the function name for this test suite.\n\n\n\n\n\n\n\n\nReturned values\n\n\nReturn value is 0 if the test suite passed; nonzero if it failed. Generally, the return code is not used. It is expected that the individual test cases will pass/fail with tests done using \nTEST_ASSERT()\n.\n\n\nExample\n\n\nTEST_SUITE(os_sem_test_suite)\n{\n    os_sem_test_basic();\n    os_sem_test_case_1();\n    os_sem_test_case_2();\n    os_sem_test_case_3();\n    os_sem_test_case_4();\n}", 
+            "title": "TEST_SUITE"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_suite/#test_suite", 
+            "text": "TEST_SUITE(test_suite_name)  Declares a test suite function with the following type  int test_suite_name(void) . This can then be called from either  project/test , or from main routine for package specific regression test.", 
+            "title": " TEST_SUITE "
+        }, 
+        {
+            "location": "/os/modules/testutil/test_suite/#arguments", 
+            "text": "Arguments  Description      test_suite_name  Used as the function name for this test suite.", 
+            "title": "Arguments"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_suite/#returned-values", 
+            "text": "Return value is 0 if the test suite passed; nonzero if it failed. Generally, the return code is not used. It is expected that the individual test cases will pass/fail with tests done using  TEST_ASSERT() .", 
+            "title": "Returned values"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_suite/#example", 
+            "text": "TEST_SUITE(os_sem_test_suite)\n{\n    os_sem_test_basic();\n    os_sem_test_case_1();\n    os_sem_test_case_2();\n    os_sem_test_case_3();\n    os_sem_test_case_4();\n}", 
+            "title": "Example"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_case/", 
+            "text": "TEST_CASE \n\n\nTEST_CASE(test_case_name)\n\n\n\n\nDeclares a test case function with the following type \nint test_case_name(void)\n. This can then be called from regression test's \nTEST_SUITE()\n function.\n\n\nArguments\n\n\n\n\n\n\n\n\nArguments\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\ntest_case_name\n\n\nUsed as the function name for this test case.\n\n\n\n\n\n\n\n\nReturned values\n\n\nReturn value is 0 if the test case passed; nonzero if it failed. Generally, the return code is not used. It is expected that the case will pass/fail with tests done using \nTEST_ASSERT()\n.\n\n\nExample\n\n\nTEST_CASE(config_test_insert)\n{\n     ....\n}", 
+            "title": "TEST_CASE"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_case/#test_case", 
+            "text": "TEST_CASE(test_case_name)  Declares a test case function with the following type  int test_case_name(void) . This can then be called from regression test's  TEST_SUITE()  function.", 
+            "title": " TEST_CASE "
+        }, 
+        {
+            "location": "/os/modules/testutil/test_case/#arguments", 
+            "text": "Arguments  Description      test_case_name  Used as the function name for this test case.", 
+            "title": "Arguments"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_case/#returned-values", 
+            "text": "Return value is 0 if the test case passed; nonzero if it failed. Generally, the return code is not used. It is expected that the case will pass/fail with tests done using  TEST_ASSERT() .", 
+            "title": "Returned values"
+        }, 
+        {
+            "location": "/os/modules/testutil/test_case/#example", 
+            "text": "TEST_CASE(config_test_insert)\n{\n     ....\n}", 
+            "title": "Example"
         }, 
         {
             "location": "/os/modules/testutil/tu_restart/", 
-            "text": "", 
+            "text": "tu_restart \n\n\nvoid tu_restart(void)\n\n\n\n\nThis function is used when a system reset is necessary to proceed with testing.  For example, the OS is designed to run forever once started, so a test which creates several OS tasks and then starts the OS has no means of completing. This function, when called from such a test, gracefully ends the current test case and proceeds to the next test case.\n\n\nThe particulars of this function depend on whether it is called from a simulated environment.  In a simulated environment, this function uses a \nlongjmp()\n call to break out of the current test case.\n\n\nArguments\n\n\nN/A\n\n\nReturned values\n\n\nReturns 0 on success; nonzero on failure.\n\n\nExample\n\n\nvoid\nos_test_restart(void)\n{\n    ....\n\n    tu_restart();\n}\n#endif", 
             "title": "tu_restart"
         }, 
         {
-            "location": "/os/modules/testutil/tu_suite_init/", 
-            "text": "", 
-            "title": "tu_suite_init"
+            "location": "/os/modules/testutil/tu_restart/#tu_restart", 
+            "text": "void tu_restart(void)  This function is used when a system reset is necessary to proceed with testing.  For example, the OS is designed to run forever once started, so a test which creates several OS tasks and then starts the OS has no means of completing. This function, when called from such a test, gracefully ends the current test case and proceeds to the next test case.  The particulars of this function depend on whether it is called from a simulated environment.  In a simulated environment, this function uses a  longjmp()  call to break out of the current test case.", 
+            "title": " tu_restart "
         }, 
         {
-            "location": "/os/modules/testutil/tu_suite_set_name/", 
-            "text": "", 
-            "title": "tu_suite_set_name"
+            "location": "/os/modules/testutil/tu_restart/#arguments", 
+            "text": "N/A", 
+            "title": "Arguments"
+        }, 
+        {
+            "location": "/os/modules/testutil/tu_restart/#returned-values", 
+            "text": "Returns 0 on success; nonzero on failure.", 
+            "title": "Returned values"
+        }, 
+        {
+            "location": "/os/modules/testutil/tu_restart/#example", 
+            "text": "void\nos_test_restart(void)\n{\n    ....\n\n    tu_restart();\n}\n#endif", 
+            "title": "Example"
         }, 
         {
             "location": "/os/modules/imgmgr/imgmgr/", 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/os/modules/testutil/test_assert/index.html
----------------------------------------------------------------------
diff --git a/os/modules/testutil/test_assert/index.html b/os/modules/testutil/test_assert/index.html
new file mode 100644
index 0000000..d9dfe26
--- /dev/null
+++ b/os/modules/testutil/test_assert/index.html
@@ -0,0 +1,521 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        
+        
+        <link rel="canonical" href="http://mynewt.apache.org/os/modules/testutil/test_assert/">
+        <link rel="shortcut icon" href="../../../../img/favicon.ico">
+
+	<title>TEST_ASSERT - Apache Mynewt</title>
+
+        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../../css/highlight.css">
+        <link href="../../../../css/base.css" rel="stylesheet">
+        <link href="../../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../../extra.css" rel="stylesheet">
+
+        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+        <![endif]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="TEST_ASSERT">
+
+
+        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- Collapsed navigation -->
+        <div class="navbar-header">
+            <!-- Expander button -->
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/documentation/">Docs</a>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../get_started/introduction/
+">Apache Mynewt Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../../../get_started/introduction/">Introduction</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../../get_started/project1/
+">Get Started</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../../get_acclimated/project2/
+">Tutorials</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  
+  
+  
+  
+  ../../../core_os/mynewt_os/
+
+
+">Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+  <li><a href="
+  
+  
+  ../../../core_os/mynewt_os/
+
+">OS Core</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../console/console/
+">Console</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../shell/shell/
+">Shell</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../bootloader/bootloader/
+">Bootloader</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../filesystem/">File System Abstraction</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../../nffs/">Newtron Flash File System</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../testutil/
+">Test Utilities</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../testutil/">Overview</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../tu_init/
+">Functions/Macros</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../tu_init/">tu_init</a>
+    </li>
+  
+
+          
+              
+  
+    <li class="active">
+      TEST_ASSERT
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_pass/">TEST_PASS</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_suite/">TEST_SUITE</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_case/">TEST_CASE</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../tu_restart/">tu_restart</a>
+    </li>
+  
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../imgmgr/imgmgr/
+">Image Manager</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../baselibc/">Baselibc library</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../elua/elua/
+">Embedded Lua</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../json/json/
+">JSON</a>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newt/newt_intro/
+">Newt Tool Manual</a>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newtmgr/overview/
+">Newt Manager Manual</a>
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+                    
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+                    
+                    <div class="col-md-9 documentation-viewer" role="main">
+                        <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../../..">Docs</a> &raquo;</li>
+    
+      
+        
+          <li>Test Utilities &raquo;</li>
+        
+      
+        
+          <li>Functions/Macros &raquo;</li>
+        
+      
+    
+    <li>TEST_ASSERT</li>
+    <li class="wy-breadcrumbs-aside">
+      
+    </li>
+  </ul>
+  <hr/>
+</div>
+                        
+                            <h2 id="test_assert"><font color="F2853F" style="font-size:24pt"> TEST_ASSERT</font><a class="headerlink" href="#test_assert" title="Permanent link">&para;</a></h2>
+<pre><code class="no-highlight">TEST_ASSERT(expression, fail_msg, ...)
+</code></pre>
+
+<pre><code class="no-highlight">TEST_ASSERT_FATAL(expression, fail_msg, ...)
+</code></pre>
+
+<p>Asserts that the specified condition is true.  If the expression is true, nothing gets reported. <em>fail_msg</em> will be printed out if the expression is false. The expression argument is mandatory; the rest are optional.  The fail_msg argument is a printf format string which specifies how the remaining arguments are parsed.</p>
+<p><code>TEST_ASSERT_FATAL()</code> causes the current test case to be aborted, if expression fails.</p>
+<h4 id="arguments">Arguments<a class="headerlink" href="#arguments" title="Permanent link">&para;</a></h4>
+<table>
+<thead>
+<tr>
+<th>Arguments</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>expression</td>
+<td>Condition being tested. If it fails, test is considered a failure, and a message is printed out.</td>
+</tr>
+<tr>
+<td>fail_msg</td>
+<td>Pointer to C string that contains a format string that follows the same specifications as format in printf.</td>
+</tr>
+<tr>
+<td>...</td>
+<td>Depending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in <cstdarg> in stdarg.h.</td>
+</tr>
+</tbody>
+</table>
+<h4 id="returned-values">Returned values<a class="headerlink" href="#returned-values" title="Permanent link">&para;</a></h4>
+<p>None</p>
+<h4 id="notes">Notes<a class="headerlink" href="#notes" title="Permanent link">&para;</a></h4>
+<p>While <code>console_printf</code>, with its well understood formatting options in C, is more convenient and easy on the eyes than the raw output of <code>console_write</code>, the associated code size is considerably larger.</p>
+<h4 id="example">Example<a class="headerlink" href="#example" title="Permanent link">&para;</a></h4>
+<p>Example #1:</p>
+<pre><code class="no-highlight">TEST_CASE(config_test_insert)
+{
+    int rc;
+
+    rc = conf_register(&amp;config_test_handler);
+    TEST_ASSERT(rc == 0);
+}
+</code></pre>
+
+<p>Example #2:</p>
+<pre><code class="no-highlight">TEST_CASE(nffs_test_unlink)
+{
+    int rc;
+
+    ....
+
+    rc = nffs_format(nffs_area_descs);
+    TEST_ASSERT_FATAL(rc == 0);
+
+    ....
+}
+</code></pre>
+
+<p>Example #3:</p>
+<pre><code class="no-highlight">
+static int 
+cbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, 
+        void *arg)
+{
+    ....
+
+    rc = cbmem_read(cbmem, hdr, &amp;actual, 0, sizeof(actual));
+    TEST_ASSERT_FATAL(rc == 1, &quot;Couldn't read 1 byte from cbmem&quot;);
+    TEST_ASSERT_FATAL(actual == expected, 
+            &quot;Actual doesn't equal expected (%d = %d)&quot;, actual, expected);
+
+    ....
+}
+</code></pre>
+                        
+                    </div>
+                </div>
+            
+            <div class="row">    
+                <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+            </div>
+        </div>
+
+        <script src="../../../../js/jquery-1.10.2.min.js"></script>
+        <script src="../../../../js/bootstrap-3.0.3.min.js"></script>
+        <script src="../../../../js/highlight.pack.js"></script>
+        <script src="../../../../js/base.js"></script>
+        <script src="../../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/os/modules/testutil/test_case/index.html
----------------------------------------------------------------------
diff --git a/os/modules/testutil/test_case/index.html b/os/modules/testutil/test_case/index.html
new file mode 100644
index 0000000..0b254bf
--- /dev/null
+++ b/os/modules/testutil/test_case/index.html
@@ -0,0 +1,472 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        
+        
+        <link rel="canonical" href="http://mynewt.apache.org/os/modules/testutil/test_case/">
+        <link rel="shortcut icon" href="../../../../img/favicon.ico">
+
+	<title>TEST_CASE - Apache Mynewt</title>
+
+        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../../css/highlight.css">
+        <link href="../../../../css/base.css" rel="stylesheet">
+        <link href="../../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../../extra.css" rel="stylesheet">
+
+        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+        <![endif]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="TEST_CASE">
+
+
+        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- Collapsed navigation -->
+        <div class="navbar-header">
+            <!-- Expander button -->
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/documentation/">Docs</a>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../get_started/introduction/
+">Apache Mynewt Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../../../get_started/introduction/">Introduction</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../../get_started/project1/
+">Get Started</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../../get_acclimated/project2/
+">Tutorials</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  
+  
+  
+  
+  ../../../core_os/mynewt_os/
+
+
+">Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+  <li><a href="
+  
+  
+  ../../../core_os/mynewt_os/
+
+">OS Core</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../console/console/
+">Console</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../shell/shell/
+">Shell</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../bootloader/bootloader/
+">Bootloader</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../filesystem/">File System Abstraction</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../../nffs/">Newtron Flash File System</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../testutil/
+">Test Utilities</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../testutil/">Overview</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../tu_init/
+">Functions/Macros</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../tu_init/">tu_init</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_assert/">TEST_ASSERT</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_pass/">TEST_PASS</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_suite/">TEST_SUITE</a>
+    </li>
+  
+
+          
+              
+  
+    <li class="active">
+      TEST_CASE
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../tu_restart/">tu_restart</a>
+    </li>
+  
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../imgmgr/imgmgr/
+">Image Manager</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../baselibc/">Baselibc library</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../elua/elua/
+">Embedded Lua</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../json/json/
+">JSON</a>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newt/newt_intro/
+">Newt Tool Manual</a>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newtmgr/overview/
+">Newt Manager Manual</a>
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+                    
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+                    
+                    <div class="col-md-9 documentation-viewer" role="main">
+                        <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../../..">Docs</a> &raquo;</li>
+    
+      
+        
+          <li>Test Utilities &raquo;</li>
+        
+      
+        
+          <li>Functions/Macros &raquo;</li>
+        
+      
+    
+    <li>TEST_CASE</li>
+    <li class="wy-breadcrumbs-aside">
+      
+    </li>
+  </ul>
+  <hr/>
+</div>
+                        
+                            <h2 id="test_case"><font color="F2853F" style="font-size:24pt"> TEST_CASE </font><a class="headerlink" href="#test_case" title="Permanent link">&para;</a></h2>
+<pre><code class="no-highlight">TEST_CASE(test_case_name)
+</code></pre>
+
+<p>Declares a test case function with the following type <code>int test_case_name(void)</code>. This can then be called from regression test's <code>TEST_SUITE()</code> function.</p>
+<h4 id="arguments">Arguments<a class="headerlink" href="#arguments" title="Permanent link">&para;</a></h4>
+<table>
+<thead>
+<tr>
+<th>Arguments</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>test_case_name</td>
+<td>Used as the function name for this test case.</td>
+</tr>
+</tbody>
+</table>
+<h4 id="returned-values">Returned values<a class="headerlink" href="#returned-values" title="Permanent link">&para;</a></h4>
+<p>Return value is 0 if the test case passed; nonzero if it failed. Generally, the return code is not used. It is expected that the case will pass/fail with tests done using <code>TEST_ASSERT()</code>.</p>
+<h4 id="example">Example<a class="headerlink" href="#example" title="Permanent link">&para;</a></h4>
+<pre><code class="no-highlight">TEST_CASE(config_test_insert)
+{
+     ....
+}
+</code></pre>
+                        
+                    </div>
+                </div>
+            
+            <div class="row">    
+                <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+            </div>
+        </div>
+
+        <script src="../../../../js/jquery-1.10.2.min.js"></script>
+        <script src="../../../../js/bootstrap-3.0.3.min.js"></script>
+        <script src="../../../../js/highlight.pack.js"></script>
+        <script src="../../../../js/base.js"></script>
+        <script src="../../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/os/modules/testutil/test_pass/index.html
----------------------------------------------------------------------
diff --git a/os/modules/testutil/test_pass/index.html b/os/modules/testutil/test_pass/index.html
new file mode 100644
index 0000000..f8268b0
--- /dev/null
+++ b/os/modules/testutil/test_pass/index.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        
+        
+        <link rel="canonical" href="http://mynewt.apache.org/os/modules/testutil/test_pass/">
+        <link rel="shortcut icon" href="../../../../img/favicon.ico">
+
+	<title>TEST_PASS - Apache Mynewt</title>
+
+        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../../css/highlight.css">
+        <link href="../../../../css/base.css" rel="stylesheet">
+        <link href="../../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../../extra.css" rel="stylesheet">
+
+        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+        <![endif]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="TEST_PASS">
+
+
+        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- Collapsed navigation -->
+        <div class="navbar-header">
+            <!-- Expander button -->
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/documentation/">Docs</a>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../get_started/introduction/
+">Apache Mynewt Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../../../get_started/introduction/">Introduction</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../../get_started/project1/
+">Get Started</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../../get_acclimated/project2/
+">Tutorials</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  
+  
+  
+  
+  ../../../core_os/mynewt_os/
+
+
+">Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+  <li><a href="
+  
+  
+  ../../../core_os/mynewt_os/
+
+">OS Core</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../console/console/
+">Console</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../shell/shell/
+">Shell</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../bootloader/bootloader/
+">Bootloader</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../filesystem/">File System Abstraction</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../../nffs/">Newtron Flash File System</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../testutil/
+">Test Utilities</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../testutil/">Overview</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../tu_init/
+">Functions/Macros</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../tu_init/">tu_init</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_assert/">TEST_ASSERT</a>
+    </li>
+  
+
+          
+              
+  
+    <li class="active">
+      TEST_PASS
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_suite/">TEST_SUITE</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_case/">TEST_CASE</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../tu_restart/">tu_restart</a>
+    </li>
+  
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../imgmgr/imgmgr/
+">Image Manager</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../baselibc/">Baselibc library</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../elua/elua/
+">Embedded Lua</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../json/json/
+">JSON</a>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newt/newt_intro/
+">Newt Tool Manual</a>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newtmgr/overview/
+">Newt Manager Manual</a>
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+                    
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+                    
+                    <div class="col-md-9 documentation-viewer" role="main">
+                        <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../../..">Docs</a> &raquo;</li>
+    
+      
+        
+          <li>Test Utilities &raquo;</li>
+        
+      
+        
+          <li>Functions/Macros &raquo;</li>
+        
+      
+    
+    <li>TEST_PASS</li>
+    <li class="wy-breadcrumbs-aside">
+      
+    </li>
+  </ul>
+  <hr/>
+</div>
+                        
+                            <h2 id="test_pass"><font color="F2853F" style="font-size:24pt"> TEST_PASS </font><a class="headerlink" href="#test_pass" title="Permanent link">&para;</a></h2>
+<pre><code class="no-highlight">TEST_PASS(msg, ...)
+</code></pre>
+
+<p>Reports a success result for the current test.  This function is not normally needed, as all successful tests automatically write an empty pass result at completion. It is only needed when the success result report should contain text.  The msg argument is a printf format string
+    which specifies how the remaining arguments are parsed.  The result file
+    produced by this function contains the following text:</p>
+<pre><code class="no-highlight">        |&lt;file&gt;:&lt;line-number&gt;| manual pass
+        &lt;msg&gt;
+</code></pre>
+
+<h4 id="arguments">Arguments<a class="headerlink" href="#arguments" title="Permanent link">&para;</a></h4>
+<table>
+<thead>
+<tr>
+<th>Arguments</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>msg</td>
+<td>This is a printf format string which specifies how the remaining arguments are parsed</td>
+</tr>
+<tr>
+<td>...</td>
+<td>Depending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in <cstdarg> in stdarg.h.</td>
+</tr>
+</tbody>
+</table>
+<h4 id="returned-values">Returned values<a class="headerlink" href="#returned-values" title="Permanent link">&para;</a></h4>
+<p>None</p>
+<h4 id="notes">Notes<a class="headerlink" href="#notes" title="Permanent link">&para;</a></h4>
+<p>After this function is called, the remainder of the test case is not executed.</p>
+                        
+                    </div>
+                </div>
+            
+            <div class="row">    
+                <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+            </div>
+        </div>
+
+        <script src="../../../../js/jquery-1.10.2.min.js"></script>
+        <script src="../../../../js/bootstrap-3.0.3.min.js"></script>
+        <script src="../../../../js/highlight.pack.js"></script>
+        <script src="../../../../js/base.js"></script>
+        <script src="../../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/os/modules/testutil/test_suite/index.html
----------------------------------------------------------------------
diff --git a/os/modules/testutil/test_suite/index.html b/os/modules/testutil/test_suite/index.html
new file mode 100644
index 0000000..a1d367e
--- /dev/null
+++ b/os/modules/testutil/test_suite/index.html
@@ -0,0 +1,476 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        
+        
+        <link rel="canonical" href="http://mynewt.apache.org/os/modules/testutil/test_suite/">
+        <link rel="shortcut icon" href="../../../../img/favicon.ico">
+
+	<title>TEST_SUITE - Apache Mynewt</title>
+
+        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../../css/highlight.css">
+        <link href="../../../../css/base.css" rel="stylesheet">
+        <link href="../../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../../extra.css" rel="stylesheet">
+
+        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+        <![endif]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="TEST_SUITE">
+
+
+        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- Collapsed navigation -->
+        <div class="navbar-header">
+            <!-- Expander button -->
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/documentation/">Docs</a>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../get_started/introduction/
+">Apache Mynewt Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../../../get_started/introduction/">Introduction</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../../get_started/project1/
+">Get Started</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../../get_acclimated/project2/
+">Tutorials</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  
+  
+  
+  
+  ../../../core_os/mynewt_os/
+
+
+">Manual</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+  <li><a href="
+  
+  
+  ../../../core_os/mynewt_os/
+
+">OS Core</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../console/console/
+">Console</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../shell/shell/
+">Shell</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../bootloader/bootloader/
+">Bootloader</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../filesystem/">File System Abstraction</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../../nffs/">Newtron Flash File System</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../testutil/
+">Test Utilities</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../testutil/">Overview</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../tu_init/
+">Functions/Macros</a>
+    
+      <ul class="current-toc">
+          
+              
+  
+    <li>
+      <a href="../tu_init/">tu_init</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_assert/">TEST_ASSERT</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_pass/">TEST_PASS</a>
+    </li>
+  
+
+          
+              
+  
+    <li class="active">
+      TEST_SUITE
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../test_case/">TEST_CASE</a>
+    </li>
+  
+
+          
+              
+  
+    <li>
+      <a href="../tu_restart/">tu_restart</a>
+    </li>
+  
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../imgmgr/imgmgr/
+">Image Manager</a>
+    
+  </li>
+
+          
+              
+  
+    <li>
+      <a href="../../baselibc/">Baselibc library</a>
+    </li>
+  
+
+          
+              
+  
+  <li><a href="
+  ../../elua/elua/
+">Embedded Lua</a>
+    
+  </li>
+
+          
+              
+  
+  <li><a href="
+  ../../json/json/
+">JSON</a>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newt/newt_intro/
+">Newt Tool Manual</a>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  <li><a href="
+  ../../../../newtmgr/overview/
+">Newt Manager Manual</a>
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+                    
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+                    
+                    <div class="col-md-9 documentation-viewer" role="main">
+                        <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../../..">Docs</a> &raquo;</li>
+    
+      
+        
+          <li>Test Utilities &raquo;</li>
+        
+      
+        
+          <li>Functions/Macros &raquo;</li>
+        
+      
+    
+    <li>TEST_SUITE</li>
+    <li class="wy-breadcrumbs-aside">
+      
+    </li>
+  </ul>
+  <hr/>
+</div>
+                        
+                            <h2 id="test_suite"><font color="F2853F" style="font-size:24pt"> TEST_SUITE </font><a class="headerlink" href="#test_suite" title="Permanent link">&para;</a></h2>
+<pre><code class="no-highlight">TEST_SUITE(test_suite_name)
+</code></pre>
+
+<p>Declares a test suite function with the following type <code>int test_suite_name(void)</code>. This can then be called from either <em>project/test</em>, or from main routine for package specific regression test.</p>
+<h4 id="arguments">Arguments<a class="headerlink" href="#arguments" title="Permanent link">&para;</a></h4>
+<table>
+<thead>
+<tr>
+<th>Arguments</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>test_suite_name</td>
+<td>Used as the function name for this test suite.</td>
+</tr>
+</tbody>
+</table>
+<h4 id="returned-values">Returned values<a class="headerlink" href="#returned-values" title="Permanent link">&para;</a></h4>
+<p>Return value is 0 if the test suite passed; nonzero if it failed. Generally, the return code is not used. It is expected that the individual test cases will pass/fail with tests done using <code>TEST_ASSERT()</code>.</p>
+<h4 id="example">Example<a class="headerlink" href="#example" title="Permanent link">&para;</a></h4>
+<pre><code class="no-highlight">TEST_SUITE(os_sem_test_suite)
+{
+    os_sem_test_basic();
+    os_sem_test_case_1();
+    os_sem_test_case_2();
+    os_sem_test_case_3();
+    os_sem_test_case_4();
+}
+</code></pre>
+                        
+                    </div>
+                </div>
+            
+            <div class="row">    
+                <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+            </div>
+        </div>
+
+        <script src="../../../../js/jquery-1.10.2.min.js"></script>
+        <script src="../../../../js/bootstrap-3.0.3.min.js"></script>
+        <script src="../../../../js/highlight.pack.js"></script>
+        <script src="../../../../js/base.js"></script>
+        <script src="../../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/c7a3894b/os/modules/testutil/testutil/index.html
----------------------------------------------------------------------
diff --git a/os/modules/testutil/testutil/index.html b/os/modules/testutil/testutil/index.html
index 8f7ee15..eb4b71f 100644
--- a/os/modules/testutil/testutil/index.html
+++ b/os/modules/testutil/testutil/index.html
@@ -239,8 +239,8 @@
               
   
   <li><a href="
-  ../tu_case_abort/
-">Functions</a>
+  ../tu_init/
+">Functions/Macros</a>
     
   </li>
 
@@ -349,33 +349,98 @@
 </div>
                         
                             <h1 id="testutil">testutil<a class="headerlink" href="#testutil" title="Permanent link">&para;</a></h1>
-<p>Insert synopsis here</p>
+<p>The testutil package is a test framework that provides facilities for specifying test cases and recording test results.</p>
+<p>You would use it to build regression tests for your library.</p>
 <h2 id="description">Description<a class="headerlink" href="#description" title="Permanent link">&para;</a></h2>
-<p>Describe module here, special features, how pieces fit together etc.</p>
+<p>A package may optionally contain a set of test cases.  Test cases are not normally compiled and linked when a package is built; they are only included
+when the "test" identity is specified.  All of a package's test code goes in its <code>src/test</code> directory.  For example, the nffs package's test code is located in the following directory:</p>
+<pre><code class="no-highlight">    * fs/nffs/src/test/
+</code></pre>
+
+<p>This directory contains the source and header files that implement the nffs test code.</p>
+<p>The test code has access to all the header files in the following directories:</p>
+<pre><code class="no-highlight">    * src
+    * src/arch/&lt;target-arch&gt;
+    * include
+    * src/test
+    * src/test/arch/&lt;target-arch&gt;
+    * include directories of all package dependencies
+</code></pre>
+
+<p>Package test code typically depends on the testutil package, described later in this document.  If a package's test code uses testutil, then the package itself needs to have testutil in its dependency list.</p>
+<p>Some test cases or test initialization code may be platform-specific.  In such cases, the platform-specific function definitions are placed in arch subdirectories within the package test directory.</p>
+<p>While building the test code (i.e., when the <code>test</code> identity is specified), the newt tool defines the <code>TEST</code> macro.  This macro is defined during compilation of all C source files in all projects and packages.</p>
+<p>Tests are structured according to the following hierarchy:</p>
+<pre><code class="no-highlight">                [test]
+               /      \
+        [suite]        [suite]
+       /       \      /       \
+     [case] [case]  [case] [case]
+</code></pre>
+
+<p>I.e., a test consists of test suites, and a test suite consists of test cases.</p>
+<p>The test code uses testutil to define test suites and test cases.</p>
+<p>Regression test can then be executed using 'newt target test' command, or by including a call to your test suite from <code>project/test/src/test.c</code>.</p>
+<h3 id="example">Example<a class="headerlink" href="#example" title="Permanent link">&para;</a></h3>
+<p>The following example demonstrates how to create a simple test suite.</p>
+<pre><code class="no-highlight">    TEST_CASE(test_addition)
+    {
+        int sum;
+
+        sum = 5 + 10;
+        TEST_ASSERT(sum == 15, &quot;actual value: %d&quot;, sum);
+    }
+
+    TEST_CASE(test_times_0)
+    {
+        TEST_ASSERT(3 * 0 == 0);
+        TEST_ASSERT(4 * 0 == 0);
+        TEST_ASSERT(712 * 0 == 0);
+    }
+
+    TEST_SUITE(test_suite_arithmetic)
+    {
+        test_addition();
+        test_times_0();
+    }
+</code></pre>
+
+<p>The test suite would then be executed via a call to <code>test_suite_arithmetic()</code>.</p>
 <h2 id="data-structures">Data structures<a class="headerlink" href="#data-structures" title="Permanent link">&para;</a></h2>
-<p>Replace this with the list of data structures used, why, any neat features</p>
+<pre><code class="no-highlight">struct tu_config {
+    int tc_print_results;
+    int tc_system_assert;
+
+    tu_case_init_fn_t *tc_case_init_cb;
+    void *tc_case_init_arg;
+
+    tu_case_report_fn_t *tc_case_fail_cb;
+    void *tc_case_fail_arg;
+
+    tu_case_report_fn_t *tc_case_pass_cb;
+    void *tc_case_pass_arg;
+
+    tu_suite_init_fn_t *tc_suite_init_cb;
+    void *tc_suite_init_arg;
+
+    tu_restart_fn_t *tc_restart_cb;
+    void *tc_restart_arg;
+};
+extern struct tu_config tu_config;
+</code></pre>
+
+<p>The global <code>tu_config</code> struct contains all the testutil package's settings.
+This should be populated before <code>tu_init()</code> is called.</p>
 <h2 id="list-of-functions">List of Functions<a class="headerlink" href="#list-of-functions" title="Permanent link">&para;</a></h2>
 <p><Comments such as these instructions are placed within angle brackets. List all the functions here. Note how the anchors work. You put the text you want to show up as a link within [] and the relevant #heading within (). Note that the header has to have at least 2 words for the anchor to work - that's how it is. "no-highlight" disables syntax highlighting. You can enable it for a particular language by specifying what the language is instead of "no-highlight". Be warned that this highlighting or no-highlighting specification may not show up nicely on Mou.></p>
-<p>The functions available in testutil are:</p>
+<p>The functions, and macros available in testutil are:</p>
 <ul>
-<li><a href="../tu_case_abort/">tu_case_abort</a></li>
-<li><a href="../tu_case_append_assert_msg/">tu_case_append_assert_msg</a></li>
-<li><a href="../tu_case_append_buf/">tu_case_append_buf</a></li>
-<li><a href="../tu_case_append_file_info/">tu_case_append_file_info</a></li>
-<li><a href="../tu_case_append_manual_pass_msg/">tu_case_append_manual_pass_msg</a></li>
-<li><a href="../tu_case_complete/">tu_case_complete</a></li>
-<li><a href="../tu_case_fail_assert/">tu_case_fail_assert</a></li>
-<li><a href="../tu_case_init/">tu_case_init</a></li>
-<li><a href="../tu_case_pass_manual/">tu_case_pass_manual</a></li>
-<li><a href="../tu_case_set_name/">tu_case_set_name</a></li>
-<li><a href="../tu_case_vappend_buf/">tu_case_vappend_buf</a></li>
-<li><a href="../tu_case_write_fail_buf/">tu_case_write_fail_buf</a></li>
-<li><a href="../tu_case_write_pass_auto/">tu_case_write_pass_auto</a></li>
-<li><a href="../tu_case_write_pass_buf/">tu_case_write_pass_buf</a></li>
 <li><a href="../tu_init/">tu_init</a></li>
+<li><a href="../test_assert/">TEST_ASSERT</a></li>
+<li><a href="../test_pass/">TEST_PASS</a></li>
+<li><a href="../test_suite/">TEST_SUITE</a></li>
+<li><a href="../test_case/">TEST_CASE</a></li>
 <li><a href="../tu_restart/">tu_restart</a></li>
-<li><a href="../tu_suite_init/">tu_suite_init</a></li>
-<li><a href="../tu_suite_set_name/">tu_suite_set_name</a></li>
 </ul>
                         
                     </div>