openscad/doc/testing.txt

81 lines
2.6 KiB
Plaintext
Raw Normal View History

2010-10-31 00:40:24 +04:00
Running regression tests:
-------------------------
2011-12-07 04:56:58 +04:00
Prerequisites: cmake, python, ImageMagick 6.5.9.3 or newer
2010-10-31 00:40:24 +04:00
2011-11-26 22:25:31 +04:00
A) Building test environment
2010-10-31 00:40:24 +04:00
2011-11-26 22:25:31 +04:00
Linux, Mac:
$ cd tests
$ cmake .
$ make
Windows:
First, get a normal build working by following instructions at
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_on_Windows
Then, from the QT command prompt:
2011-12-07 04:56:58 +04:00
> cd tests
> cmake . -DCMAKE_BUILD_TYPE=Release
> sed -i s/\/MD/\/MT/ CMakeCache.txt
> cmake .
> nmake -f Makefile
2011-11-26 22:25:31 +04:00
B) Running tests
$ ctest Runs tests enabled by default
$ ctest -R <regex> Runs only matching tests, e.g. ctest -R dxf
$ ctest -C <configs> Adds extended tests belonging to configs.
Valid configs:
Default - Run default tests
Heavy - Run more time consuming tests (> ~10 seconds)
Examples - test all examples
All - test everything
2010-07-11 21:22:24 +04:00
Adding a new regression test:
2010-10-31 00:40:24 +04:00
------------------------------
2010-07-11 21:22:24 +04:00
1) create a test file at an appropriate location under testdata/
2) if the test is non-obvious, create a human readable description of the test in the same directory (e.g testdata/scad/mytest.txt)
2011-09-04 04:58:09 +04:00
3) if a new test app was written, this must be added to tests/CMakeLists.txt
4) Add the tests to the test apps for which you want them to run (in tests/CMakeLists.txt)
5) run the test with the environment variable TEST_GENERATE=1, e.g.:
2011-04-29 20:02:54 +04:00
$ TEST_GENERATE=1 ctest -R mytest
2010-07-11 21:22:24 +04:00
(this will generate a mytest-expected.txt file which is used for regression testing)
2011-09-04 04:58:09 +04:00
6) manually verify that the output is correct (tests/regression/<testapp>/mytest-expected.<suffix>)
7) run the test normally and verify that it passes:
2010-07-11 21:22:24 +04:00
$ ctest -R mytest
2011-12-07 04:56:58 +04:00
Troubleshooting:
2011-09-19 02:53:33 +04:00
------------------------------
0. Headless unix servers (no X11)
$ Xvfb :5 -screen 0 800x600x24 &
$ DISPLAY=:5 ctest
1. Trouble finding libraries
To help CMAKE find eigen2, OpenCSG, CGAL, Boost, and GLEW, you can use
the -D option. See CMakeLists.txt for more information. Examples:
2011-12-07 04:56:58 +04:00
cmake . -DOPENCSG_DIR=~/OpenCSG-1.3.2
cmake . -DCGAL_DIR=c:\CGAL-3.7 -DBOOST_ROOT=c:\boost_1_46_0
2. Logs
2011-12-07 04:56:58 +04:00
2011-09-19 02:53:33 +04:00
Logs of test runs are found in tests/build/Testing/Temporary
2011-12-07 04:56:58 +04:00
Pretty-printed html output is in a subdir of tests/build/Testing/Temporary
2011-09-19 02:53:33 +04:00
Expected results are found in tests/regression/*
Actual results are found in tests/build/testname-output/*
3. Cross-compiling
Cross-compiling of tests has not been automated nor tested
4. Testing images takes forever, they fail, and it says 'return -11'
Imagemagick may have crashed. Try passing -DCOMPARATOR=ncc to cmake