1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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.
|