summaryrefslogtreecommitdiff
path: root/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
blob: 0dffb9fe28c3e7df47c8ac87bfa473be0c8ebea2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
     & eval 'exec perl -S $0 $argv:q'
     if 0;

# $Id$
# -*- perl -*-

use lib "$ENV{ACE_ROOT}/bin";
use PerlACE::TestTarget;

$status = 0;

my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";

$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi");
$VAL = $target->CreateProcess ("xmlvalidator");


my $idl_tests_dir = "$ENV{'TAO_ROOT'}/tests/IDL_Test";
opendir(DIR, $idl_tests_dir) || die "can't opendir $idl_tests_dir: $!";

my @idls = grep { /\.idl$/ && -f "$idl_tests_dir/$_" } readdir(DIR);
foreach my $idl_file (@idls) {
    my $idl = "$idl_tests_dir/$idl_file";
    my $dtd = "../XMI.dtd";
    (my $xmi = $idl_file) =~ s/\.idl$/.xmi/;
    $target->LocalFile ($xmi);
    $target->DeleteFile ($xmi);

    $I2X->Arguments ("-I$idl_tests_dir -xd $dtd -of $xmi $idl");

    $target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval ());

    if ($target_status != 0) {
        print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
        $status = 1;
    }

    if (! -f $xmi) {
        print STDERR "ERROR: tao_idl3_to_xmi didn't produce XMI\n";
        print "\n";
        next;
    }

    #$VAL->Arguments ("val -d $dtd $xmi");
    $VAL->Arguments ("-i $xmi");

    $target_status = $VAL->SpawnWaitKill ($target->ProcessStartWaitInterval ());

    if ($target_status != 0) {
        print STDERR "ERROR: xmlvalidator returned $target_status\n";
        $status = 1;
    }

    $target->DeleteFile ($xmi);

    print "\n";
}

closedir DIR;

exit $status;