On Thu, May 04, 2006 at 05:54:57PM -0400, Randy W. Sims wrote: > Steve Peters wrote: > >>Change 28045 by [EMAIL PROTECTED] on 2006/05/02 02:47:43 > >> > >> Escape prompts with #'s to avoid causing tests to fail from > >> the unexpected output. > >> > > > >Since the above change there's been no change in the results, and, for > >me at least, no change in my inability to replicate this problem. > >Interestingly enough, this error didn't occur with my Linux icc smoke. > > > >Is anyone else able to replicate this problem at all? > > Sorry, I've been away from my email for the last couple of days, and I > haven't been watching the smokes. I'll try to take a look at this > tonight and see if I can reproduce it on any of my other systems (I > didn't see it when testing on Ubuntu linux). >
I just figured out the problem a few moments ago and have committed the fix to bleadperl. The problem was that the test depended on STDIN input, but when running a smoke through cron, STDIN is closed. The change skips the failing tests if "fileno(STDIN)" returns undef. Can you all please apply this patch back to Module::Build? Thanks, Steve Peters [EMAIL PROTECTED] Change 28108 by [EMAIL PROTECTED] on 2006/05/05 16:26:48 These Module::Build tests depended on STDIN. Unfortunately, cron closes STDIN, so these build failures were only seen while running smokes through cron. Affected files ... ... //depot/perl/lib/Module/Build/t/extend.t#4 edit Differences ... ==== //depot/perl/lib/Module/Build/t/extend.t#4 (text) ==== @@ -227,38 +227,41 @@ 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
signature.asc
Description: Digital signature