Author: jkeenan
Date: Sun Dec  7 07:36:49 2008
New Revision: 33608

Modified:
   branches/testparrottest/lib/Parrot/Test.pm

Log:
Rearrange order of subs for easier editing.  Correct one spelling error.

Modified: branches/testparrottest/lib/Parrot/Test.pm
==============================================================================
--- branches/testparrottest/lib/Parrot/Test.pm  (original)
+++ branches/testparrottest/lib/Parrot/Test.pm  Sun Dec  7 07:36:49 2008
@@ -165,222 +165,6 @@
 # The following methods --up until generate_languages_functions() -- are
 # private.  They should not be used by modules inheriting from Parrot::Test.
 
-sub _handle_error_output {
-    my ( $builder, $real_output, $expected, $desc ) = @_;
-
-    my $level = $builder->level();
-    $builder->level( $level + 1 );
-    $builder->ok( 0, $desc );
-    $builder->diag(
-        "Expected error but exited cleanly\n" . 
"Received:\n$real_output\nExpected:\n$expected\n" );
-    $builder->level($level);
-
-    return 0;
-}
-
-sub _run_test_file {
-    local $SIG{__WARN__} = \&_report_odd_hash;
-    my ( $func, $code, $expected, $desc, %extra ) = @_;
-#my $incoming_desc_status;
-#if ($desc) {
-#    $incoming_desc_status++;
-#    print STDERR "desc:  $desc\n";
-#} else {
-#    print STDERR "desc is Perl-false\n";
-#}
-
-    my $path_to_parrot = path_to_parrot();
-    my $parrot = File::Spec->join( File::Spec->curdir(), 'parrot' . 
$PConfig{exe} );
-
-    # Strange Win line endings
-    convert_line_endings($expected);
-
-    # set up default description
-    unless ($desc) {
-        ( undef, my $file, my $line ) = caller();
-        $desc = "($file line $line)";
-    }
-#unless ($incoming_desc_status) {
-#    if ($desc) {
-#        print STDERR "desc is now:  $desc\n";
-#    } else {
-#        print STDERR "desc is still Perl-false\n";
-#    }
-#}
-
-    # $test_no will be part of temporary file
-    my $test_no = $builder->current_test() + 1;
-
-    # Name of the file where output is written.
-    # Switch to a different extension when we are generating code.
-    my $out_f = per_test( '.out', $test_no );
-
-    # Name of the file with test code.
-    # This depends on which kind of code we are testing.
-    my $code_f;
-    if ( $func =~ m/^pir_.*?output/ ) {
-        $code_f = per_test( '.pir', $test_no );
-    }
-    elsif ( $func =~ m/^pasm_.*?output_/ ) {
-        $code_f = per_test( '.pasm', $test_no );
-    }
-    elsif ( $func =~ m/^pbc_.*?output_/ ) {
-        $code_f = per_test( '.pbc', $test_no );
-    }
-    else {
-        die "Unknown test function: $func";
-    }
-    $code_f = File::Spec->rel2abs($code_f);
-    my $code_basef = basename($code_f);
-
-    # native tests are just run, others need to write code first
-    if ( $code_f !~ /\.pbc$/ ) {
-        write_code_to_file( $code, $code_f );
-    }
-
-    # honor opt* filename to actually run code with -Ox
-    my $args = $ENV{TEST_PROG_ARGS} || '';
-    my $opt = $code_basef =~ m!opt(.)! ? "-O$1" : "";
-    $args .= " $opt";
-
-    my $run_exec = 0;
-    if ( $args =~ s/--run-exec// ) {
-        $run_exec = 1;
-        my $pbc_f = per_test( '.pbc', $test_no );
-        my $o_f = per_test( '_pbcexe' . $PConfig{o}, $test_no );
-        my $exe_f =
-            per_test( '_pbcexe' . $PConfig{exe}, $test_no )
-            ;    # Make cleanup and svn:ignore more simple
-        my $exec_f = per_test( '_pbcexe', $test_no );    # Make cleanup and 
svn:ignore more simple
-        $exe_f =~ [EMAIL PROTECTED]/:[EMAIL PROTECTED]@g;
-
-        # RT#43751 put this into sub generate_pbc()
-        run_command(
-            qq{$parrot $args -o $pbc_f "$code_f"},
-            CD     => $path_to_parrot,
-            STDOUT => $out_f,
-            STDERR => $out_f
-        );
-        if ( -e $pbc_f ) {
-            run_command(
-                qq{$parrot $args -o $o_f "$pbc_f"},
-                CD     => $path_to_parrot,
-                STDOUT => $out_f,
-                STDERR => $out_f
-            );
-            if ( -e $o_f ) {
-                run_command(
-                    qq{$PConfig{make} EXEC=$exec_f exec},
-                    CD     => $path_to_parrot,
-                    STDOUT => $out_f,
-                    STDERR => $out_f
-                );
-                if ( -e $exe_f ) {
-                    run_command(
-                        $exe_f,
-                        CD     => $path_to_parrot,
-                        STDOUT => $out_f,
-                        STDERR => $out_f
-                    );
-                }
-            }
-        }
-    }
-
-    my ( $exit_code, $cmd );
-    unless ($run_exec) {
-        if ( $args =~ s/--run-pbc// || $args =~ s/-r // ) {
-            my $pbc_f = per_test( '.pbc', $test_no );
-            $args = qq{$args -o "$pbc_f"};
-
-            # In this case, we need to execute more than one command. Instead
-            # of a single scalar, build an array of commands.
-            $cmd = [ qq{$parrot $args "$code_f"}, qq{$parrot "$pbc_f"}, ];
-        }
-        else {
-            $cmd = qq{$parrot $args "$code_f"};
-        }
-        $exit_code = run_command(
-            $cmd,
-            CD     => $path_to_parrot,
-            STDOUT => $out_f,
-            STDERR => $out_f
-        );
-    }
-
-    return ( $out_f, $cmd, $exit_code );
-}
-
-sub _report_odd_hash {
-    my $warning = shift;
-    if ( $warning =~ m/Odd number of elements in hash assignment/ ) {
-        require Carp;
-        my @args = DB::uplevel_args();
-        shift @args;
-        my $func = ( caller() )[2];
-
-        Carp::carp("Odd $func invocation; probably missing description for 
TODO test");
-    }
-    else {
-        warn $warning;
-    }
-}
-
-sub _handle_test_options {
-    my $options = shift;
-    # To run the command in a different directory.
-    my $chdir = delete $options->{CD} || '';
-
-    while ( my ( $key, $value ) = each %{ $options } ) {
-        $key =~ m/^STD(OUT|ERR)$/
-            or die "I don't know how to redirect '$key' yet!";
-        my $strvalue = "$value";        # filehandle `eq' string will fail
-        $value = File::Spec->devnull()  # on older perls, so stringify it
-            if $strvalue eq '/dev/null';
-    }
-
-    my $out = $options->{'STDOUT'} || '';
-    my $err = $options->{'STDERR'} || '';
-    ##  File::Temp overloads 'eq' here, so we need the quotes. RT #58840
-    if ( $out and $err and "$out" eq "$err" ) {
-        $err = '&STDOUT';
-    }
-    return ( $out, $err, $chdir );
-}
-
-sub _handle_blib_path {
-    my $blib_path =
-        File::Spec->catfile( $PConfig{build_dir}, 'blib', 'lib' );
-    if ($^O eq 'cygwin') {
-        $ENV{PATH} = $blib_path . ':' . $ENV{PATH};
-    }
-    elsif ($^O eq 'MSWin32') {
-        $ENV{PATH} = $blib_path . ';' . $ENV{PATH};
-    }
-    else {
-        $ENV{LD_RUN_PATH} = $blib_path;
-    }
-}
-
-sub _handle_command {
-    my $command = shift;
-    $command = [$command] unless ( ref $command );
-
-    if ( defined $ENV{VALGRIND} ) {
-        $_ = "$ENV{VALGRIND} $_" for (@$command);
-    }
-    return $command;
-}
-
-sub _prepare_exit_message {
-    my $exit_code = $?;
-    return (
-          ( $exit_code < 0 )    ? $exit_code
-        : ( $exit_code & 0xFF ) ? "[SIGNAL $exit_code]"
-        : ( $? >> 8 )
-    );
-}
-
 sub _generate_test_functions {
 
     my $package        = 'Parrot::Test';
@@ -791,6 +575,222 @@
     return;
 }
 
+sub _handle_error_output {
+    my ( $builder, $real_output, $expected, $desc ) = @_;
+
+    my $level = $builder->level();
+    $builder->level( $level + 1 );
+    $builder->ok( 0, $desc );
+    $builder->diag(
+        "Expected error but exited cleanly\n" . 
"Received:\n$real_output\nExpected:\n$expected\n" );
+    $builder->level($level);
+
+    return 0;
+}
+
+sub _run_test_file {
+    local $SIG{__WARN__} = \&_report_odd_hash;
+    my ( $func, $code, $expected, $desc, %extra ) = @_;
+#my $incoming_desc_status;
+#if ($desc) {
+#    $incoming_desc_status++;
+#    print STDERR "desc:  $desc\n";
+#} else {
+#    print STDERR "desc is Perl-false\n";
+#}
+
+    my $path_to_parrot = path_to_parrot();
+    my $parrot = File::Spec->join( File::Spec->curdir(), 'parrot' . 
$PConfig{exe} );
+
+    # Strange Win line endings
+    convert_line_endings($expected);
+
+    # set up default description
+    unless ($desc) {
+        ( undef, my $file, my $line ) = caller();
+        $desc = "($file line $line)";
+    }
+#unless ($incoming_desc_status) {
+#    if ($desc) {
+#        print STDERR "desc is now:  $desc\n";
+#    } else {
+#        print STDERR "desc is still Perl-false\n";
+#    }
+#}
+
+    # $test_no will be part of temporary file
+    my $test_no = $builder->current_test() + 1;
+
+    # Name of the file where output is written.
+    # Switch to a different extension when we are generating code.
+    my $out_f = per_test( '.out', $test_no );
+
+    # Name of the file with test code.
+    # This depends on which kind of code we are testing.
+    my $code_f;
+    if ( $func =~ m/^pir_.*?output/ ) {
+        $code_f = per_test( '.pir', $test_no );
+    }
+    elsif ( $func =~ m/^pasm_.*?output_/ ) {
+        $code_f = per_test( '.pasm', $test_no );
+    }
+    elsif ( $func =~ m/^pbc_.*?output_/ ) {
+        $code_f = per_test( '.pbc', $test_no );
+    }
+    else {
+        die "Unknown test function: $func";
+    }
+    $code_f = File::Spec->rel2abs($code_f);
+    my $code_basef = basename($code_f);
+
+    # native tests are just run, others need to write code first
+    if ( $code_f !~ /\.pbc$/ ) {
+        write_code_to_file( $code, $code_f );
+    }
+
+    # honor opt* filename to actually run code with -Ox
+    my $args = $ENV{TEST_PROG_ARGS} || '';
+    my $opt = $code_basef =~ m!opt(.)! ? "-O$1" : "";
+    $args .= " $opt";
+
+    my $run_exec = 0;
+    if ( $args =~ s/--run-exec// ) {
+        $run_exec = 1;
+        my $pbc_f = per_test( '.pbc', $test_no );
+        my $o_f = per_test( '_pbcexe' . $PConfig{o}, $test_no );
+        my $exe_f =
+            per_test( '_pbcexe' . $PConfig{exe}, $test_no )
+            ;    # Make cleanup and svn:ignore more simple
+        my $exec_f = per_test( '_pbcexe', $test_no );    # Make cleanup and 
svn:ignore more simple
+        $exe_f =~ [EMAIL PROTECTED]/:[EMAIL PROTECTED]@g;
+
+        # RT#43751 put this into sub generate_pbc()
+        run_command(
+            qq{$parrot $args -o $pbc_f "$code_f"},
+            CD     => $path_to_parrot,
+            STDOUT => $out_f,
+            STDERR => $out_f
+        );
+        if ( -e $pbc_f ) {
+            run_command(
+                qq{$parrot $args -o $o_f "$pbc_f"},
+                CD     => $path_to_parrot,
+                STDOUT => $out_f,
+                STDERR => $out_f
+            );
+            if ( -e $o_f ) {
+                run_command(
+                    qq{$PConfig{make} EXEC=$exec_f exec},
+                    CD     => $path_to_parrot,
+                    STDOUT => $out_f,
+                    STDERR => $out_f
+                );
+                if ( -e $exe_f ) {
+                    run_command(
+                        $exe_f,
+                        CD     => $path_to_parrot,
+                        STDOUT => $out_f,
+                        STDERR => $out_f
+                    );
+                }
+            }
+        }
+    }
+
+    my ( $exit_code, $cmd );
+    unless ($run_exec) {
+        if ( $args =~ s/--run-pbc// || $args =~ s/-r // ) {
+            my $pbc_f = per_test( '.pbc', $test_no );
+            $args = qq{$args -o "$pbc_f"};
+
+            # In this case, we need to execute more than one command. Instead
+            # of a single scalar, build an array of commands.
+            $cmd = [ qq{$parrot $args "$code_f"}, qq{$parrot "$pbc_f"}, ];
+        }
+        else {
+            $cmd = qq{$parrot $args "$code_f"};
+        }
+        $exit_code = run_command(
+            $cmd,
+            CD     => $path_to_parrot,
+            STDOUT => $out_f,
+            STDERR => $out_f
+        );
+    }
+
+    return ( $out_f, $cmd, $exit_code );
+}
+
+sub _report_odd_hash {
+    my $warning = shift;
+    if ( $warning =~ m/Odd number of elements in hash assignment/ ) {
+        require Carp;
+        my @args = DB::uplevel_args();
+        shift @args;
+        my $func = ( caller() )[2];
+
+        Carp::carp("Odd $func invocation; probably missing description for 
TODO test");
+    }
+    else {
+        warn $warning;
+    }
+}
+
+sub _handle_test_options {
+    my $options = shift;
+    # To run the command in a different directory.
+    my $chdir = delete $options->{CD} || '';
+
+    while ( my ( $key, $value ) = each %{ $options } ) {
+        $key =~ m/^STD(OUT|ERR)$/
+            or die "I don't know how to redirect '$key' yet!";
+        my $strvalue = "$value";        # filehandle `eq' string will fail
+        $value = File::Spec->devnull()  # on older perls, so stringify it
+            if $strvalue eq '/dev/null';
+    }
+
+    my $out = $options->{'STDOUT'} || '';
+    my $err = $options->{'STDERR'} || '';
+    ##  File::Temp overloads 'eq' here, so we need the quotes. RT #58840
+    if ( $out and $err and "$out" eq "$err" ) {
+        $err = '&STDOUT';
+    }
+    return ( $out, $err, $chdir );
+}
+
+sub _handle_blib_path {
+    my $blib_path =
+        File::Spec->catfile( $PConfig{build_dir}, 'blib', 'lib' );
+    if ($^O eq 'cygwin') {
+        $ENV{PATH} = $blib_path . ':' . $ENV{PATH};
+    }
+    elsif ($^O eq 'MSWin32') {
+        $ENV{PATH} = $blib_path . ';' . $ENV{PATH};
+    }
+    else {
+        $ENV{LD_RUN_PATH} = $blib_path;
+    }
+}
+
+sub _handle_command {
+    my $command = shift;
+    $command = [$command] unless ( ref $command );
+
+    if ( defined $ENV{VALGRIND} ) {
+        $_ = "$ENV{VALGRIND} $_" for (@$command);
+    }
+    return $command;
+}
+
+sub _prepare_exit_message {
+    my $exit_code = $?;
+    return (
+          ( $exit_code < 0 )    ? $exit_code
+        : ( $exit_code & 0xFF ) ? "[SIGNAL $exit_code]"
+        : ( $? >> 8 )
+    );
+}
+
 sub generate_languages_functions {
 
     my %test_map = (
@@ -1084,7 +1084,7 @@
 =item C<example_output_isnt( $example_f, $expected, @todo )>
 
 Determines the language, PIR or PASM, from the extension of C<$example_f> and 
runs
-the appropriate C<^language_output_(is|kike|isnt)> sub.
+the appropriate C<^language_output_(is|like|isnt)> sub.
 C<$example_f> is used as a description, so don't pass one.
 
 =item C<skip($why, $how_many)>

Reply via email to