busybox/docs/unit-tests.txt
<<
>>
Prefs
   1Busybox unit test framework
   2===========================
   3
   4This document describes what you need to do to write test cases using the
   5Busybox unit test framework.
   6
   7
   8Building unit tests
   9-------------------
  10
  11The framework and all tests are built as a regular Busybox applet if option
  12CONFIG_UNIT_TEST (found in General Configuration -> Debugging Options) is set.
  13
  14
  15Writing test cases
  16------------------
  17
  18Unit testing interface can be found in include/bbunit.h.
  19
  20Tests can be placed in any .c file in Busybox tree - preferably right next to
  21the functions they test. Test cases should be enclosed within an #if, and
  22should start with BBUNIT_DEFINE_TEST macro and end with BBUNIT_ENDTEST within
  23the test curly brackets. If an assertion fails the test ends immediately, ie.
  24the following assertions will not be reached. Any code placed after
  25BBUNIT_ENDTEST is executed regardless of the test result. Here's an example:
  26
  27#if ENABLE_UNIT_TEST
  28
  29BBUNIT_DEFINE_TEST(test_name)
  30{
  31        int *i;
  32
  33        i = malloc(sizeof(int));
  34        BBUNIT_ASSERT_NOTNULL(i);
  35        *i = 2;
  36        BBUNIT_ASSERT_EQ((*i)*(*i), 4);
  37
  38        BBUNIT_ENDTEST;
  39
  40        free(i);
  41}
  42
  43#endif /* ENABLE_UNIT_TEST */
  44
  45
  46Running the unit test suite
  47---------------------------
  48
  49To run the tests you can either directly run 'busybox unit' or use 'make test'
  50to run both the unit tests (if compiled) and regular test suite.
  51