ACE+TAO-7_0_8
[ACE_TAO.git] / TAO / tests / IDL_Test / run_test.pl
blob90a7fa9f5d9534e1bc23e0243ea4a755de8555c0
1 eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
2 & eval 'exec perl -S $0 $argv:q'
3 if 0;
5 # -*- perl -*-
7 use lib "$ENV{ACE_ROOT}/bin";
8 use PerlACE::TestTarget;
9 use File::Spec;
11 my $status =0;
12 my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
13 $SV = $server->CreateProcess ("main");
14 $test = $SV->SpawnWaitKill ($server->ProcessStartWaitInterval());
15 if ($test != 0) {
16 print STDERR "ERROR: test returned $test\n";
17 $status= 1;
20 #Redirect the screen output to the null device.
21 open (OLDOUT, ">&STDOUT");
22 open (STDOUT, ">" . File::Spec->devnull());
23 open (OLDERR, ">&STDERR");
24 open (STDERR, ">&STDOUT");
26 my $tao_idl = "$ENV{ACE_ROOT}/bin/tao_idl";
27 if (exists $ENV{HOST_ROOT}) {
28 $tao_idl = "$ENV{HOST_ROOT}/bin/tao_idl";
31 my $server2 = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
32 my $input_file2 = $server2->LocalFile ("invalid_scoping1.idl");
34 # Compile the IDL
35 $SV = $server2->CreateProcess ("$tao_idl", "$input_file2");
36 $test2 = $SV->SpawnWaitKill ($server2->ProcessStartWaitInterval());
38 my $server3 = PerlACE::TestTarget::create_target (3) || die "Create target 3 failed\n";
39 my $input_file3 = $server3->LocalFile ("invalid_scoping2.idl");
41 # Compile the IDL
42 $SV = $server3->CreateProcess ("$tao_idl", "$input_file3");
43 $test3 = $SV->SpawnWaitKill ($server3->ProcessStartWaitInterval());
45 my $server4 = PerlACE::TestTarget::create_target (4) || die "Create target 4 failed\n";
46 my $input_file4 = $server4->LocalFile ("keyword_case_diff.idl");
48 # Compile the IDL
49 $SV = $server4->CreateProcess ("$tao_idl", "$input_file4");
50 $test4 = $SV->SpawnWaitKill ($server4->ProcessStartWaitInterval());
52 my $server5 = PerlACE::TestTarget::create_target (5) || die "Create target 5 failed\n";
53 my $input_file5 = $server5->LocalFile ("keyword_case_diff.idl");
54 my $result_filename5 = "keyword_case_diff.log";
55 my $result_file5 = $server5->LocalFile ($result_filename5);
57 open (STDERR, ">$result_file5") or die "can't redirect stderr: $!";
59 # Compile the IDL
60 $SV = $server5->CreateProcess ("$tao_idl", " -Cw $input_file5");
61 $test5 = $SV->SpawnWaitKill ($server5->ProcessStartWaitInterval());
63 open (STDERR, ">&STDOUT");
65 sub analyze_results {
66 my $result_file = $_[0];
68 if (! -r $result_file) {
69 print STDERR "ERROR: cannot find $result_file\n";
70 return 1;
73 my $match = 0;
74 open (FILE, $result_file) or return -1;
75 while (<FILE>) {
76 $match = /Warning - spelling differs from IDL keyword only in case:/;
77 last if $match;
79 close FILE;
81 return $match ? 0 : -1;
84 $match5 = analyze_results($result_file5);
85 $server5->DeleteFile($result_filename5);
87 #Redirect the null device output back to the screen
88 open (STDOUT, ">&OLDOUT");
89 open (STDERR, ">&OLDERR");
90 if ($test2== 0) {
91 print STDERR "ERROR: tao_idl returned $test2 for $input_file2, should have failed!\n";
92 $status = 1;
94 if ($test3== 0) {
95 print STDERR "ERROR: tao_idl returned $test3 for $input_file3, should have failed!\n";
96 $status = 1;
98 if ($test4== 0) {
99 print STDERR "ERROR: tao_idl returned $test4 for $input_file4, should have failed!\n";
100 $status = 1;
102 if ($test5!= 0) {
103 print STDERR "ERROR: tao_idl -Cw returned $test5 for $input_file5, should have succeeded!\n";
104 $status = 1;
106 if ($match5!= 0) {
107 print STDERR "ERROR: tao_idl -Cw should have printed warning for $input_file5\n";
108 $status = 1;
111 exit $status;