summaryrefslogtreecommitdiff
path: root/test/README
diff options
context:
space:
mode:
Diffstat (limited to 'test/README')
-rw-r--r--test/README56
1 files changed, 38 insertions, 18 deletions
diff --git a/test/README b/test/README
index b59945c54..723ce6e43 100644
--- a/test/README
+++ b/test/README
@@ -5,13 +5,11 @@ Following make targets are avaialable
make compile
-This will compile and link the tests
+This will compile and link the tests.
make run
-This will check for binaries if they are not there it
-will call 'compile' target then it will execute all the
-tests.
+This will execute all the tests.
make check
make all
@@ -19,32 +17,53 @@ 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
+ - 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 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.
+ 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
-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:
@@ -57,10 +76,11 @@ 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 :=
+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