Hopefully better skipping of the Complete.t tests
Jarkko Hietaniemi [Fri, 14 Sep 2001 14:46:36 +0000 (14:46 +0000)]
in case of not a tty.

p4raw-id: //depot/perl@12021

lib/Term/Complete.t
t/op/stat.t

index 99f206e..3f8cb20 100644 (file)
@@ -1,7 +1,6 @@
 #!./perl
 
 BEGIN {
-       print "1..0 # Skip: not a tty\n" unless -t STDOUT;
        chdir 't' unless -d 't';
        @INC = '../lib';
 }
@@ -10,6 +9,17 @@ use warnings;
 use Test::More tests => 8;
 use vars qw( $Term::Complete::complete $complete );
 
+SKIP: {
+    skip('PERL_SKIP_TTY_TEST', 8) if $ENV{PERL_SKIP_TTY_TEST};
+    
+    my $TTY;
+    if ($^O eq 'rhapsody' && -c "/dev/ttyp0") { $TTY = "/dev/ttyp0" }
+    elsif (-c "/dev/tty")                     { $TTY = "/dev/tty"   }
+    if (defined $TTY) {
+       open(TTY, $TTY)               or die "open $TTY failed: $!";
+       skip("$TTY not a tty", 8)     if defined $TTY && ! -t TTY;
+    }
+
 use_ok( 'Term::Complete' );
 
 *complete = \$Term::Complete::complete;
@@ -100,3 +110,6 @@ sub PRINT {
        my $self = shift;
        ($$self .= join('', @_)) =~ s/\s+/./gm;
 }
+
+} # end of SKIP, end of tests
+
index 088c221..dc47ef3 100755 (executable)
@@ -208,14 +208,11 @@ tty_test:
 # can be set to skip the tests that need a tty.
 unless($ENV{PERL_SKIP_TTY_TEST}) {
     if ($Is_MSWin32 || $Is_NetWare) {
-       print "ok 36\n";
-       print "ok 37\n";
+       print "ok 36 # Skip: $^O\n";
+       print "ok 37 # Skip: $^O\n";
     }
     else {
-       my $TTY = "/dev/tty";
-
-       $TTY = "/dev/ttyp0" if $^O eq 'rhapsody';
-
+       my $TTY = $^O eq 'rhapsody' ? "/dev/ttyp0" : "/dev/tty";
        if (defined $TTY) {
            unless (open(TTY, $TTY)) {
                print STDERR "Can't open $TTY--run t/TEST outside of make.\n";
@@ -232,10 +229,7 @@ unless($ENV{PERL_SKIP_TTY_TEST}) {
     if (-t)       {print "ok 39\n";} else {print "not ok 39\n";}
 }
 else {
-    print "ok 36\n";
-    print "ok 37\n";
-    print "ok 38\n";
-    print "ok 39\n";
+    for (36..39) { print "ok $_ # Skip: PERL_SKIP_TTY_TEST\n" }
 }
 open(null,"/dev/null");
 if (! -t null || -e '/xenix' || $^O eq 'machten' || $Is_MSWin32 || $Is_NetWare)