From 7988979a722b4cdf287b2093956a76a3f19b9897 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 24 Oct 2016 20:22:12 +0200 Subject: add uClibc-ng test directory --- test/README | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 test/README (limited to 'test/README') diff --git a/test/README b/test/README new file mode 100644 index 0000000..723ce6e --- /dev/null +++ b/test/README @@ -0,0 +1,87 @@ +----------- + 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". -- cgit v1.2.3