From 86f2d3449c651674b92b1249186375ad821f9017 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 15 Jul 2009 04:01:52 +0000 Subject: [PATCH] windows fixes; okay for modern compilers git-svn-id: svn+q:///qpdf/trunk@685 71b93d88-0707-0410-a8cf-f5a4172ac649 --- libtests/qexc.cc | 31 +++++++++---------------------- libtests/qtest/qexc.test | 8 ++------ 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/libtests/qexc.cc b/libtests/qexc.cc index 87e56820..6a89f68d 100644 --- a/libtests/qexc.cc +++ b/libtests/qexc.cc @@ -4,20 +4,6 @@ #include #include -void do_terminate() -{ - try - { - throw; - } - catch (std::exception& e) - { - std::cerr << "uncaught exception: " << e.what() << std::endl; - exit(3); - } - exit(4); -} - void f(int n) { switch (n) @@ -33,19 +19,11 @@ void f(int n) case 2: throw QEXC::System("doing something", EINVAL); break; - - case 3: - { - int a = -1; - new char[a]; - } - break; } } int main(int argc, char* argv[]) { - std::set_terminate(do_terminate); if (argc != 2) { std::cerr << "usage: qexc n" << std::endl; @@ -62,5 +40,14 @@ int main(int argc, char* argv[]) std::cerr << "what: " << e.what() << std::endl; exit(2); } + catch (std::exception& e) + { + std::cerr << "uncaught exception: " << e.what() << std::endl; + exit(3); + } + catch (...) + { + exit(4); + } return 0; } diff --git a/libtests/qtest/qexc.test b/libtests/qtest/qexc.test index b8632b9b..350ceba8 100644 --- a/libtests/qtest/qexc.test +++ b/libtests/qtest/qexc.test @@ -14,18 +14,14 @@ my @tests = (['general exception', 2], ['internal error', 3], ['system exception', 2], - ['library exception', 3, "uncaught exception: .+\n"], # fails on VC7? ); for (my $i = 0; $i < scalar(@tests); ++$i) { - my $output = +((-f "test$i.out") - ? {$td->FILE => "test$i.out"} - : {$td->REGEXP => $tests[$i]->[2]}); - $output->{$td->EXIT_STATUS} = $tests[$i]->[1]; $td->runtest($tests[$i]->[0], {$td->COMMAND => "qexc $i"}, - $output, + {$td->FILE => "test$i.out", + $td->EXIT_STATUS => $tests[$i]->[1]}, $td->NORMALIZE_NEWLINES); }