Commit 86f2d3449c651674b92b1249186375ad821f9017

Authored by Jay Berkenbilt
1 parent a1c0aaf0

windows fixes; okay for modern compilers

git-svn-id: svn+q:///qpdf/trunk@685 71b93d88-0707-0410-a8cf-f5a4172ac649
libtests/qexc.cc
@@ -4,20 +4,6 @@ @@ -4,20 +4,6 @@
4 #include <errno.h> 4 #include <errno.h>
5 #include <stdlib.h> 5 #include <stdlib.h>
6 6
7 -void do_terminate()  
8 -{  
9 - try  
10 - {  
11 - throw;  
12 - }  
13 - catch (std::exception& e)  
14 - {  
15 - std::cerr << "uncaught exception: " << e.what() << std::endl;  
16 - exit(3);  
17 - }  
18 - exit(4);  
19 -}  
20 -  
21 void f(int n) 7 void f(int n)
22 { 8 {
23 switch (n) 9 switch (n)
@@ -33,19 +19,11 @@ void f(int n) @@ -33,19 +19,11 @@ void f(int n)
33 case 2: 19 case 2:
34 throw QEXC::System("doing something", EINVAL); 20 throw QEXC::System("doing something", EINVAL);
35 break; 21 break;
36 -  
37 - case 3:  
38 - {  
39 - int a = -1;  
40 - new char[a];  
41 - }  
42 - break;  
43 } 22 }
44 } 23 }
45 24
46 int main(int argc, char* argv[]) 25 int main(int argc, char* argv[])
47 { 26 {
48 - std::set_terminate(do_terminate);  
49 if (argc != 2) 27 if (argc != 2)
50 { 28 {
51 std::cerr << "usage: qexc n" << std::endl; 29 std::cerr << "usage: qexc n" << std::endl;
@@ -62,5 +40,14 @@ int main(int argc, char* argv[]) @@ -62,5 +40,14 @@ int main(int argc, char* argv[])
62 std::cerr << "what: " << e.what() << std::endl; 40 std::cerr << "what: " << e.what() << std::endl;
63 exit(2); 41 exit(2);
64 } 42 }
  43 + catch (std::exception& e)
  44 + {
  45 + std::cerr << "uncaught exception: " << e.what() << std::endl;
  46 + exit(3);
  47 + }
  48 + catch (...)
  49 + {
  50 + exit(4);
  51 + }
65 return 0; 52 return 0;
66 } 53 }
libtests/qtest/qexc.test
@@ -14,18 +14,14 @@ my @tests = @@ -14,18 +14,14 @@ my @tests =
14 (['general exception', 2], 14 (['general exception', 2],
15 ['internal error', 3], 15 ['internal error', 3],
16 ['system exception', 2], 16 ['system exception', 2],
17 - ['library exception', 3, "uncaught exception: .+\n"], # fails on VC7?  
18 ); 17 );
19 18
20 for (my $i = 0; $i < scalar(@tests); ++$i) 19 for (my $i = 0; $i < scalar(@tests); ++$i)
21 { 20 {
22 - my $output = +((-f "test$i.out")  
23 - ? {$td->FILE => "test$i.out"}  
24 - : {$td->REGEXP => $tests[$i]->[2]});  
25 - $output->{$td->EXIT_STATUS} = $tests[$i]->[1];  
26 $td->runtest($tests[$i]->[0], 21 $td->runtest($tests[$i]->[0],
27 {$td->COMMAND => "qexc $i"}, 22 {$td->COMMAND => "qexc $i"},
28 - $output, 23 + {$td->FILE => "test$i.out",
  24 + $td->EXIT_STATUS => $tests[$i]->[1]},
29 $td->NORMALIZE_NEWLINES); 25 $td->NORMALIZE_NEWLINES);
30 } 26 }
31 27