blob: 0fb5220869bbc9b8059bc26d77c41152dde126e7 [file] [log] [blame]
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:
int *i;
i = malloc(sizeof(int));
*i = 2;
BBUNIT_ASSERT_EQ((*i)*(*i), 4);
#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.