diff options
Diffstat (limited to 'doc/testing.txt')
-rw-r--r-- | doc/testing.txt | 76 |
1 files changed, 48 insertions, 28 deletions
diff --git a/doc/testing.txt b/doc/testing.txt index 66ceac2..67d14ba 100644 --- a/doc/testing.txt +++ b/doc/testing.txt @@ -1,7 +1,7 @@ Running regression tests: ------------------------- -Prerequisites: cmake, python +Prerequisites: cmake, python, ImageMagick 6.5.9.3 or newer A) Building test environment @@ -16,25 +16,14 @@ 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: -$ cd tests -$ cmake . -DCMAKE_BUILD_TYPE=Release -$ sed -i s/\/MD/\/MT/ CMakeCache.txt -$ cmake . -$ nmake -f Makefile +> cd tests +> cmake . -DCMAKE_BUILD_TYPE=Release +> sed -i s/\/MD/\/MT/ CMakeCache.txt +> cmake . +> nmake -f Makefile B) Running tests -Easy version: -$ make test - -Windows: -$ nmake -f Makefile test - -Headless servers (no X11): -$ Xvnc :5 -screen 0 800x600x24 & -$ DISPLAY=:5 make test - -Partial or extended test runs: $ 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. @@ -44,8 +33,7 @@ $ ctest -C <configs> Adds extended tests belonging to configs. Examples - test all examples All - test everything - -Adding a new regression test: +Adding a new regression test: ------------------------------ 1) create a test file at an appropriate location under testdata/ @@ -59,20 +47,52 @@ Adding a new regression test: 7) run the test normally and verify that it passes: $ ctest -R mytest -Troubleshooting a failed test: +Troubleshooting: ------------------------------ -You can run a single test by passing the test name to ctest: - $ ctest -R throwntogethertest_sphere +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 + environment variables, just like for the main qmake & openscad.pro. Examples: -You can run a series of tests by passing part of a name to ctest: - $ ctest -R cgalpng # runs all cgalpng tests - $ ctest -R sphere # runs all sphere tests - + OPENCSGDIR=~/OpenCSG-1.3.2 EIGEN2DIR=~/eigen2 cmake . + + Valid variables are as follows (see CMakeLists.txt for more info): + + BOOSTDIR, CGALDIR, EIGEN2DIR, GLEWDIR, OPENCSGDIR, OPENSCAD_LIBRARIES + +2. Logs + Logs of test runs are found in tests/build/Testing/Temporary +Pretty-printed index.html is in a subdir of tests/build/Testing/Temporary Expected results are found in tests/regression/* Actual results are found in tests/build/testname-output/* -You can also compile a single test program: +3. Cross-compiling + +Cross-compiling of tests has not been automated nor tested + +4. Image-based tests takes a long time, they fail, and it says 'return -11' + +Imagemagick may have crashed. You can try using the alternate IM comparator +based on Normalized Cross Correlation. Pass -DCOMPARATOR=ncc to cmake + +5. Testing images fails with 'morphology' not found for ImageMagick + +Your version of imagemagick is old. Upgrade, or pass -DCOMPARATOR=old to +cmake. The comparison will be of lowered reliability. + +6. Unexplained or bizarre errors. + +This can happen on dynamic-library systems (linux) where you try to use +your own version of a library while the system still has another version +under the system paths. You can diagnose this by looking at your cmake +log as well as your sysinfo.txt file, as well as running 'ldd' against +your binaries, to make sure that the proper versions of libraries are +getting compiled and linked with the test binaries. - $ make cgalpngtest |