fix failing tests per comments on github, make slightly more robust

c++11
Don Bright 2014-02-19 05:26:19 -06:00
parent 7b7a76a364
commit ccc782e39c
2 changed files with 7 additions and 8 deletions

View File

@ -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;

View File

@ -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$<SEMICOLON> -o
SUFFIX echo
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/override.scad)
endif()
# Image output parameters
add_cmdline_test(openscad-imgsize EXE ${OPENSCAD_BINPATH}