summaryrefslogtreecommitdiff
path: root/doc/testing.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/testing.txt')
-rw-r--r--doc/testing.txt76
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
contact: Jan Huwald // Impressum