summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2012-01-09 02:29:24 (GMT)
committerMarius Kintel <marius@kintel.net>2012-01-09 02:29:24 (GMT)
commit23f6b0623c86eba96dfb1296b862522cf02b0734 (patch)
tree998500ef16763f6f08f9f7cb8917c98b1643af68 /tests
parent52dfffd97ba49b603b4814d843cd9be08d040364 (diff)
parent5044ea928d72da800d11b2b80f6148265c13d10f (diff)
Merge branch 'master' into threading
Conflicts: RELEASE_NOTES
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt3
-rw-r--r--tests/CMingw-cross-env.cmake3
-rw-r--r--tests/cgalpngtest.cc43
-rw-r--r--tests/cgalstlsanitytest.cc39
-rw-r--r--tests/cgaltest.cc43
-rw-r--r--tests/csgtermtest.cc44
-rw-r--r--tests/csgtestcore.cc42
-rw-r--r--tests/csgtexttest.cc42
-rw-r--r--tests/dumptest.cc46
-rw-r--r--tests/echotest.cc42
-rw-r--r--tests/regression/cgalpngtest/import_stl-tests-expected.pngbin7857 -> 9164 bytes
-rw-r--r--tests/regression/dumptest/import_stl-tests-expected.txt6
-rw-r--r--tests/regression/echotest/builtin-tests-expected.txt2
-rw-r--r--tests/regression/echotest/dim-all-expected.txt12
-rw-r--r--tests/regression/echotest/inf-tests-expected.txt23
-rw-r--r--tests/regression/echotest/parser-tests-expected.txt2
-rw-r--r--tests/regression/opencsgtest/import_stl-tests-expected.pngbin7991 -> 9438 bytes
-rw-r--r--tests/regression/throwntogethertest/import_stl-tests-expected.pngbin7991 -> 9438 bytes
18 files changed, 140 insertions, 252 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index edab744..6a3b432 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -125,7 +125,7 @@ if (NOT $ENV{BOOSTDIR} STREQUAL "")
message(STATUS "BOOST_ROOT: " ${BOOST_ROOT})
endif()
-find_package( Boost 1.35.0 COMPONENTS thread program_options REQUIRED)
+find_package( Boost 1.35.0 COMPONENTS thread program_options filesystem system regex REQUIRED)
message(STATUS "Boost includes found: " ${Boost_INCLUDE_DIRS})
message(STATUS "Boost libraries found:")
foreach(boostlib ${Boost_LIBRARIES})
@@ -300,6 +300,7 @@ add_definitions(-DOPENSCAD_TESTING)
set(CORE_SOURCES
tests-common.cc
+ ../src/parsersettings.cc
../src/mathc99.cc
../src/linalg.cc
../src/handle_dep.cc
diff --git a/tests/CMingw-cross-env.cmake b/tests/CMingw-cross-env.cmake
index 09ec1d1..7063be4 100644
--- a/tests/CMingw-cross-env.cmake
+++ b/tests/CMingw-cross-env.cmake
@@ -10,7 +10,7 @@
# http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Cross-compiling_for_Windows_on_Linux_or_Mac_OS_X
# - cross-compile openscad.exe, to verify your installation works properly.
# - cd openscad/tests && mkdir build-mingw32 && cd build-mingw32
-# - cmake .. -DCMAKE_TOOLCHAIN_FILE=CMingw-cross-env.cmake \
+# - cmake .. -DCMAKE_TOOLCHAIN_FILE=../CMingw-cross-env.cmake \
# -DMINGW_CROSS_ENV_DIR=<where mingw-cross-env is installed>
# - make should proceed as normal.
# - now run 'ctest' on your *nix machine.
@@ -78,6 +78,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_C_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-gcc)
set(CMAKE_CXX_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-g++)
+set(CMAKE_RC_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-windres)
set(QT_QMAKE_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-qmake)
set(PKG_CONFIG_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-pkg-config)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc
index 800a829..ca37572 100644
--- a/tests/cgalpngtest.cc
+++ b/tests/cgalpngtest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "polyset.h"
@@ -43,10 +44,6 @@
#include "OffscreenView.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
-#include <QTextStream>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -54,10 +51,12 @@
#include <assert.h>
#include <sstream>
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
+
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
@@ -107,28 +106,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -141,8 +123,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -158,7 +139,7 @@ int main(int argc, char **argv)
CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node);
- QDir::setCurrent(original_path.absolutePath());
+ current_path(original_path);
// match with csgtest ends
try {
diff --git a/tests/cgalstlsanitytest.cc b/tests/cgalstlsanitytest.cc
index a078dff..e537b4a 100644
--- a/tests/cgalstlsanitytest.cc
+++ b/tests/cgalstlsanitytest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -49,10 +50,12 @@
#include <assert.h>
#include <sstream>
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
+
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
@@ -89,28 +92,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -123,8 +109,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -139,7 +124,7 @@ int main(int argc, char **argv)
CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node);
- QDir::setCurrent(original_path.absolutePath());
+ current_path(original_path);
if (!N.empty()) {
std::ofstream outfile;
outfile.open(outfilename);
diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc
index 055e970..956bf43 100644
--- a/tests/cgaltest.cc
+++ b/tests/cgaltest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -38,10 +39,6 @@
#include "PolySetCGALEvaluator.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
-#include <QTextStream>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -49,10 +46,12 @@
#include <assert.h>
#include <sstream>
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
+
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
@@ -86,28 +85,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -120,8 +102,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -136,7 +117,7 @@ int main(int argc, char **argv)
CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node);
- QDir::setCurrent(original_path.absolutePath());
+ current_path(original_path);
if (!N.empty()) {
export_stl(&N, std::cout, NULL);
}
diff --git a/tests/csgtermtest.cc b/tests/csgtermtest.cc
index aabbc05..016285e 100644
--- a/tests/csgtermtest.cc
+++ b/tests/csgtermtest.cc
@@ -28,6 +28,7 @@
#include "PolySetEvaluator.h"
#include "CSGTermEvaluator.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -38,9 +39,6 @@
#include "csgterm.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -49,12 +47,14 @@
#include <sstream>
#include <fstream>
-using std::cout;
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
+
+using std::cout;
int main(int argc, char **argv)
{
@@ -71,28 +71,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -106,8 +89,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -132,7 +114,7 @@ int main(int argc, char **argv)
// if (evaluator.background) cout << "Background terms: " << evaluator.background->size() << "\n";
// if (evaluator.highlights) cout << "Highlights terms: " << evaluator.highlights->size() << "\n";
- QDir::setCurrent(original_path.absolutePath());
+ current_path(original_path);
std::ofstream outfile;
outfile.open(outfilename);
if (root_term) {
diff --git a/tests/csgtestcore.cc b/tests/csgtestcore.cc
index e8a6878..65e9127 100644
--- a/tests/csgtestcore.cc
+++ b/tests/csgtestcore.cc
@@ -4,6 +4,7 @@
#include "tests-common.h"
#include "system-gl.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "builtin.h"
#include "context.h"
#include "node.h"
@@ -23,16 +24,16 @@
#include "OffscreenView.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
#include <QTimer>
#include <sstream>
#include <vector>
#include <boost/program_options.hpp>
+#include <boost/filesystem.hpp>
+
namespace po = boost::program_options;
+namespace fs = boost::filesystem;
using std::string;
using std::vector;
@@ -40,7 +41,6 @@ using std::cerr;
using std::cout;
std::string commandline_commands;
-QString librarydir;
//#define DEBUG
@@ -116,7 +116,7 @@ po::variables_map parse_options(int argc, char *argv[])
// po::options_description hidden("Hidden options");
// hidden.add_options()
("input-file", po::value< vector<string> >(), "input file")
- ("output-file", po::value< vector<string> >(), "ouput file");
+ ("output-file", po::value< vector<string> >(), "output file");
po::positional_options_description p;
p.add("input-file", 1).add("output-file", 1);
@@ -252,28 +252,11 @@ int csgtestcore(int argc, char *argv[], test_type_e test_type)
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- QString currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ std::string currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -291,8 +274,7 @@ int csgtestcore(int argc, char *argv[], test_type_e test_type)
}
if (!sysinfo_dump) {
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
}
AbstractNode::resetIndexCounter();
@@ -345,7 +327,7 @@ int csgtestcore(int argc, char *argv[], test_type_e test_type)
}
}
- QDir::setCurrent(original_path.absolutePath());
+ fs::current_path(original_path);
try {
csgInfo.glview = new OffscreenView(512,512);
diff --git a/tests/csgtexttest.cc b/tests/csgtexttest.cc
index d7f94f1..daed4e4 100644
--- a/tests/csgtexttest.cc
+++ b/tests/csgtexttest.cc
@@ -28,6 +28,7 @@
#include "CSGTextRenderer.h"
#include "CSGTextCache.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -37,9 +38,6 @@
#include "Tree.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -48,10 +46,12 @@
#include <sstream>
#include <fstream>
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
+
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
void csgTree(CSGTextCache &cache, const AbstractNode &root)
{
@@ -75,28 +75,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -110,8 +93,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -123,7 +105,7 @@ int main(int argc, char **argv)
csgTree(csgcache, *root_node);
// std::cout << tree.getString(*root_node) << "\n";
- QDir::setCurrent(original_path.absolutePath());
+ current_path(original_path);
std::ofstream outfile;
outfile.open(outfilename);
outfile << csgcache[*root_node] << "\n";
diff --git a/tests/dumptest.cc b/tests/dumptest.cc
index f83a993..6dd65a4 100644
--- a/tests/dumptest.cc
+++ b/tests/dumptest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -35,9 +36,6 @@
#include "Tree.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -46,12 +44,14 @@
#include <sstream>
#include <fstream>
-using std::string;
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
+
+using std::string;
string dumptree(const Tree &tree, const AbstractNode &node)
{
@@ -81,28 +81,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -116,8 +99,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
@@ -132,7 +114,7 @@ int main(int argc, char **argv)
exit(1);
}
- QDir::setCurrent(original_path.absolutePath());
+ fs::current_path(original_path);
std::ofstream outfile;
outfile.open(outfilename);
outfile << dumpstdstr << "\n";
@@ -146,7 +128,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Error: Unable to read back dumped file\n");
exit(1);
}
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(original_path);
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
diff --git a/tests/echotest.cc b/tests/echotest.cc
index 8f145b0..7abfd78 100644
--- a/tests/echotest.cc
+++ b/tests/echotest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -34,9 +35,6 @@
#include "printutils.h"
#include <QApplication>
-#include <QFile>
-#include <QDir>
-#include <QSet>
#ifndef _MSC_VER
#include <getopt.h>
#endif
@@ -45,12 +43,14 @@
#include <sstream>
#include <fstream>
-using std::string;
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
std::string commandline_commands;
-QString currentdir;
+std::string currentdir;
QString examplesdir;
-QString librarydir;
+
+using std::string;
static void outfile_handler(const std::string &msg, void *userdata) {
std::ostream *str = static_cast<std::ostream*>(userdata);
@@ -83,28 +83,11 @@ int main(int argc, char **argv)
Builtins::instance()->initialize();
QApplication app(argc, argv, false);
- QDir original_path = QDir::current();
-
- currentdir = QDir::currentPath();
-
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ fs::path original_path = fs::current_path();
+
+ currentdir = fs::current_path().generic_string();
+
+ parser_init(QApplication::instance()->applicationDirPath().toStdString());
Context root_ctx;
register_builtin(root_ctx);
@@ -118,8 +101,7 @@ int main(int argc, char **argv)
exit(1);
}
- QFileInfo fileInfo(filename);
- QDir::setCurrent(fileInfo.absolutePath());
+ fs::current_path(fs::path(filename).parent_path());
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
diff --git a/tests/regression/cgalpngtest/import_stl-tests-expected.png b/tests/regression/cgalpngtest/import_stl-tests-expected.png
index 31395c2..08aa225 100644
--- a/tests/regression/cgalpngtest/import_stl-tests-expected.png
+++ b/tests/regression/cgalpngtest/import_stl-tests-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/import_stl-tests-expected.txt b/tests/regression/dumptest/import_stl-tests-expected.txt
index ac702f6..648a207 100644
--- a/tests/regression/dumptest/import_stl-tests-expected.txt
+++ b/tests/regression/dumptest/import_stl-tests-expected.txt
@@ -1,2 +1,8 @@
import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2);
+ multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2);
+ }
+ multmatrix([[1, 0, 0, 4], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ import(file = "import_bin.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2);
+ }
diff --git a/tests/regression/echotest/builtin-tests-expected.txt b/tests/regression/echotest/builtin-tests-expected.txt
index 0e8d1a7..385b0dc 100644
--- a/tests/regression/echotest/builtin-tests-expected.txt
+++ b/tests/regression/echotest/builtin-tests-expected.txt
@@ -1 +1 @@
-ECHO: 3.14159265358979
+ECHO: 3.14159265359
diff --git a/tests/regression/echotest/dim-all-expected.txt b/tests/regression/echotest/dim-all-expected.txt
index d8c3269..60f36d5 100644
--- a/tests/regression/echotest/dim-all-expected.txt
+++ b/tests/regression/echotest/dim-all-expected.txt
@@ -1,16 +1,16 @@
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: linearX = 51.4495755427526
+ECHO: linearX = 51.44957554275
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: linearY = 29.1302546743484
+ECHO: linearY = 29.13025467434
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: aligned = 60.0000000000000
+ECHO: aligned = 60
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: ordinateX = -49.175424457247
+ECHO: ordinateX = -49.17542445724
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: ordinateY = 30.8697453256515
+ECHO: ordinateY = 30.86974532565
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
ECHO: radius = 60
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
ECHO: diameter = 120
WARNING: Unsupported DXF Entity `LEADER' (1) in `dim-all.dxf'.
-ECHO: arc = 59.0362434679264
+ECHO: arc = 59.03624346792
diff --git a/tests/regression/echotest/inf-tests-expected.txt b/tests/regression/echotest/inf-tests-expected.txt
new file mode 100644
index 0000000..7ac4fe9
--- /dev/null
+++ b/tests/regression/echotest/inf-tests-expected.txt
@@ -0,0 +1,23 @@
+ECHO: inf
+ECHO: -inf
+ECHO: nan
+ECHO: nan
+ECHO: nan
+ECHO: nan
+ECHO: nan
+ECHO: 90
+ECHO: -90
+ECHO: 135
+ECHO: inf
+ECHO: inf
+ECHO: undef
+ECHO: inf
+ECHO: inf
+ECHO: inf
+ECHO: -inf
+ECHO: inf
+ECHO: inf
+ECHO: 1
+ECHO: -1
+ECHO: inf
+ECHO: nan
diff --git a/tests/regression/echotest/parser-tests-expected.txt b/tests/regression/echotest/parser-tests-expected.txt
index fb04907..615726a 100644
--- a/tests/regression/echotest/parser-tests-expected.txt
+++ b/tests/regression/echotest/parser-tests-expected.txt
@@ -2,4 +2,4 @@ ECHO: 0.1
ECHO: 2
ECHO: 1100
ECHO: 0.021
-ECHO: 1.1e-13
+ECHO: 0
diff --git a/tests/regression/opencsgtest/import_stl-tests-expected.png b/tests/regression/opencsgtest/import_stl-tests-expected.png
index e6fdbca..19e233a 100644
--- a/tests/regression/opencsgtest/import_stl-tests-expected.png
+++ b/tests/regression/opencsgtest/import_stl-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/import_stl-tests-expected.png b/tests/regression/throwntogethertest/import_stl-tests-expected.png
index e6fdbca..19e233a 100644
--- a/tests/regression/throwntogethertest/import_stl-tests-expected.png
+++ b/tests/regression/throwntogethertest/import_stl-tests-expected.png
Binary files differ
contact: Jan Huwald // Impressum