diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CSGTextRenderer.cc | 1 | ||||
| -rw-r--r-- | tests/cgalstlsanitytest.cc | 24 | ||||
| -rw-r--r-- | tests/regression/echotest/vector-values-expected.txt | 4 | ||||
| -rw-r--r-- | tests/tests-common.cc | 26 | 
4 files changed, 29 insertions, 26 deletions
| diff --git a/tests/CSGTextRenderer.cc b/tests/CSGTextRenderer.cc index b55c88f..d254820 100644 --- a/tests/CSGTextRenderer.cc +++ b/tests/CSGTextRenderer.cc @@ -13,7 +13,6 @@  #include <sstream>  #include <iostream>  #include <assert.h> -#include <QRegExp>  bool CSGTextRenderer::isCached(const AbstractNode &node)  { diff --git a/tests/cgalstlsanitytest.cc b/tests/cgalstlsanitytest.cc index d0d0077..7241482 100644 --- a/tests/cgalstlsanitytest.cc +++ b/tests/cgalstlsanitytest.cc @@ -132,17 +132,27 @@ int main(int argc, char **argv)  	if (!N.empty()) {  		std::ofstream outfile;  		outfile.open(outfilename); - -		std::stringstream out; -		export_stl(&N, out); -		if (out.str().find("nan") != string::npos) { -			outfile << "Error: nan found\n"; +			 +		if (N.dim != 3) { +			outfile << "Error: Current top level object is not a 3D object.\n";  			retval = 2;  		} -		if (out.str().find("inf") != string::npos) { -			outfile << "Error: inf found\n"; +		else if (!N.p3->is_simple()) { +			outfile << "Error: Object isn't a valid 2-manifold! Modify your design.\n";  			retval = 2;  		} +		else { +			std::stringstream out; +			export_stl(&N, out); +			if (out.str().find("nan") != string::npos) { +				outfile << "Error: nan found\n"; +				retval = 2; +			} +			if (out.str().find("inf") != string::npos) { +				outfile << "Error: inf found\n"; +				retval = 2; +			} +		}  		outfile.close();  	} diff --git a/tests/regression/echotest/vector-values-expected.txt b/tests/regression/echotest/vector-values-expected.txt index 7654892..78053b9 100644 --- a/tests/regression/echotest/vector-values-expected.txt +++ b/tests/regression/echotest/vector-values-expected.txt @@ -1,8 +1,8 @@  ECHO: "Testing vector dot product: 14"  ECHO: "  Bounds check: undef" -ECHO: "Testing matrix * vector: [3, 2]" +ECHO: "Testing matrix * vector: [3, 2, 13]"  ECHO: "  Bounds check: undef" -ECHO: "Testing vector * matrix: [2, -1, 0]" +ECHO: "Testing vector * matrix: [9, 8]"  ECHO: "  Bounds check: undef"  ECHO: "Testing id matrix * id matrix: [[1, 0], [0, 1]]"  ECHO: "Testing asymmetric matrix * matrix: [[2, 1], [-1, 0]]" diff --git a/tests/tests-common.cc b/tests/tests-common.cc index 5b0cc3b..703e1c5 100644 --- a/tests/tests-common.cc +++ b/tests/tests-common.cc @@ -2,31 +2,25 @@  #include "openscad.h"  #include "module.h"  #include "handle_dep.h" +#include "boosty.h" -#include <QFile> -#include <QFileInfo>  #include <sstream> +#include <fstream>  Module *parsefile(const char *filename)  {  	Module *root_module = NULL; -	QFileInfo fileInfo(filename);  	handle_dep(filename); -	FILE *fp = fopen(filename, "rt"); -	if (!fp) { +	std::ifstream ifs(filename); +	if (!ifs.is_open()) {  		fprintf(stderr, "Can't open input file `%s'!\n", filename); -	} else { -		std::stringstream text; -		char buffer[513]; -		int ret; -		while ((ret = fread(buffer, 1, 512, fp)) > 0) { -			buffer[ret] = 0; -			text << buffer; -		} -		fclose(fp); -		text << "\n" << commandline_commands; -		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false); +	} +	else { +		std::string text((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>()); +		text += "\n" + commandline_commands; +		std::string pathname = boosty::stringy(fs::path(filename).parent_path()); +		root_module = parse(text.c_str(), pathname.c_str(), false);  		if (root_module) {  			root_module->handleDependencies();  		} | 
