/[suikacvs]/messaging/manakai/bin/daf.pl
Suika

Diff of /messaging/manakai/bin/daf.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by wakaba, Thu Mar 16 08:52:31 2006 UTC revision 1.10 by wakaba, Mon Apr 3 12:53:22 2006 UTC
# Line 278  daf_check_undefined (); Line 278  daf_check_undefined ();
278    
279  undef $DNi;  undef $DNi;
280  undef %ModuleSourceDNLDocument;  undef %ModuleSourceDNLDocument;
 undef $limpl;  
 undef $impl;  
281  exit $HasError if $HasError;  exit $HasError if $HasError;
282    
283  ## --- Creating Files  ## --- Creating Files
# Line 295  for (@{$Opt{create_module}}) { Line 293  for (@{$Opt{create_module}}) {
293    
294    if ($out_type eq 'perl-pm') {    if ($out_type eq 'perl-pm') {
295      status_msg_ qq<Generating Perl module from <$mod_uri> for <$mod_for>...>;      status_msg_ qq<Generating Perl module from <$mod_uri> for <$mod_for>...>;
296      my $pl = $mod->pl_generate_perl_module_file;      local $Message::Util::DIS::Perl::Implementation
297            = $impl->get_feature (ExpandedURI q<Util:PerlCode> => '1.0');
298        my $pl = $mod->pl_generate_perl_module_file
299                        ($impl->get_feature (ExpandedURI q<Util:PerlCode> => '1.0'));
300      status_msg qq<done>;      status_msg qq<done>;
301    
302      my $output;      my $output;
# Line 342  $db->free; Line 343  $db->free;
343  undef $db;  undef $db;
344  status_msg "done";  status_msg "done";
345    
346    undef $limpl;
347    undef $impl;
348    
349  {  {
350    use integer;    use integer;
351    my $time = time - $start_time;    my $time = time - $start_time;
# Line 480  sub daf_get_referring_module_uri_list ($ Line 484  sub daf_get_referring_module_uri_list ($
484  sub dac_search_file_path_stem ($$$) {  sub dac_search_file_path_stem ($$$) {
485    my ($ns, $ln, $suffix) = @_;    my ($ns, $ln, $suffix) = @_;
486    require File::Spec;    require File::Spec;
487    for my $dir ('.', @{$Opt{input_search_path}->{$ns}||[]}) {    for my $dir (@{$Opt{input_search_path}->{$ns}||[]}) {
488      my $name = Cwd::abs_path      my $name = Cwd::abs_path
489          (File::Spec->canonpath          (File::Spec->canonpath
490           (File::Spec->catfile ($dir, $ln)));           (File::Spec->catfile ($dir, $ln)));
# Line 586  sub daf_check_undefined () { Line 590  sub daf_check_undefined () {
590  sub daf_generate_perl_test_file ($) {  sub daf_generate_perl_test_file ($) {
591    my $mod = shift;    my $mod = shift;
592    my $pc = $impl->get_feature (ExpandedURI q<Util:PerlCode> => '1.0');    my $pc = $impl->get_feature (ExpandedURI q<Util:PerlCode> => '1.0');
593    my $pl = $pc->create_perl_file;    local $Message::Util::DIS::Perl::Implementation = $pc;
594      my $pl = $pc->create_pc_file;
595      my $factory = $pl->owner_document;
596    my $pack = $pl->get_last_package ("Manakai::Test", make_new_package => 1);    my $pack = $pl->get_last_package ("Manakai::Test", make_new_package => 1);
597    $pack->add_use_perl_module_name ("Message::Util::DIS::Test");    $pack->add_use_perl_module_name ("Message::Util::DIS::Test");
598    $pack->add_use_perl_module_name ("Message::Util::Error");    $pack->add_use_perl_module_name ("Message::Util::Error");
# Line 598  sub daf_generate_perl_test_file ($) { Line 604  sub daf_generate_perl_test_file ($) {
604    $pl->license_uri ($mod->get_property_resource (ExpandedURI q<dis:License>)    $pl->license_uri ($mod->get_property_resource (ExpandedURI q<dis:License>)
605                          ->uri);                          ->uri);
606    
607      $pack->append_code ('
608        use Getopt::Long;
609        my %Skip;
610        GetOptions (
611          "Skip=s" => sub {
612            shift;
613            for (split /\s+/, shift) {
614              if (/^(\d+)-(\d+)$/) {
615                $Skip{$_} = 1 for $1..$2;
616              } else {
617                $Skip{$_} = 1;
618              }
619            }
620          },
621        );
622      ');
623    
624    $pack->append_code    $pack->append_code
625      ($pc->create_perl_statement      ($pc->create_perl_statement
626         ('my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({         ('my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({
# Line 617  sub daf_generate_perl_test_file ($) { Line 640  sub daf_generate_perl_test_file ($) {
640    
641      if ($res->is_type_uri (ExpandedURI q<test:Test>)) {      if ($res->is_type_uri (ExpandedURI q<test:Test>)) {
642        if ($res->is_type_uri (ExpandedURI q<test:StandaloneTest>)) {        if ($res->is_type_uri (ExpandedURI q<test:StandaloneTest>)) {
643          $total_tests++;          my $test_num = ++$total_tests;
644            my $test_uri = $res->name_uri || $res->uri;
645    
646          $pack->append_code ('$test->start_new_test (');          $pack->append_code ('$test->start_new_test (');
647          $pack->append_new_pc_literal ($res->name_uri || $res->uri);          $pack->append_new_pc_literal ($test_uri);
648          $pack->append_code (');');          $pack->append_code (');');
649    
650            $pack->append_code ('if (not $Skip{'.$test_num.'} and not $Skip{');
651            $pack->append_new_pc_literal ($test_uri);
652            $pack->append_code ('}) {');
653                    
654          $pack->append_code ('try {');          $pack->append_code ('try {');
655                    
656          my $test_pc = $res->pl_code_fragment;          my $test_pc = $res->pl_code_fragment ($factory);
657          if (not defined $test_pc) {          if (not defined $test_pc) {
658            die "Perl test code not defined for <".$res->uri.">";            die "Perl test code not defined for <".$res->uri.">";
659          }          }
# Line 641  sub daf_generate_perl_test_file ($) { Line 670  sub daf_generate_perl_test_file ($) {
670            $test->not_ok;            $test->not_ok;
671          };');          };');
672    
673            $pack->append_code ('} else { warn "'.$test_num.' skipped\n" }');
674    
675        } elsif ($res->is_type_uri (ExpandedURI q<test:ParserTestSet>)) {        } elsif ($res->is_type_uri (ExpandedURI q<test:ParserTestSet>)) {
676          my $block = $pack->append_new_pc_block;          my $block = $pack->append_new_pc_block;
677          my @test;          my @test;
# Line 698  sub daf_generate_perl_test_file ($) { Line 729  sub daf_generate_perl_test_file ($) {
729            $_->append_new_pc_literal (\@test);            $_->append_new_pc_literal (\@test);
730          }          }
731                    
732          my $plc = $res->pl_code_fragment;          my $plc = $res->pl_code_fragment ($factory);
733          unless ($plc) {          unless ($plc) {
734            die "Resource <".$res->uri."> does not have Perl test code";            die "Resource <".$res->uri."> does not have Perl test code";
735          }          }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.10

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24