Busybox unit test framework =========================== This document describes what you need to do to write test cases using the Busybox unit test framework. Building unit tests ------------------- The framework and all tests are built as a regular Busybox applet if option CONFIG_UNIT_TEST (found in General Configuration -> Debugging Options) is set. Writing test cases ------------------ Unit testing interface can be found in include/bbunit.h. Tests can be placed in any .c file in Busybox tree - preferably right next to the functions they test. Test cases should be enclosed within an #if, and should start with BBUNIT_DEFINE_TEST macro and end with BBUNIT_ENDTEST within the test curly brackets. If an assertion fails the test ends immediately, ie. the following assertions will not be reached. Any code placed after BBUNIT_ENDTEST is executed regardless of the test result. Here's an example: #if ENABLE_UNIT_TEST BBUNIT_DEFINE_TEST(test_name) { int *i; i = malloc(sizeof(int)); BBUNIT_ASSERT_NOTNULL(i); *i = 2; BBUNIT_ASSERT_EQ((*i)*(*i), 4); BBUNIT_ENDTEST; free(i); } #endif /* ENABLE_UNIT_TEST */ Running the unit test suite --------------------------- To run the tests you can either directly run 'busybox unit' or use 'make test' to run both the unit tests (if compiled) and regular test suite.