These Module::Build tests depended on STDIN. Unfortunately, cron
Steve Peters [Fri, 5 May 2006 16:26:48 +0000 (16:26 +0000)]
closes STDIN, so these build failures were only seen while
running smokes through cron.

p4raw-id: //depot/perl@28108

lib/Module/Build/t/extend.t

index 9a76851..2c4a503 100644 (file)
@@ -227,38 +227,41 @@ print "Hello, World!\n";
   eval{ $mb->y_n('Prompt?', 'invalid default') };
   like $@, qr/Invalid default/, "y_n() requires a default of 'y' or 'n'";
 
+  SKIP:{
 
-  $ENV{PERL_MM_USE_DEFAULT} = 1;
+    skip "No available STDIN", 7 unless -t STDIN;
 
-  eval{ $mb->y_n("# Is this a question?") };
-  like $@, qr/ERROR:/, 'Do not allow default-less y_n() for unattended builds';
+    $ENV{PERL_MM_USE_DEFAULT} = 1;
 
-  eval{ $ans = $mb->prompt('# Is this a question?') };
-  like $@, qr/ERROR:/, 'Do not allow default-less prompt() for unattended builds';
+    eval{ $mb->y_n("# Is this a question?") };
+    like $@, qr/ERROR:/, 'Do not allow default-less y_n() for unattended builds';
 
+    eval{ $ans = $mb->prompt('# Is this a question?') };
+    like $@, qr/ERROR:/, 'Do not allow default-less prompt() for unattended builds';
 
-  $ENV{PERL_MM_USE_DEFAULT} = 0;
+    $ENV{PERL_MM_USE_DEFAULT} = 0;
 
-  $ans = $mb->prompt('# Is this a question?');
-  print "\n"; # fake <enter> after input
-  is $ans, 'y', "prompt() doesn't require default for interactive builds";
+    $ans = $mb->prompt('# Is this a question?');
+    print "\n"; # fake <enter> after input
+    is $ans, 'y', "prompt() doesn't require default for interactive builds";
 
-  $ans = $mb->y_n('# Say yes');
-  print "\n"; # fake <enter> after input
-  ok $ans, "y_n() doesn't require default for interactive build";
+    $ans = $mb->y_n('# Say yes');
+    print "\n"; # fake <enter> after input
+    ok $ans, "y_n() doesn't require default for interactive build";
 
 
-  # Test Defaults
-  *{Module::Build::_readline} = sub { '' };
+    # Test Defaults
+    *{Module::Build::_readline} = sub { '' };
 
-  $ans = $mb->prompt("# Is this a question");
-  is $ans, '', "default for prompt() without a default is ''";
+    $ans = $mb->prompt("# Is this a question");
+    is $ans, '', "default for prompt() without a default is ''";
 
-  $ans = $mb->prompt("# Is this a question", 'y');
-  is $ans, 'y', "  prompt() with a default";
+    $ans = $mb->prompt("# Is this a question", 'y');
+    is $ans, 'y', "  prompt() with a default";
 
-  $ans = $mb->y_n("# Is this a question", 'y');
-  ok $ans, "  y_n() with a default";
+    $ans = $mb->y_n("# Is this a question", 'y');
+    ok $ans, "  y_n() with a default";
+  }
 }
 
 # cleanup