|
Last change
on this file since 3770 was 3621, checked in by Bruno Cornec, 9 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
|
| Line | |
|---|
| 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.