summaryrefslogtreecommitdiffstats
path: root/test/README
blob: 18d34e88a56d104795bf565b13a5934003f32fee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-----------
 For: User
-----------

The following make variables may help you in testing:
 - UCLIBC_ONLY  - only run tests against uClibc
 - GLIBC_ONLY   - only run tests against glibc
 - COMPILE_ONLY - just build the tests, don't run them
 - V / VERBOSE  - run tests with a lot of output

So, to just run the uClibc tests, try this:
make check UCLIBC_ONLY=1

----------------
 For: Developer
----------------

The structure of this test system is:
 test/                 toplevel dir containing common test code
 test/Rules.mak        Common build code
 test/Test.mak         Runtime test make code
 test/subdir/          code specific to a subsystem is stored in a subdir
 test/subdir/Makefile  describe the tests to run
 test/subdir/*.c       the tests

Each subdir Makefile must include the toplevel Test.mak file.  Before doing so,
you may define the TESTS and TESTS_DISABLED variables.  If you do not, TESTS
is built automatically based upon all the .c files in the subdir.
TESTS := foo
TESTS_DISABLED := bar
include ../Test.mak
Each test must use a similar .c name; so the "foo" test needs a "foo.c".

Additionally, the following options further control specific test behavior:
CFLAGS_foo    := extra cflags to use to compile test
DODIFF_foo    := compare the output of the glibc and uClibc tests (see below)
LDFLAGS_foo   := extra ldflags to use to link test
OPTS_foo      := extra options to pass to test
RET_foo       := expected exit code of test; default is 0
WRAPPER_foo   := execute stuff just before test

Or to control all tests in a subdir:
EXTRA_CLEAN   := extra files to remove in the clean target
EXTRA_CFLAGS  := -DFOO
EXTRA_LDFLAGS := -lpthread
OPTS          := 
WRAPPER       := 

If you want to compare the output of a test with known good output, then just
create a local file named "foo.out.good" and the output generated by the test
"foo" will be automatically stored in "foo.out" and compared to "foo.out.good".