OSDN Git Service

LT.old: Make __errno_location/__h_errno_location thread safe
[uclinux-h8/uClibc.git] / test / README
index 4704b57..8fb12d9 100644 (file)
@@ -1,35 +1,67 @@
 -----------
  For: User
 -----------
+Following make targets are avaialable
+
+make compile
+
+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.
+
+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
- - COMPILE_ONLY - just build the tests, don't run them
- - CHECK_ONLY - only run the tests, don't compile or link them
  - 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  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:
@@ -42,10 +74,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