| ----------- |
| 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 |
| - 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". |