blob: 1fadb9f3e5de2dbb759e29ae9e5c67ac29db19bb [file] [log] [blame]
There is a hierarchy of check targets:
make check
for all builders. If this works one can be reasonably happy R is working
and do `make install' (or the equivalent).
make check-devel
for people changing the code: this runs things like the demos and
no-segfault which might be broken by code changes, and checks on the
documentation (effectively R CMD check on each of the base packages).
This needs recommended packages installed.
make check-all
runs all the checks, those in check-devel plus tests of the recommended
packages.
Note that for complete testing you will need a number of other
packages installed and available, so if you have a CRAN installation,
set R_LIBS (perhaps in ~/.R/check.Renviron) to include it before
running these tests. For example, some of the tests on 'nlme' depend
on 'Hmisc', and there are a number of cross references from help pages
to CRAN packages.
If a check fails there will almost always be a .Rout.fail file with
the problematic output, so looking at the tail of that file should
help pinpoint the problem.
The \dontest sections of the examples can be run by
make check TEST_DONTTEST=TRUE
(but expect some differences from the reference ouput). This requires
functional Tcl/Tk, e.g. for X11-based versions DISPLAY must be set to
a usable X server.
---------- Historical Information -----------
In this directory, various tests on R are run automatically.
This is the recommended way to check if R has been built successfully on
your architecture.
make check
does
make test-Examples
runs all the examples from the help files (*.Rd) of all core packages
(base, ctest, ..., ts) -- which can take quite long (a few minutes,
depending on your environment).
make test-Specific
The "fast" part of the tests is `test-Specific' which runs the *.R
files in this (./tests) directory (tolerantly) compares the result
*.Rout file with the prespecified *.Rout.save (if that exists).
make test-Reg
runs regression tests, that is tests that ensure that things which have been
changed (perhaps as a result of bug reports) stay fixed.
make test-Internet
make test-Internet2
runs tests which need access to the Internet and/or sockets and so may
not run on every machine. You will see some differences in the
output, but no test should fail if you do have sockets and Internet
access. test-Internet2 is part of 'make check-devel' and checks less
commonly-used options.
Further tests are run by the target `make check-devel', including
make test-Demo
runs all the demos in packages base and stats (but not tcltk), except
demo(lm.glm) which is run by example(demo) and so not run again.
make test-Random
runs a series of tests on the distribution of random variates generated
by the rxxxx() functions. The test is a large deviation bound on the
Kolmogorov statistic, so also provides a test of the cumulative distribution
functions pxxxx(). Because rare events do happen, this test suite
will be failed in about 1 in 50 runs.
make test-Segfault
runs a test abusing all the functions in the base packages via
no-segfault.R, and that can be quite slow (a minute or more).
A target not run by anything else is
make test-System
which checks options in system[2]() calls.
A rarely-used target is
make test-Gct
runs a subset of the specific tests with gctorture turned on. This is slow,
taking an hour or two.
Martin Maechler for the R Core Team.