123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- -----------
- For: User
- -----------
- Following make targets are avaialable
- make compile
- This will compile and link the tests.
- make run
- This will execute all the tests.
- make check
- make all
- This will build and run tests.
- The following make variables may help you in testing:
- - UCLIBC_ONLY - only run tests against uClibc
- - GLIBC_ONLY - only run tests against glibc
- - V / VERBOSE - run tests with a lot of output
- - TEST_INSTALLED_UCLIBC - Test installed libraries
- under /lib and /usr/lib.
- - TIMEOUTFACTOR=nn - increase test timeout nn times.
- At least REGEX_OLD + regex/tst-regex2 needs it increased.
- So, to just run the uClibc tests, try this:
- make check UCLIBC_ONLY=1
- If you need to test just a subset of all test, delete subdirectories
- you do not need.
- As of 2009-07, build machinery does not track dependencies on uclibc.
- If you edit a header and re-run "make compile", it does not re-install it
- into ../install_dir. If you delete ../install_dir, "make compile"
- rebuilds uclibc as needed and re-installs ../install_dir,
- but still does not rebuild testcases.
- (You can work around it by "touch */*.c" for now).
- ----------------
- 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.in describe the tests to run
- test/subdir/Makefile test entry point, includes needed upper-level
- makefiles plus Makefile.in
- test/subdir/*.c the tests
- Each subdir has a Makefile (same for any subdir) that must include in strict order:
- - the upper-level Rules.mak file
- - the Makefile.in
- - the upper-level Test.mak file
- Makefile.in may be used to 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
- 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_DIRS := extra directories 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".
|