Last change
on this file since 3772 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
|
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.