mirror of
https://git.busybox.net/uClibc
synced 2025-10-14 01:32:00 +08:00

where SIMULATOR_glibc is an optional simulator to run host binaries and SIMULATOR_uclibc is an optional simulator to run target (uClibc) binaries. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
88 lines
3.1 KiB
Plaintext
88 lines
3.1 KiB
Plaintext
-----------
|
|
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
|
|
|
|
You can pass the following 2 environment variables to "make run":
|
|
- make run SIMULATOR_uclibc=qemu-sh4 SIMULATOR_glibc=qemu-x86_64
|
|
|
|
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".
|