Integrate perlio:
[p5sagit/p5-mst-13.2.git] / t / lib / dprof.t
index 4d6f782..be711f1 100755 (executable)
@@ -2,23 +2,28 @@
 
 BEGIN {
     chdir( 't' ) if -d 't';
-    unshift @INC, '../lib';
+    @INC = '../lib';
+    require Config; import Config;
+    if ($Config{'extensions'} !~ /\bDevel\/DProf\b/){
+      print "1..0 # Skip: Devel::DProf was not built\n";
+      exit 0;
+    }
 }
 
 END {
-    unlink 'tmon.out', 'err';
+    while(-e 'tmon.out' && unlink 'tmon.out') {}
+    while(-e 'err' && unlink 'err') {}
 }
 
 use Benchmark qw( timediff timestr );
 use Getopt::Std 'getopts';
-use Config '%Config';
 getopts('vI:p:');
 
 # -v   Verbose
 # -I   Add to @INC
 # -p   Name of perl binary
 
-@tests = @ARGV ? @ARGV : sort <lib/dprof/*_t lib/dprof/*_v>;  # glob-sort, for OS/2
+@tests = @ARGV ? @ARGV : sort (<lib/dprof/*_t>, <lib/dprof/*_v>);  # glob-sort, for OS/2
 
 $path_sep = $Config{path_sep} || ':';
 $perl5lib = $opt_I || join( $path_sep, @INC );
@@ -42,7 +47,7 @@ sub profile {
        my $opt_d = '-d:DProf';
 
        my $t_start = new Benchmark;
-       open( R, "$perl $opt_d $test |" ) || warn "$0: Can't run. $!\n";
+        open( R, "$perl \"$opt_d\" $test |" ) || warn "$0: Can't run. $!\n";
        @results = <R>;
        close R;
        my $t_total = timediff( new Benchmark, $t_start );
@@ -52,15 +57,17 @@ sub profile {
                print @results
        }
 
-       print timestr( $t_total, 'nop' ), "\n";
+        print '# ',timestr( $t_total, 'nop' ), "\n";
 }
 
 
 sub verify {
        my $test = shift;
 
-       system $perl, '-I../lib', '-I./lib/dprof', $test,
-               $opt_v?'-v':'', '-p', $perl;
+       my $command = $perl.' "-I../lib" "-I./lib/dprof" '.$test;
+       $command .= ' -v' if $opt_v;
+       $command .= ' -p '. $perl;
+       system $command;
 }
 
 
@@ -68,6 +75,7 @@ $| = 1;
 print "1..18\n";
 while( @tests ){
        $test = shift @tests;
+        $test =~ s/\.$// if $^O eq 'VMS';
        if( $test =~ /_t$/i ){
                print "# $test" . '.' x (20 - length $test);
                profile $test;