This is always of those fun problems you can never reproduce on your own, by hand, but is always happening. Nearly every smoke includes the following failure.
../lib/Module/Build/t/extend.t..........FAILED--expected 64 tests, saw 59
Running this test with both TEST and harness by hand don't answer the question
of
why. Running with verbose gives me thoughts though.
ok 59 - Do not allow default-less prompt() for unattended builds
Is this a question?
ok 60 - prompt() doesn't require default for interactive builds
Say yes
ok 61 - y_n() doesn't require default for interactive build
Is this a question
ok 62 - default for prompt() without a default is ''
Is this a question [y] y
ok 63 - prompt() with a default
Is this a question [y] y
ok 64 - y_n() with a default
ok
My guess is that the lines are going to STDOUT and getting picked up by
the screen scraping that's happening in TEST. My hope is that by adding
"#"s to the start of those prompts the tests will start passing. It works
when I run "make test" from a command-line, but the smokes will be the real
test.
Steve Peters
[EMAIL PROTECTED]
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.
Affected files ...
... //depot/perl/lib/Module/Build/t/extend.t#3 edit
Differences ...
==== //depot/perl/lib/Module/Build/t/extend.t#3 (text) ====
@@ -230,20 +230,20 @@
$ENV{PERL_MM_USE_DEFAULT} = 1;
- eval{ $mb->y_n("Is this a question?") };
+ 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?') };
+ 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;
- $ans = $mb->prompt('Is this a question?');
+ $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');
+ $ans = $mb->y_n('# Say yes');
print "\n"; # fake <enter> after input
ok $ans, "y_n() doesn't require default for interactive build";
@@ -251,13 +251,13 @@
# Test Defaults
*{Module::Build::_readline} = sub { '' };
- $ans = $mb->prompt("Is this a question");
+ $ans = $mb->prompt("# Is this a question");
is $ans, '', "default for prompt() without a default is ''";
- $ans = $mb->prompt("Is this a question", 'y');
+ $ans = $mb->prompt("# Is this a question", 'y');
is $ans, 'y', " prompt() with a default";
- $ans = $mb->y_n("Is this a question", 'y');
+ $ans = $mb->y_n("# Is this a question", 'y');
ok $ans, " y_n() with a default";
}
signature.asc
Description: Digital signature
