From a5dae64a7b0b06c56c4b9d2ce14603d37a56afb8 Mon Sep 17 00:00:00 2001 From: Jose Date: Tue, 29 Mar 2016 16:51:52 +0200 Subject: Windows stacktrace test fixes --- cpp/test/IceUtil/stacktrace/Client.cpp | 78 ++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 27 deletions(-) (limited to 'cpp/test/IceUtil/stacktrace/Client.cpp') diff --git a/cpp/test/IceUtil/stacktrace/Client.cpp b/cpp/test/IceUtil/stacktrace/Client.cpp index b58a1dda895..b6edb172a0e 100644 --- a/cpp/test/IceUtil/stacktrace/Client.cpp +++ b/cpp/test/IceUtil/stacktrace/Client.cpp @@ -220,42 +220,66 @@ int main(int argc, char* argv[]) filename += ".Linux"; #endif - ifstream ifs(filename.c_str()); - stringstream sstr; - sstr << ifs.rdbuf(); + while(true) + { + ifstream ifs(filename.c_str()); + stringstream sstr; + sstr << ifs.rdbuf(); #if defined(__APPLE__) - string expected = sstr.str(); - standardizeVersion(expected); + string expected = sstr.str(); + standardizeVersion(expected); #else - vector expected = splitLines(sstr.str()); + vector expected = splitLines(sstr.str()); #endif - ThrowerPtr thrower = new Thrower(); - try - { - thrower->first(); - } - catch(const IceUtil::Exception& ex) - { - string stack = ex.ice_stackTrace(); -#ifdef __APPLE__ - standardizeVersion(stack); - if(expected.size() < stack.size()) + ThrowerPtr thrower = new Thrower(); + try { - test(stack.compare(0, expected.size(), expected) == 0); + thrower->first(); } - else + catch(const IceUtil::Exception& ex) { - test(stack == expected); - } + string stack = ex.ice_stackTrace(); +#ifdef __APPLE__ + standardizeVersion(stack); + if(expected.size() < stack.size()) + { + test(stack.compare(0, expected.size(), expected) == 0); + } + else + { + test(stack == expected); + } + break; #else - vector actual = splitLines(stack); - test(expected.size() <= actual.size()); - for(size_t i = 0; i < expected.size(); ++i) - { - test(actual[i].find(expected[i]) != string::npos); - } + vector actual = splitLines(stack); + test(expected.size() <= actual.size()); + for(size_t i = 0; i < expected.size(); ++i) + { + if(actual[i].find(expected[i]) != string::npos) + { +#if defined(_WIN32) && defined(NDEBUG) + // + // With windows optimized builds retry with the alternate + // expect file. + // + if(filename != "StackTrace.release.Win32") + { + filename = "StackTrace.release.Win32"; + continue; + } + else + { + test(false); + } +#else + test(false) +#endif + } + } + break; #endif + } } cout << "ok" << endl; #else -- cgit v1.2.3 From 043a7b47a6a39996955fd222cf61efc7650cec63 Mon Sep 17 00:00:00 2001 From: Jose Date: Tue, 29 Mar 2016 17:10:38 +0200 Subject: stacktrace test fixes --- cpp/test/IceUtil/stacktrace/Client.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cpp/test/IceUtil/stacktrace/Client.cpp') diff --git a/cpp/test/IceUtil/stacktrace/Client.cpp b/cpp/test/IceUtil/stacktrace/Client.cpp index b6edb172a0e..682443b8732 100644 --- a/cpp/test/IceUtil/stacktrace/Client.cpp +++ b/cpp/test/IceUtil/stacktrace/Client.cpp @@ -256,7 +256,7 @@ int main(int argc, char* argv[]) test(expected.size() <= actual.size()); for(size_t i = 0; i < expected.size(); ++i) { - if(actual[i].find(expected[i]) != string::npos) + if(actual[i].find(expected[i]) == string::npos) { #if defined(_WIN32) && defined(NDEBUG) // @@ -273,7 +273,7 @@ int main(int argc, char* argv[]) test(false); } #else - test(false) + test(false); #endif } } -- cgit v1.2.3