summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/testing.txt59
-rw-r--r--examples/example007.scad25
-rw-r--r--examples/example008.scad20
-rw-r--r--examples/example009.scad22
-rw-r--r--examples/example013.scad12
-rw-r--r--src/CGALEvaluator.cc11
-rw-r--r--src/CGAL_Nef_polyhedron.cc23
-rw-r--r--src/CGAL_Nef_polyhedron.h4
-rw-r--r--src/cgalutils.cc4
-rw-r--r--testdata/scad/features/difference-tests.scad4
-rw-r--r--tests/CMakeLists.txt197
-rw-r--r--tests/EnforceConfig.cmake4
-rw-r--r--tests/OffscreenContext.mm24
-rw-r--r--tests/cgalpngtest.cc32
-rw-r--r--tests/regression/cgalpngtest/example001-expected.pngbin0 -> 15695 bytes
-rw-r--r--tests/regression/cgalpngtest/example002-expected.pngbin0 -> 10255 bytes
-rw-r--r--tests/regression/cgalpngtest/example003-expected.pngbin0 -> 8383 bytes
-rw-r--r--tests/regression/cgalpngtest/example004-expected.pngbin0 -> 14128 bytes
-rw-r--r--tests/regression/cgalpngtest/example005-expected.pngbin0 -> 13310 bytes
-rw-r--r--tests/regression/cgalpngtest/example006-expected.pngbin0 -> 21655 bytes
-rw-r--r--tests/regression/cgalpngtest/example007-expected.pngbin0 -> 10069 bytes
-rw-r--r--tests/regression/cgalpngtest/example008-expected.pngbin0 -> 9144 bytes
-rw-r--r--tests/regression/cgalpngtest/example009-expected.pngbin0 -> 14597 bytes
-rw-r--r--tests/regression/cgalpngtest/example010-expected.pngbin0 -> 36785 bytes
-rw-r--r--tests/regression/cgalpngtest/example011-expected.pngbin0 -> 6953 bytes
-rw-r--r--tests/regression/cgalpngtest/example012-expected.pngbin0 -> 12621 bytes
-rw-r--r--tests/regression/cgalpngtest/example013-expected.pngbin0 -> 11752 bytes
-rw-r--r--tests/regression/cgalpngtest/example014-expected.pngbin0 -> 7552 bytes
-rw-r--r--tests/regression/cgalpngtest/example015-expected.pngbin0 -> 9510 bytes
-rw-r--r--tests/regression/cgalpngtest/example016-expected.pngbin0 -> 10299 bytes
-rw-r--r--tests/regression/cgalpngtest/example017-expected.pngbin0 -> 10590 bytes
-rw-r--r--tests/regression/cgalpngtest/example018-expected.pngbin0 -> 17775 bytes
-rw-r--r--tests/regression/cgalpngtest/example019-expected.pngbin0 -> 13145 bytes
-rw-r--r--tests/regression/cgalpngtest/example020-expected.pngbin0 -> 36415 bytes
-rw-r--r--tests/regression/cgalpngtest/example021-expected.pngbin0 -> 11370 bytes
-rw-r--r--tests/regression/cgalpngtest/example022-expected.pngbin0 -> 10199 bytes
-rw-r--r--tests/regression/dumptest/difference-tests-expected.txt4
-rw-r--r--tests/regression/dumptest/example009-expected.txt16
-rw-r--r--tests/regression/dumptest/example013-expected.txt12
-rw-r--r--tests/regression/opencsgtest/difference-tests-expected.pngbin12383 -> 11223 bytes
-rw-r--r--tests/regression/opencsgtest/example001-expected.pngbin0 -> 15479 bytes
-rw-r--r--tests/regression/opencsgtest/example002-expected.pngbin0 -> 8749 bytes
-rw-r--r--tests/regression/opencsgtest/example003-expected.pngbin0 -> 9050 bytes
-rw-r--r--tests/regression/opencsgtest/example004-expected.pngbin0 -> 15010 bytes
-rw-r--r--tests/regression/opencsgtest/example005-expected.pngbin0 -> 14155 bytes
-rw-r--r--tests/regression/opencsgtest/example006-expected.pngbin0 -> 22853 bytes
-rw-r--r--tests/regression/opencsgtest/example007-expected.pngbin0 -> 10266 bytes
-rw-r--r--tests/regression/opencsgtest/example008-expected.pngbin0 -> 9528 bytes
-rw-r--r--tests/regression/opencsgtest/example009-expected.pngbin0 -> 31007 bytes
-rw-r--r--tests/regression/opencsgtest/example010-expected.pngbin0 -> 33501 bytes
-rw-r--r--tests/regression/opencsgtest/example011-expected.pngbin0 -> 7263 bytes
-rw-r--r--tests/regression/opencsgtest/example012-expected.pngbin0 -> 12906 bytes
-rw-r--r--tests/regression/opencsgtest/example013-expected.pngbin0 -> 10064 bytes
-rw-r--r--tests/regression/opencsgtest/example014-expected.pngbin0 -> 5880 bytes
-rw-r--r--tests/regression/opencsgtest/example015-expected.pngbin0 -> 8632 bytes
-rw-r--r--tests/regression/opencsgtest/example016-expected.pngbin0 -> 10775 bytes
-rw-r--r--tests/regression/opencsgtest/example017-expected.pngbin0 -> 15637 bytes
-rw-r--r--tests/regression/opencsgtest/example018-expected.pngbin0 -> 19108 bytes
-rw-r--r--tests/regression/opencsgtest/example019-expected.pngbin0 -> 14071 bytes
-rw-r--r--tests/regression/opencsgtest/example020-expected.pngbin0 -> 39555 bytes
-rw-r--r--tests/regression/opencsgtest/example021-expected.pngbin0 -> 20930 bytes
-rw-r--r--tests/regression/opencsgtest/example022-expected.pngbin0 -> 10563 bytes
-rw-r--r--tests/regression/throwntogethertest/difference-tests-expected.pngbin7812 -> 11600 bytes
-rw-r--r--tests/regression/throwntogethertest/example001-expected.pngbin0 -> 16050 bytes
-rw-r--r--tests/regression/throwntogethertest/example002-expected.pngbin0 -> 10095 bytes
-rw-r--r--tests/regression/throwntogethertest/example003-expected.pngbin0 -> 9498 bytes
-rw-r--r--tests/regression/throwntogethertest/example004-expected.pngbin0 -> 17217 bytes
-rw-r--r--tests/regression/throwntogethertest/example005-expected.pngbin0 -> 14161 bytes
-rw-r--r--tests/regression/throwntogethertest/example006-expected.pngbin0 -> 22997 bytes
-rw-r--r--tests/regression/throwntogethertest/example007-expected.pngbin0 -> 6963 bytes
-rw-r--r--tests/regression/throwntogethertest/example008-expected.pngbin0 -> 8557 bytes
-rw-r--r--tests/regression/throwntogethertest/example009-expected.pngbin0 -> 34601 bytes
-rw-r--r--tests/regression/throwntogethertest/example010-expected.pngbin0 -> 35378 bytes
-rw-r--r--tests/regression/throwntogethertest/example011-expected.pngbin0 -> 7263 bytes
-rw-r--r--tests/regression/throwntogethertest/example012-expected.pngbin0 -> 12503 bytes
-rw-r--r--tests/regression/throwntogethertest/example013-expected.pngbin0 -> 11618 bytes
-rw-r--r--tests/regression/throwntogethertest/example014-expected.pngbin0 -> 9140 bytes
-rw-r--r--tests/regression/throwntogethertest/example015-expected.pngbin0 -> 8826 bytes
-rw-r--r--tests/regression/throwntogethertest/example016-expected.pngbin0 -> 10904 bytes
-rw-r--r--tests/regression/throwntogethertest/example017-expected.pngbin0 -> 15637 bytes
-rw-r--r--tests/regression/throwntogethertest/example018-expected.pngbin0 -> 19108 bytes
-rw-r--r--tests/regression/throwntogethertest/example019-expected.pngbin0 -> 14071 bytes
-rw-r--r--tests/regression/throwntogethertest/example020-expected.pngbin0 -> 39134 bytes
-rw-r--r--tests/regression/throwntogethertest/example021-expected.pngbin0 -> 27112 bytes
-rw-r--r--tests/regression/throwntogethertest/example022-expected.pngbin0 -> 10563 bytes
-rw-r--r--tests/system-gl.h2
86 files changed, 301 insertions, 174 deletions
diff --git a/doc/testing.txt b/doc/testing.txt
index f90aca8..61f6d75 100644
--- a/doc/testing.txt
+++ b/doc/testing.txt
@@ -1,34 +1,48 @@
Running regression tests:
-------------------------
-Prerequisites: cmake, python
+Prerequisites: cmake, python, OpenCSG with FBO patch from ../patches applied
-cd tests
-mkdir build
-cd build
-cmake ..
-make
-make test
+A) Building test environment
-Running on Windows:
+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:
-cd tests
-mkdir build
-cd build
-cmake .. -DCMAKE_BUILD_TYPE=Release
-sed -i s/\/MD/\/MT/ CMakeCache.txt
-cmake ..
-nmake -f Makefile
-nmake -f Makefile test
+$ 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
-Running on headless (no X) unix servers:
+Windows:
+$ nmake -f Makefile test
-Xvnc :5 -screen 0 800x600x24 &
-DISPLAY=:5 make test
+Headless unix servers (no X11):
+$ Xvfb :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.
+ Valid configs:
+ Default - Run default tests
+ Heavy - Run more time consuming tests (> ~10 seconds)
+ Examples - test all examples
+ All - test everything
Adding a new regression test:
------------------------------
@@ -47,13 +61,6 @@ Adding a new regression test:
Troubleshooting a failed test:
------------------------------
-You can run a single test by passing the test name to ctest:
- $ ctest -R throwntogethertest_sphere
-
-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
-
Logs of test runs are found in tests/build/Testing/Temporary
Expected results are found in tests/regression/*
Actual results are found in tests/build/testname-output/*
diff --git a/examples/example007.scad b/examples/example007.scad
index fe69f84..6a57a3b 100644
--- a/examples/example007.scad
+++ b/examples/example007.scad
@@ -5,30 +5,27 @@ module cutout()
{
rotate(90, [1, 0, 0])
translate([0, 0, -50])
- dxf_linear_extrude(
- file = "example007.dxf",
- layer = "cutout1",
- height = 100,
- convexity = 1);
+ linear_extrude(height = 100, convexity = 1)
+ import(file = "example007.dxf", layer = "cutout1");
rotate(90, [0, 0, 1])
rotate(90, [1, 0, 0])
translate([0, 0, -50])
- dxf_linear_extrude(
- file = "example007.dxf",
- layer = "cutout2",
- height = 100,
- convexity = 2);
+ linear_extrude(height = 100, convexity = 2)
+ import(file = "example007.dxf", layer = "cutout2");
}
}
module clip()
{
difference() {
- dxf_rotate_extrude(
- file = "example007.dxf",
- layer="dorn",
- convexity = 3);
+ // NB! We have to use the deprecated module here since the "dorn"
+ // layer contains an open polyline, which is not yet supported
+ // by the import() module.
+ rotate_extrude(
+ file = "example007.dxf",
+ layer="dorn",
+ convexity = 3);
for (r = [0, 90])
rotate(r, [0, 0, 1])
cutout();
diff --git a/examples/example008.scad b/examples/example008.scad
index e1b0ac4..a12ef96 100644
--- a/examples/example008.scad
+++ b/examples/example008.scad
@@ -4,29 +4,29 @@ difference()
intersection()
{
translate([ -25, -25, -25])
- dxf_linear_extrude(file = "example008.dxf",
- layer = "G", height = 50, convexity = 3);
+ linear_extrude(height = 50, convexity = 3)
+ import(file = "example008.dxf", layer = "G");
rotate(90, [1, 0, 0])
translate([ -25, -125, -25])
- dxf_linear_extrude(file = "example008.dxf",
- layer = "E", height = 50, convexity = 3);
+ linear_extrude(height = 50, convexity = 3)
+ import(file = "example008.dxf", layer = "E");
rotate(90, [0, 1, 0])
translate([ -125, -125, -25])
- dxf_linear_extrude(file = "example008.dxf",
- layer = "B", height = 50, convexity = 3);
+ linear_extrude(height = 50, convexity = 3)
+ import(file = "example008.dxf", layer = "B");
}
intersection()
{
translate([ -125, -25, -25])
- dxf_linear_extrude(file = "example008.dxf",
- layer = "X", height = 50, convexity = 1);
+ linear_extrude(height = 50, convexity = 1)
+ import(file = "example008.dxf", layer = "X");
rotate(90, [0, 1, 0])
translate([ -125, -25, -25])
- dxf_linear_extrude(file = "example008.dxf",
- layer = "X", height = 50, convexity = 1);
+ linear_extrude(height = 50, convexity = 1)
+ import(file = "example008.dxf", layer = "X");
}
} \ No newline at end of file
diff --git a/examples/example009.scad b/examples/example009.scad
index 5f39f00..017ecc3 100644
--- a/examples/example009.scad
+++ b/examples/example009.scad
@@ -2,27 +2,29 @@
bodywidth = dxf_dim(file = "example009.dxf", name = "bodywidth");
fanwidth = dxf_dim(file = "example009.dxf", name = "fanwidth");
platewidth = dxf_dim(file = "example009.dxf", name = "platewidth");
-fan_side_center = dxf_cross(file = "example009.dxf",
- layer = "fan_side_center");
+fan_side_center = dxf_cross(file = "example009.dxf", layer = "fan_side_center");
fanrot = dxf_dim(file = "example009.dxf", name = "fanrot");
-% dxf_linear_extrude(file = "example009.dxf", layer = "body",
- height = bodywidth, center = true, convexity = 10);
+% linear_extrude(height = bodywidth, center = true, convexity = 10)
+ import(file = "example009.dxf", layer = "body");
% for (z = [+(bodywidth/2 + platewidth/2),
-(bodywidth/2 + platewidth/2)])
{
translate([0, 0, z])
- dxf_linear_extrude(file = "example009.dxf", layer = "plate",
- height = platewidth, center = true, convexity = 10);
+ linear_extrude(height = platewidth, center = true, convexity = 10)
+ import(file = "example009.dxf", layer = "plate");
}
intersection()
{
- dxf_linear_extrude(file = "example009.dxf", layer = "fan_top",
- height = fanwidth, center = true, convexity = 10,
- twist = -fanrot);
- dxf_rotate_extrude(file = "example009.dxf", layer = "fan_side",
+ linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot)
+ import(file = "example009.dxf", layer = "fan_top");
+
+ // NB! We have to use the deprecated module here since the "fan_side"
+ // layer contains an open polyline, which is not yet supported
+ // by the import() module.
+ rotate_extrude(file = "example009.dxf", layer = "fan_side",
origin = fan_side_center, convexity = 10);
}
diff --git a/examples/example013.scad b/examples/example013.scad
index 18f1f04..c17422f 100644
--- a/examples/example013.scad
+++ b/examples/example013.scad
@@ -1,12 +1,12 @@
intersection()
{
- dxf_linear_extrude(file = "example013.dxf",
- height = 100, center = true, convexity= 3);
+ linear_extrude(height = 100, center = true, convexity= 3)
+ import(file = "example013.dxf");
rotate([0, 90, 0])
- dxf_linear_extrude(file = "example013.dxf",
- height = 100, center = true, convexity= 3);
+ linear_extrude(height = 100, center = true, convexity= 3)
+ import(file = "example013.dxf");
rotate([90, 0, 0])
- dxf_linear_extrude(file = "example013.dxf",
- height = 100, center = true, convexity= 3);
+ linear_extrude(height = 100, center = true, convexity= 3)
+ import(file = "example013.dxf");
} \ No newline at end of file
diff --git a/src/CGALEvaluator.cc b/src/CGALEvaluator.cc
index 7921b85..78b9c78 100644
--- a/src/CGALEvaluator.cc
+++ b/src/CGALEvaluator.cc
@@ -598,19 +598,20 @@ CGAL_Nef_polyhedron CGALEvaluator::evaluateCGALMesh(const PolySet &ps)
}
else // not (this->is2d)
{
+ CGAL_Nef_polyhedron3 *N = NULL;
CGAL::Failure_behaviour old_behaviour = CGAL::set_error_behaviour(CGAL::THROW_EXCEPTION);
try {
+ // FIXME: Are we leaking memory for the CGAL_Polyhedron object?
CGAL_Polyhedron *P = createPolyhedronFromPolySet(ps);
if (P) {
- CGAL_Nef_polyhedron3 *N = new CGAL_Nef_polyhedron3(*P);
- return CGAL_Nef_polyhedron(N);
+ N = new CGAL_Nef_polyhedron3(*P);
}
}
catch (CGAL::Assertion_exception e) {
- PRINTF("CGAL error in CGA_Nef_polyhedron3(): %s", e.what());
- CGAL::set_error_behaviour(old_behaviour);
- return CGAL_Nef_polyhedron();
+ PRINTF("CGAL error in CGAL_Nef_polyhedron3(): %s", e.what());
}
+ CGAL::set_error_behaviour(old_behaviour);
+ return CGAL_Nef_polyhedron(N);
}
return CGAL_Nef_polyhedron();
}
diff --git a/src/CGAL_Nef_polyhedron.cc b/src/CGAL_Nef_polyhedron.cc
index 2538b64..61ca2f8 100644
--- a/src/CGAL_Nef_polyhedron.cc
+++ b/src/CGAL_Nef_polyhedron.cc
@@ -7,6 +7,29 @@
#include "dxftess.h"
#include <CGAL/minkowski_sum_3.h>
+CGAL_Nef_polyhedron::CGAL_Nef_polyhedron(CGAL_Nef_polyhedron2 *p)
+{
+ if (p) {
+ dim = 2;
+ p2.reset(p);
+ }
+ else {
+ dim = 0;
+ }
+}
+
+CGAL_Nef_polyhedron::CGAL_Nef_polyhedron(CGAL_Nef_polyhedron3 *p)
+{
+ if (p) {
+ dim = 3;
+ p3.reset(p);
+ }
+ else {
+ dim = 0;
+ }
+}
+
+
CGAL_Nef_polyhedron& CGAL_Nef_polyhedron::operator+=(const CGAL_Nef_polyhedron &other)
{
if (this->dim == 2) (*this->p2) += (*other.p2);
diff --git a/src/CGAL_Nef_polyhedron.h b/src/CGAL_Nef_polyhedron.h
index fda4bc5..f93905f 100644
--- a/src/CGAL_Nef_polyhedron.h
+++ b/src/CGAL_Nef_polyhedron.h
@@ -8,8 +8,8 @@ class CGAL_Nef_polyhedron
{
public:
CGAL_Nef_polyhedron() : dim(0) {}
- CGAL_Nef_polyhedron(CGAL_Nef_polyhedron2 *p) : dim(2), p2(p) {}
- CGAL_Nef_polyhedron(CGAL_Nef_polyhedron3 *p) : dim(3), p3(p) {}
+ CGAL_Nef_polyhedron(CGAL_Nef_polyhedron2 *p);
+ CGAL_Nef_polyhedron(CGAL_Nef_polyhedron3 *p);
~CGAL_Nef_polyhedron() {}
bool empty() const { return (dim == 0 || (!p2 && !p3)); }
diff --git a/src/cgalutils.cc b/src/cgalutils.cc
index e77f5dd..1de7ab4 100644
--- a/src/cgalutils.cc
+++ b/src/cgalutils.cc
@@ -140,8 +140,10 @@ CGAL_Polyhedron *createPolyhedronFromPolySet(const PolySet &ps)
}
catch (CGAL::Assertion_exception e) {
PRINTF("CGAL error in CGAL_Build_PolySet: %s", e.what());
- CGAL::set_error_behaviour(old_behaviour);
+ delete P;
+ P = NULL;
}
+ CGAL::set_error_behaviour(old_behaviour);
return P;
}
diff --git a/testdata/scad/features/difference-tests.scad b/testdata/scad/features/difference-tests.scad
index 4d82676..3bcd9e5 100644
--- a/testdata/scad/features/difference-tests.scad
+++ b/testdata/scad/features/difference-tests.scad
@@ -10,7 +10,7 @@ difference() {
translate([12,0,0]) difference() {
cube([10,10,10], center=true);
- cylinder(r=4, h=10, center=true);
+ cylinder(r=4, h=10.5, center=true);
}
translate([0,12,0]) difference() {
@@ -21,7 +21,7 @@ translate([0,12,0]) difference() {
translate([12,12,0]) difference() {
cube([10,10,10], center=true);
- translate([0,0,7]) cylinder(r=4, h=4, center=true);
+ translate([0,0,7.01]) cylinder(r=4, h=4, center=true);
}
translate([24,0,0]) difference() {
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5605f6a..ac021e5 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -360,18 +360,99 @@ set_target_properties(throwntogethertest PROPERTIES COMPILE_FLAGS "-DENABLE_OPEN
target_link_libraries(throwntogethertest tests-offscreen tests-cgal ${CGAL_LIBRARY} ${CGAL_3RD_PARTY_LIBRARIES} ${QT_LIBRARIES} ${OPENCSG_LIBRARY} ${GLEW_LIBRARY} ${COCOA_LIBRARY} ${OPENGL_LIBRARY} ${Boost_LIBRARIES})
#
+# Tags tests as disabled. This is more convenient than removing them manually
+# from the lists of filenames
+#
+macro(disable_tests)
+ foreach (TESTNAME ${ARGN})
+# message("Disabling ${TESTNAME}")
+ list(APPEND DISABLED_TESTS ${TESTNAME})
+ endforeach()
+endmacro()
+
+#
+# Tags the given tests as belonging to the given CONFIG, i.e. will
+# only be executed when run using ctest -C <CONFIG>
+#
+# Usage example: set_test_config(Heavy dumptest_testname opencsgtest_testname2)
+#
+function(set_test_config CONFIG)
+ list(APPEND ${CONFIG}_TEST_CONFIG ${ARGN})
+ list(FIND TEST_CONFIGS ${CONFIG} FOUND)
+ if (FOUND EQUAL -1)
+ list(APPEND TEST_CONFIGS ${CONFIG})
+ # Export to parent scope
+ set(TEST_CONFIGS ${TEST_CONFIGS} PARENT_SCOPE)
+ endif()
+ # Export to parent scope
+ set(${CONFIG}_TEST_CONFIG ${${CONFIG}_TEST_CONFIG} PARENT_SCOPE)
+endfunction()
+
+#
+# Returns a list of test configs
+#
+function(get_test_config TESTNAME CONFIGS)
+ foreach(CONFIG ${TEST_CONFIGS})
+ list(FIND ${CONFIG}_TEST_CONFIG ${TESTNAME} IDX)
+ if (${IDX} GREATER -1)
+ list(APPEND ${CONFIGS} ${CONFIG})
+ endif()
+ endforeach()
+ if (${CONFIGS})
+ # Convert to a format understood by add_test()
+ string(REPLACE ";" "|" ${${CONFIGS}} ${CONFIGS})
+ # Export to parent scope
+ set(${CONFIGS} ${${CONFIGS}} PARENT_SCOPE)
+ endif()
+endfunction()
+
+#
+# Returns into the FULLNAME variable the global full test name (identifier)
+# given a test command and source filename
+#
+function(get_test_fullname TESTCMD FILENAME FULLNAME)
+ get_filename_component(TESTCMD_NAME ${TESTCMD} NAME_WE)
+ get_filename_component(TESTNAME ${FILENAME} NAME_WE)
+ string(REPLACE " " "_" TESTNAME ${TESTNAME}) # Test names cannot include spaces
+ set(${FULLNAME} ${TESTCMD_NAME}_${TESTNAME})
+ # Export to parent scope
+ set(${FULLNAME} ${${FULLNAME}} PARENT_SCOPE)
+endfunction()
+
+#
# This functions adds cmd-line tests given files.
# Files are sent as the parameters following TESTSUFFIX
#
+# Usage add_cmdline_test(TESTCMD TESTSUFFIX <test files>)
+#
find_package(PythonInterp)
-function(add_cmdline_test TESTCMD TESTSUFFIX)
+macro(add_cmdline_test TESTCMD TESTSUFFIX)
get_filename_component(TESTCMD_NAME ${TESTCMD} NAME_WE)
+
+ # Add tests from args
foreach (SCADFILE ${ARGN})
get_filename_component(TESTNAME ${SCADFILE} NAME_WE)
string(REPLACE " " "_" TESTNAME ${TESTNAME}) # Test names cannot include spaces
- add_test("${TESTCMD_NAME}_${TESTNAME}" ${PYTHON_EXECUTABLE} ${tests_SOURCE_DIR}/test_cmdline_tool.py -c ${ImageMagick_convert_EXECUTABLE} -s ${TESTSUFFIX} ${CMAKE_BINARY_DIR}/${TESTCMD} "${SCADFILE}" )
+ set(TEST_FULLNAME "${TESTCMD_NAME}_${TESTNAME}")
+ list(FIND DISABLED_TESTS ${TEST_FULLNAME} DISABLED)
+ if (${DISABLED} EQUAL -1)
+
+ # Handle configurations
+ unset(FOUNDCONFIGS)
+ get_test_config(${TEST_FULLNAME} FOUNDCONFIGS)
+ if (NOT FOUNDCONFIGS)
+ set_test_config(Default ${TEST_FULLNAME})
+ endif()
+ set_test_config(All ${TEST_FULLNAME})
+ unset(FOUNDCONFIGS)
+ get_test_config(${TEST_FULLNAME} FOUNDCONFIGS)
+ set(CONFARG CONFIGURATIONS)
+ set(CONFVAL ${FOUNDCONFIGS})
+
+ add_test(NAME ${TEST_FULLNAME} ${CONFARG} ${CONFVAL} COMMAND ${PYTHON_EXECUTABLE} ${tests_SOURCE_DIR}/test_cmdline_tool.py -c ${ImageMagick_convert_EXECUTABLE} -s ${TESTSUFFIX} ${CMAKE_BINARY_DIR}/${TESTCMD} "${SCADFILE}")
+ endif()
endforeach()
-endfunction()
+endmacro()
enable_testing()
@@ -393,9 +474,12 @@ foreach(FILE test_pretty_print.py)
${CMAKE_CURRENT_BINARY_DIR}/${FILE} COPYONLY)
endforeach()
+set_directory_properties(PROPERTIES TEST_INCLUDE_FILE "${CMAKE_SOURCE_DIR}/EnforceConfig.cmake")
+
# Find all scad files
file(GLOB MINIMAL_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/*.scad)
file(GLOB FEATURES_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/*.scad)
+# Remove included files not to be used as tests
list(REMOVE_ITEM FEATURES_FILES
${CMAKE_SOURCE_DIR}/../testdata/scad/features/include\ test6.scad
${CMAKE_SOURCE_DIR}/../testdata/scad/features/include-test5.scad)
@@ -404,22 +488,6 @@ file(GLOB SCAD_DXF_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/dxf/*.scad)
file(GLOB FUNCTION_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/functions/*.scad)
file(GLOB EXAMPLE_FILES ${CMAKE_SOURCE_DIR}/../examples/*.scad)
-list(APPEND DUMPTEST_FILES ${MINIMAL_FILES} ${FEATURES_FILES} ${EXAMPLE_FILES})
-list(APPEND DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/escape-test.scad)
-# Disable tests which are known to cause floating point comparison issues
-# Once we're capable of comparing these across platforms, we can put these back in
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/transform-tests.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/render-tests.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example001.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example005.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example006.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example007.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example008.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example012.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example016.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example020.scad)
-list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example021.scad)
-
list(APPEND ECHO_FILES ${FUNCTION_FILES}
${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/echo.scad
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/echo-tests.scad
@@ -430,42 +498,75 @@ list(APPEND ECHO_FILES ${FUNCTION_FILES}
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/string-test.scad
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/string-indexing.scad)
-# Add echotest tests to CTest
-add_cmdline_test(echotest txt ${ECHO_FILES})
-# Add dumptest tests to CTest
-add_cmdline_test(dumptest txt ${DUMPTEST_FILES})
-# Add csgtexttest tests to CTest
-add_cmdline_test(csgtexttest txt ${MINIMAL_FILES})
-# Add csgtermtest tests to CTest
-add_cmdline_test(csgtermtest txt ${MINIMAL_FILES})
-
-# Add cgaltest tests to CTest
-add_cmdline_test(cgaltest stl ${CGALTEST_FILES})
+list(APPEND DUMPTEST_FILES ${MINIMAL_FILES} ${FEATURES_FILES} ${EXAMPLE_FILES})
+list(APPEND DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/escape-test.scad)
-# Add cgalpngtest tests to CTest
-list(APPEND CGALPNGTEST_FILES ${FEATURES_FILES})
-list(APPEND CGALPNGTEST_FILES ${SCAD_DXF_FILES})
+list(APPEND CGALPNGTEST_FILES ${FEATURES_FILES} ${SCAD_DXF_FILES} ${EXAMPLE_FILES})
list(APPEND OPENCSGTEST_FILES ${CGALPNGTEST_FILES})
+list(APPEND THROWNTOGETHERTEST_FILES ${CGALPNGTEST_FILES})
-list(REMOVE_ITEM CGALPNGTEST_FILES
- ${CMAKE_SOURCE_DIR}/../testdata/scad/features/child-background.scad
- ${CMAKE_SOURCE_DIR}/../testdata/scad/features/highlight-and-background-modifier.scad
- ${CMAKE_SOURCE_DIR}/../testdata/scad/features/testcolornames.scad)
-
-add_cmdline_test(cgalpngtest png ${CGALPNGTEST_FILES})
-
-# Add opencsg tests to CTest
+# Disable tests which are known to cause floating point comparison issues
+# Once we're capable of comparing these across platforms, we can put these back in
+disable_tests(dumptest_transform-tests
+ dumptest_render-tests
+ dumptest_example001
+ dumptest_example005
+ dumptest_example006
+ dumptest_example007
+ dumptest_example008
+ dumptest_example012
+ dumptest_example016
+ dumptest_example020
+ dumptest_example021)
# FIXME: This test illustrates a weakness in child() combined with modifiers.
# Reenable it when this is improved
-list(REMOVE_ITEM OPENCSGTEST_FILES
- ${CMAKE_SOURCE_DIR}/../testdata/scad/features/child-background.scad)
+disable_tests(opencsgtest_child-background)
+
+# These tests only makes sense in OpenCSG mode
+disable_tests(cgalpngtest_child-background
+ cgalpngtest_highlight-and-background-modifier
+ cgalpngtest_testcolornames
+ throwntogethertest_child-background
+ throwntogethertest_highlight-and-background-modifier
+ throwntogethertest_testcolornames)
+
+# Test config handling
+
+set_test_config(Heavy opencsgtest_minkowski3-tests
+ opencsgtest_projection-tests
+ throwntogethertest_minkowski3-tests
+ throwntogethertest_projection-tests
+ cgalpngtest_projection-tests
+ cgalpngtest_rotate_extrude-tests
+ cgalpngtest_surface-tests
+ cgalpngtest_sphere-tests
+ cgalpngtest_minkowski3-tests
+ cgalpngtest_for-tests
+ cgalpngtest_for-nested-tests
+ cgalpngtest_difference-tests
+ cgalpngtest_intersection-tests)
+
+foreach(FILE ${EXAMPLE_FILES})
+ get_test_fullname(cgalpngtest ${FILE} TEST_FULLNAME)
+ set_test_config(Examples ${TEST_FULLNAME})
+ get_test_fullname(opencsgtest ${FILE} TEST_FULLNAME)
+ set_test_config(Examples ${TEST_FULLNAME})
+ get_test_fullname(throwntogethertest ${FILE} TEST_FULLNAME)
+ set_test_config(Examples ${TEST_FULLNAME})
+endforeach()
-add_cmdline_test(opencsgtest png ${OPENCSGTEST_FILES})
+# Add tests
-# Add throwntogether tests to CTest
-list(APPEND THROWNTOGETHERTEST_FILES ${CGALPNGTEST_FILES})
+add_cmdline_test(echotest txt ${ECHO_FILES})
+add_cmdline_test(dumptest txt ${DUMPTEST_FILES})
+add_cmdline_test(csgtexttest txt ${MINIMAL_FILES})
+add_cmdline_test(csgtermtest txt ${MINIMAL_FILES})
+add_cmdline_test(cgalpngtest png ${CGALPNGTEST_FILES})
+add_cmdline_test(opencsgtest png ${OPENCSGTEST_FILES})
add_cmdline_test(throwntogethertest png ${THROWNTOGETHERTEST_FILES})
-# Add dxfexport tests to CTest
-add_cmdline_test(${CMAKE_SOURCE_DIR}/../test-code/exportdxf dxf ${SCAD_FILES})
+message("Available test configurations: ${TEST_CONFIGS}")
+#foreach(CONF ${TEST_CONFIGS})
+# message("${CONF}: ${${CONF}_TEST_CONFIG}")
+#endforeach()
diff --git a/tests/EnforceConfig.cmake b/tests/EnforceConfig.cmake
new file mode 100644
index 0000000..8e2ebf7
--- /dev/null
+++ b/tests/EnforceConfig.cmake
@@ -0,0 +1,4 @@
+message("Enforcing config")
+if(NOT CTEST_CONFIGURATION_TYPE)
+ set(CTEST_CONFIGURATION_TYPE Default)
+endif()
diff --git a/tests/OffscreenContext.mm b/tests/OffscreenContext.mm
index 5a6a8ec..eb06615 100644
--- a/tests/OffscreenContext.mm
+++ b/tests/OffscreenContext.mm
@@ -1,6 +1,7 @@
#include "OffscreenContext.h"
#include "imageutils.h"
#include "fbo.h"
+#include <iostream>
#import <AppKit/AppKit.h> // for NSOpenGL...
@@ -56,24 +57,13 @@ OffscreenContext *create_offscreen_context(int w, int h)
[ctx->openGLContext makeCurrentContext];
- glewInit();
-#ifdef DEBUG
- std::cout << "GLEW version " << glewGetString(GLEW_VERSION) << "\n";
- std::cout << (const char *)glGetString(GL_RENDERER) << "(" << (const char *)glGetString(GL_VENDOR) << ")\n"
- << "OpenGL version " << (const char *)glGetString(GL_VERSION) << "\n";
- std::cout << "Extensions: " << (const char *)glGetString(GL_EXTENSIONS) << "\n";
-
-
- if (GLEW_ARB_framebuffer_object) {
- std::cout << "ARB_FBO supported\n";
- }
- if (GLEW_EXT_framebuffer_object) {
- std::cout << "EXT_FBO supported\n";
- }
- if (GLEW_EXT_packed_depth_stencil) {
- std::cout << "EXT_packed_depth_stencil\n";
+ // glewInit must come after Context creation and before FBO calls.
+ GLenum err = glewInit();
+ if (GLEW_OK != err) {
+ std::cerr << "Unable to init GLEW: " << glewGetErrorString(err) << std::endl;
+ return NULL;
}
-#endif
+ glew_dump();
ctx->fbo = fbo_new();
if (!fbo_init(ctx->fbo, w, h)) {
diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc
index cc747fb..eabea86 100644
--- a/tests/cgalpngtest.cc
+++ b/tests/cgalpngtest.cc
@@ -54,6 +54,10 @@
#include <assert.h>
#include <sstream>
+#ifdef ENABLE_CGAL
+#include <CGAL/assertions_behaviour.h>
+#endif
+
std::string commandline_commands;
QString currentdir;
QString examplesdir;
@@ -99,6 +103,11 @@ int main(int argc, char **argv)
const char *filename = argv[1];
const char *outfile = argv[2];
+#ifdef ENABLE_CGAL
+ // Causes CGAL errors to abort directly instead of throwing exceptions
+ // (which we don't catch). This gives us stack traces without rerunning in gdb.
+ CGAL::set_error_behaviour(CGAL::ABORT);
+#endif
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
@@ -163,29 +172,6 @@ int main(int argc, char **argv)
exit(1);
}
- GLenum err = glewInit();
- if (GLEW_OK != err) {
- fprintf(stderr, "Unable to init GLEW: %s\n", glewGetErrorString(err));
- exit(1);
- }
-#ifdef DEBUG
- std::cout << "GLEW version " << glewGetString(GLEW_VERSION) << "\n";
- std::cout << (const char *)glGetString(GL_RENDERER) << "(" << (const char *)glGetString(GL_VENDOR) << ")\n"
- << "OpenGL version " << (const char *)glGetString(GL_VERSION) << "\n";
- std::cout << "Extensions: " << (const char *)glGetString(GL_EXTENSIONS) << "\n";
-
-
- if (GLEW_ARB_framebuffer_object) {
- std::cout << "ARB_FBO supported\n";
- }
- if (GLEW_EXT_framebuffer_object) {
- std::cout << "EXT_FBO supported\n";
- }
- if (GLEW_EXT_packed_depth_stencil) {
- std::cout << "EXT_packed_depth_stencil\n";
- }
-#endif
-
CGALRenderer cgalRenderer(N);
BoundingBox bbox;
diff --git a/tests/regression/cgalpngtest/example001-expected.png b/tests/regression/cgalpngtest/example001-expected.png
new file mode 100644
index 0000000..12b3dea
--- /dev/null
+++ b/tests/regression/cgalpngtest/example001-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example002-expected.png b/tests/regression/cgalpngtest/example002-expected.png
new file mode 100644
index 0000000..491477d
--- /dev/null
+++ b/tests/regression/cgalpngtest/example002-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example003-expected.png b/tests/regression/cgalpngtest/example003-expected.png
new file mode 100644
index 0000000..429b64b
--- /dev/null
+++ b/tests/regression/cgalpngtest/example003-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example004-expected.png b/tests/regression/cgalpngtest/example004-expected.png
new file mode 100644
index 0000000..b0a91fd
--- /dev/null
+++ b/tests/regression/cgalpngtest/example004-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example005-expected.png b/tests/regression/cgalpngtest/example005-expected.png
new file mode 100644
index 0000000..8727800
--- /dev/null
+++ b/tests/regression/cgalpngtest/example005-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example006-expected.png b/tests/regression/cgalpngtest/example006-expected.png
new file mode 100644
index 0000000..c2fd5c1
--- /dev/null
+++ b/tests/regression/cgalpngtest/example006-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example007-expected.png b/tests/regression/cgalpngtest/example007-expected.png
new file mode 100644
index 0000000..0ec829f
--- /dev/null
+++ b/tests/regression/cgalpngtest/example007-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example008-expected.png b/tests/regression/cgalpngtest/example008-expected.png
new file mode 100644
index 0000000..54cd35d
--- /dev/null
+++ b/tests/regression/cgalpngtest/example008-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example009-expected.png b/tests/regression/cgalpngtest/example009-expected.png
new file mode 100644
index 0000000..bbdc192
--- /dev/null
+++ b/tests/regression/cgalpngtest/example009-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example010-expected.png b/tests/regression/cgalpngtest/example010-expected.png
new file mode 100644
index 0000000..f611b12
--- /dev/null
+++ b/tests/regression/cgalpngtest/example010-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example011-expected.png b/tests/regression/cgalpngtest/example011-expected.png
new file mode 100644
index 0000000..88c8299
--- /dev/null
+++ b/tests/regression/cgalpngtest/example011-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example012-expected.png b/tests/regression/cgalpngtest/example012-expected.png
new file mode 100644
index 0000000..8065e9c
--- /dev/null
+++ b/tests/regression/cgalpngtest/example012-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example013-expected.png b/tests/regression/cgalpngtest/example013-expected.png
new file mode 100644
index 0000000..331fa17
--- /dev/null
+++ b/tests/regression/cgalpngtest/example013-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example014-expected.png b/tests/regression/cgalpngtest/example014-expected.png
new file mode 100644
index 0000000..73453a2
--- /dev/null
+++ b/tests/regression/cgalpngtest/example014-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example015-expected.png b/tests/regression/cgalpngtest/example015-expected.png
new file mode 100644
index 0000000..98d0e78
--- /dev/null
+++ b/tests/regression/cgalpngtest/example015-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example016-expected.png b/tests/regression/cgalpngtest/example016-expected.png
new file mode 100644
index 0000000..70bd10d
--- /dev/null
+++ b/tests/regression/cgalpngtest/example016-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example017-expected.png b/tests/regression/cgalpngtest/example017-expected.png
new file mode 100644
index 0000000..05f429b
--- /dev/null
+++ b/tests/regression/cgalpngtest/example017-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example018-expected.png b/tests/regression/cgalpngtest/example018-expected.png
new file mode 100644
index 0000000..5ea05af
--- /dev/null
+++ b/tests/regression/cgalpngtest/example018-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example019-expected.png b/tests/regression/cgalpngtest/example019-expected.png
new file mode 100644
index 0000000..42a356a
--- /dev/null
+++ b/tests/regression/cgalpngtest/example019-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example020-expected.png b/tests/regression/cgalpngtest/example020-expected.png
new file mode 100644
index 0000000..e6afb94
--- /dev/null
+++ b/tests/regression/cgalpngtest/example020-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example021-expected.png b/tests/regression/cgalpngtest/example021-expected.png
new file mode 100644
index 0000000..d657b0d
--- /dev/null
+++ b/tests/regression/cgalpngtest/example021-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/example022-expected.png b/tests/regression/cgalpngtest/example022-expected.png
new file mode 100644
index 0000000..b8b8fbd
--- /dev/null
+++ b/tests/regression/cgalpngtest/example022-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/difference-tests-expected.txt b/tests/regression/dumptest/difference-tests-expected.txt
index bbdf3ea..eee4616 100644
--- a/tests/regression/dumptest/difference-tests-expected.txt
+++ b/tests/regression/dumptest/difference-tests-expected.txt
@@ -7,7 +7,7 @@
multmatrix([[1, 0, 0, 12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
difference() {
cube(size = [10, 10, 10], center = true);
- cylinder($fn = 0, $fa = 12, $fs = 1, h = 10, r1 = 4, r2 = 4, center = true);
+ cylinder($fn = 0, $fa = 12, $fs = 1, h = 10.5, r1 = 4, r2 = 4, center = true);
}
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) {
@@ -22,7 +22,7 @@
multmatrix([[1, 0, 0, 12], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) {
difference() {
cube(size = [10, 10, 10], center = true);
- multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 7], [0, 0, 0, 1]]) {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 7.01], [0, 0, 0, 1]]) {
cylinder($fn = 0, $fa = 12, $fs = 1, h = 4, r1 = 4, r2 = 4, center = true);
}
}
diff --git a/tests/regression/dumptest/example009-expected.txt b/tests/regression/dumptest/example009-expected.txt
index 30c8bc3..df05fe2 100644
--- a/tests/regression/dumptest/example009-expected.txt
+++ b/tests/regression/dumptest/example009-expected.txt
@@ -1,14 +1,22 @@
- linear_extrude(file = "example009.dxf", layer = "body", origin = [0, 0], scale = 1, height = 22, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 22, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example009.dxf", layer = "body", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
group() {
multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 12], [0, 0, 0, 1]]) {
- linear_extrude(file = "example009.dxf", layer = "plate", origin = [0, 0], scale = 1, height = 2, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 2, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example009.dxf", layer = "plate", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -12], [0, 0, 0, 1]]) {
- linear_extrude(file = "example009.dxf", layer = "plate", origin = [0, 0], scale = 1, height = 2, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 2, center = true, convexity = 10, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example009.dxf", layer = "plate", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
}
}
intersection() {
- linear_extrude(file = "example009.dxf", layer = "fan_top", origin = [0, 0], scale = 1, height = 20, center = true, convexity = 10, twist = -57.5288, slices = 4, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 20, center = true, convexity = 10, twist = -57.5288, slices = 4, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example009.dxf", layer = "fan_top", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
rotate_extrude(file = "example009.dxf", layer = "fan_side", origin = [0, -40], scale = 1, convexity = 10, $fn = 0, $fa = 12, $fs = 1);
}
diff --git a/tests/regression/dumptest/example013-expected.txt b/tests/regression/dumptest/example013-expected.txt
index b1dcccb..f4d0aec 100644
--- a/tests/regression/dumptest/example013-expected.txt
+++ b/tests/regression/dumptest/example013-expected.txt
@@ -1,10 +1,16 @@
intersection() {
- linear_extrude(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
multmatrix([[2.22045e-16, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 2.22045e-16, 0], [0, 0, 0, 1]]) {
- linear_extrude(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
}
multmatrix([[1, 0, 0, 0], [0, 2.22045e-16, -1, 0], [0, 1, 2.22045e-16, 0], [0, 0, 0, 1]]) {
- linear_extrude(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1);
+ linear_extrude(height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 1) {
+ import(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);
+ }
}
}
diff --git a/tests/regression/opencsgtest/difference-tests-expected.png b/tests/regression/opencsgtest/difference-tests-expected.png
index d88d98b..794104a 100644
--- a/tests/regression/opencsgtest/difference-tests-expected.png
+++ b/tests/regression/opencsgtest/difference-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example001-expected.png b/tests/regression/opencsgtest/example001-expected.png
new file mode 100644
index 0000000..ff2da6b
--- /dev/null
+++ b/tests/regression/opencsgtest/example001-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example002-expected.png b/tests/regression/opencsgtest/example002-expected.png
new file mode 100644
index 0000000..554dc13
--- /dev/null
+++ b/tests/regression/opencsgtest/example002-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example003-expected.png b/tests/regression/opencsgtest/example003-expected.png
new file mode 100644
index 0000000..1faa4a6
--- /dev/null
+++ b/tests/regression/opencsgtest/example003-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example004-expected.png b/tests/regression/opencsgtest/example004-expected.png
new file mode 100644
index 0000000..beb549c
--- /dev/null
+++ b/tests/regression/opencsgtest/example004-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example005-expected.png b/tests/regression/opencsgtest/example005-expected.png
new file mode 100644
index 0000000..0bb2fef
--- /dev/null
+++ b/tests/regression/opencsgtest/example005-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example006-expected.png b/tests/regression/opencsgtest/example006-expected.png
new file mode 100644
index 0000000..ff0fe35
--- /dev/null
+++ b/tests/regression/opencsgtest/example006-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example007-expected.png b/tests/regression/opencsgtest/example007-expected.png
new file mode 100644
index 0000000..b212b12
--- /dev/null
+++ b/tests/regression/opencsgtest/example007-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example008-expected.png b/tests/regression/opencsgtest/example008-expected.png
new file mode 100644
index 0000000..0e4241f
--- /dev/null
+++ b/tests/regression/opencsgtest/example008-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example009-expected.png b/tests/regression/opencsgtest/example009-expected.png
new file mode 100644
index 0000000..541410d
--- /dev/null
+++ b/tests/regression/opencsgtest/example009-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example010-expected.png b/tests/regression/opencsgtest/example010-expected.png
new file mode 100644
index 0000000..3a4ba27
--- /dev/null
+++ b/tests/regression/opencsgtest/example010-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example011-expected.png b/tests/regression/opencsgtest/example011-expected.png
new file mode 100644
index 0000000..13164c3
--- /dev/null
+++ b/tests/regression/opencsgtest/example011-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example012-expected.png b/tests/regression/opencsgtest/example012-expected.png
new file mode 100644
index 0000000..c705bc7
--- /dev/null
+++ b/tests/regression/opencsgtest/example012-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example013-expected.png b/tests/regression/opencsgtest/example013-expected.png
new file mode 100644
index 0000000..5917382
--- /dev/null
+++ b/tests/regression/opencsgtest/example013-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example014-expected.png b/tests/regression/opencsgtest/example014-expected.png
new file mode 100644
index 0000000..7f39f61
--- /dev/null
+++ b/tests/regression/opencsgtest/example014-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example015-expected.png b/tests/regression/opencsgtest/example015-expected.png
new file mode 100644
index 0000000..1a1c869
--- /dev/null
+++ b/tests/regression/opencsgtest/example015-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example016-expected.png b/tests/regression/opencsgtest/example016-expected.png
new file mode 100644
index 0000000..1288ff6
--- /dev/null
+++ b/tests/regression/opencsgtest/example016-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example017-expected.png b/tests/regression/opencsgtest/example017-expected.png
new file mode 100644
index 0000000..b0b2f8a
--- /dev/null
+++ b/tests/regression/opencsgtest/example017-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example018-expected.png b/tests/regression/opencsgtest/example018-expected.png
new file mode 100644
index 0000000..033a136
--- /dev/null
+++ b/tests/regression/opencsgtest/example018-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example019-expected.png b/tests/regression/opencsgtest/example019-expected.png
new file mode 100644
index 0000000..306c0fb
--- /dev/null
+++ b/tests/regression/opencsgtest/example019-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example020-expected.png b/tests/regression/opencsgtest/example020-expected.png
new file mode 100644
index 0000000..4e8c3c4
--- /dev/null
+++ b/tests/regression/opencsgtest/example020-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example021-expected.png b/tests/regression/opencsgtest/example021-expected.png
new file mode 100644
index 0000000..675e57b
--- /dev/null
+++ b/tests/regression/opencsgtest/example021-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/example022-expected.png b/tests/regression/opencsgtest/example022-expected.png
new file mode 100644
index 0000000..66738e0
--- /dev/null
+++ b/tests/regression/opencsgtest/example022-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/difference-tests-expected.png b/tests/regression/throwntogethertest/difference-tests-expected.png
index 0b8070f..ee75bad 100644
--- a/tests/regression/throwntogethertest/difference-tests-expected.png
+++ b/tests/regression/throwntogethertest/difference-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example001-expected.png b/tests/regression/throwntogethertest/example001-expected.png
new file mode 100644
index 0000000..a0ea588
--- /dev/null
+++ b/tests/regression/throwntogethertest/example001-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example002-expected.png b/tests/regression/throwntogethertest/example002-expected.png
new file mode 100644
index 0000000..27e3c4e
--- /dev/null
+++ b/tests/regression/throwntogethertest/example002-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example003-expected.png b/tests/regression/throwntogethertest/example003-expected.png
new file mode 100644
index 0000000..f27d17c
--- /dev/null
+++ b/tests/regression/throwntogethertest/example003-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example004-expected.png b/tests/regression/throwntogethertest/example004-expected.png
new file mode 100644
index 0000000..0d2f1ba
--- /dev/null
+++ b/tests/regression/throwntogethertest/example004-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example005-expected.png b/tests/regression/throwntogethertest/example005-expected.png
new file mode 100644
index 0000000..4c401da
--- /dev/null
+++ b/tests/regression/throwntogethertest/example005-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example006-expected.png b/tests/regression/throwntogethertest/example006-expected.png
new file mode 100644
index 0000000..66441bf
--- /dev/null
+++ b/tests/regression/throwntogethertest/example006-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example007-expected.png b/tests/regression/throwntogethertest/example007-expected.png
new file mode 100644
index 0000000..ea17570
--- /dev/null
+++ b/tests/regression/throwntogethertest/example007-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example008-expected.png b/tests/regression/throwntogethertest/example008-expected.png
new file mode 100644
index 0000000..880844b
--- /dev/null
+++ b/tests/regression/throwntogethertest/example008-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example009-expected.png b/tests/regression/throwntogethertest/example009-expected.png
new file mode 100644
index 0000000..de8868a
--- /dev/null
+++ b/tests/regression/throwntogethertest/example009-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example010-expected.png b/tests/regression/throwntogethertest/example010-expected.png
new file mode 100644
index 0000000..37e6545
--- /dev/null
+++ b/tests/regression/throwntogethertest/example010-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example011-expected.png b/tests/regression/throwntogethertest/example011-expected.png
new file mode 100644
index 0000000..13164c3
--- /dev/null
+++ b/tests/regression/throwntogethertest/example011-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example012-expected.png b/tests/regression/throwntogethertest/example012-expected.png
new file mode 100644
index 0000000..360d6eb
--- /dev/null
+++ b/tests/regression/throwntogethertest/example012-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example013-expected.png b/tests/regression/throwntogethertest/example013-expected.png
new file mode 100644
index 0000000..d22b68f
--- /dev/null
+++ b/tests/regression/throwntogethertest/example013-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example014-expected.png b/tests/regression/throwntogethertest/example014-expected.png
new file mode 100644
index 0000000..562ce74
--- /dev/null
+++ b/tests/regression/throwntogethertest/example014-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example015-expected.png b/tests/regression/throwntogethertest/example015-expected.png
new file mode 100644
index 0000000..6e16e33
--- /dev/null
+++ b/tests/regression/throwntogethertest/example015-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example016-expected.png b/tests/regression/throwntogethertest/example016-expected.png
new file mode 100644
index 0000000..9bc4306
--- /dev/null
+++ b/tests/regression/throwntogethertest/example016-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example017-expected.png b/tests/regression/throwntogethertest/example017-expected.png
new file mode 100644
index 0000000..b0b2f8a
--- /dev/null
+++ b/tests/regression/throwntogethertest/example017-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example018-expected.png b/tests/regression/throwntogethertest/example018-expected.png
new file mode 100644
index 0000000..033a136
--- /dev/null
+++ b/tests/regression/throwntogethertest/example018-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example019-expected.png b/tests/regression/throwntogethertest/example019-expected.png
new file mode 100644
index 0000000..306c0fb
--- /dev/null
+++ b/tests/regression/throwntogethertest/example019-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example020-expected.png b/tests/regression/throwntogethertest/example020-expected.png
new file mode 100644
index 0000000..fa41d2f
--- /dev/null
+++ b/tests/regression/throwntogethertest/example020-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example021-expected.png b/tests/regression/throwntogethertest/example021-expected.png
new file mode 100644
index 0000000..1e1576c
--- /dev/null
+++ b/tests/regression/throwntogethertest/example021-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/example022-expected.png b/tests/regression/throwntogethertest/example022-expected.png
new file mode 100644
index 0000000..66738e0
--- /dev/null
+++ b/tests/regression/throwntogethertest/example022-expected.png
Binary files differ
diff --git a/tests/system-gl.h b/tests/system-gl.h
index 45d5130..4a8ccac 100644
--- a/tests/system-gl.h
+++ b/tests/system-gl.h
@@ -4,7 +4,7 @@
#include <GL/glew.h>
#include <string>
-std::string glew_dump(bool dumpall);
+std::string glew_dump(bool dumpall=false);
bool report_glerror(const char *task);
#endif
contact: Jan Huwald // Impressum