Last change
on this file since 3864 was 3621, checked in by Bruno Cornec, 8 years ago |
New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.
|
-
Property svn:eol-style
set to
native
|
File size:
1.3 KB
|
Rev | Line | |
---|
[3621] | 1 | Busybox unit test framework
|
---|
| 2 | ===========================
|
---|
| 3 |
|
---|
| 4 | This document describes what you need to do to write test cases using the
|
---|
| 5 | Busybox unit test framework.
|
---|
| 6 |
|
---|
| 7 |
|
---|
| 8 | Building unit tests
|
---|
| 9 | -------------------
|
---|
| 10 |
|
---|
| 11 | The framework and all tests are built as a regular Busybox applet if option
|
---|
| 12 | CONFIG_UNIT_TEST (found in General Configuration -> Debugging Options) is set.
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | Writing test cases
|
---|
| 16 | ------------------
|
---|
| 17 |
|
---|
| 18 | Unit testing interface can be found in include/bbunit.h.
|
---|
| 19 |
|
---|
| 20 | Tests can be placed in any .c file in Busybox tree - preferably right next to
|
---|
| 21 | the functions they test. Test cases should be enclosed within an #if, and
|
---|
| 22 | should start with BBUNIT_DEFINE_TEST macro and end with BBUNIT_ENDTEST within
|
---|
| 23 | the test curly brackets. If an assertion fails the test ends immediately, ie.
|
---|
| 24 | the following assertions will not be reached. Any code placed after
|
---|
| 25 | BBUNIT_ENDTEST is executed regardless of the test result. Here's an example:
|
---|
| 26 |
|
---|
| 27 | #if ENABLE_UNIT_TEST
|
---|
| 28 |
|
---|
| 29 | BBUNIT_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 |
|
---|
| 46 | Running the unit test suite
|
---|
| 47 | ---------------------------
|
---|
| 48 |
|
---|
| 49 | To run the tests you can either directly run 'busybox unit' or use 'make test'
|
---|
| 50 | to run both the unit tests (if compiled) and regular test suite.
|
---|
Note:
See
TracBrowser
for help on using the repository browser.