From ccc782e39cc26e1bbd59c5640c68299f33dd1db2 Mon Sep 17 00:00:00 2001 From: Don Bright Date: Wed, 19 Feb 2014 05:26:19 -0600 Subject: [PATCH] fix failing tests per comments on github, make slightly more robust --- src/import.cc | 11 ++++------- tests/CMakeLists.txt | 4 +++- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/import.cc b/src/import.cc index 72efc21c..e042db45 100644 --- a/src/import.cc +++ b/src/import.cc @@ -206,7 +206,7 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const bool binary = false; std::streampos file_size = f.tellg(); f.seekg(80); - if (!f.eof()) { + if (f.good() && !f.eof()) { uint32_t facenum = 0; f.read((char *)&facenum, sizeof(uint32_t)); #ifdef BOOST_BIG_ENDIAN @@ -220,7 +220,7 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const char data[5]; f.read(data, 5); - if (!binary && !f.eof() && !memcmp(data, "solid", 5)) { + if (!binary && !f.eof() && f.good() && !memcmp(data, "solid", 5)) { int i = 0; double vdata[3][3]; std::string line; @@ -256,7 +256,7 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const } } } - else if (binary && !f.eof()) + else if (binary && !f.eof() && f.good()) { f.ignore(80-5+4); while (1) { @@ -308,10 +308,7 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const } - if (p && p->empty()) { - delete p; - p = NULL; - } + if (!p) p = new PolySet(); if (p) p->convexity = this->convexity; return p; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c66e7f61..b66c95e8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1013,12 +1013,14 @@ add_cmdline_test(openscad-nonascii EXE ${OPENSCAD_BINPATH} ARGS -o # Variable override (-D arg) +# FIXME - this breaks on older cmake that is very common 'in the wild' on linux # Override simple variable +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.10) add_cmdline_test(openscad-override EXE ${OPENSCAD_BINPATH} ARGS -D a=3$ -o SUFFIX echo FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/override.scad) - +endif() # Image output parameters add_cmdline_test(openscad-imgsize EXE ${OPENSCAD_BINPATH}