mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-09-11 11:25:40 +03:00
stop using 'subtest' because it doesn't work for everyone, e.g. Hieu reports it doesn't work on a Mac even with an up-to-date Test::Simple module
git-svn-id: https://mosesdecoder.svn.sourceforge.net/svnroot/mosesdecoder/trunk@4144 1f5c12ca-751b-0410-a591-d2e778427230
This commit is contained in:
parent
22da5782f3
commit
436a285f18
@ -187,7 +187,7 @@ sub runDetokenizerTest {
|
||||
# $stdinFile, if defined, is a file to send to the command via STDIN
|
||||
# $buildCommandRoutineReference is a reference to a zero-argument subroutine that returns the
|
||||
# system command to run in the form of an array reference
|
||||
# $validationRoutineReference is a reference to a zero-argument subroutine that makes some calls
|
||||
# $validationRoutineReference is a reference to a zero-argument subroutine that makes exactly one call
|
||||
# to ok() or similar to validate the contents of the output directory
|
||||
# $separateStdoutFromStderr is an optional boolean argument; if omitted or false, the command's
|
||||
# STDOUT and STDERR are mixed together in out output file called
|
||||
@ -200,31 +200,27 @@ sub runDetokenizerTest {
|
||||
sub runTest {
|
||||
my ($testName, $outputDir, $stdinFile, $buildCommandRoutineReference, $validationRoutineReference, $separateStdoutFromStderr, $failureExplanation) = @_;
|
||||
|
||||
# Note: You may need to upgrade your version of the Perl module Test::Simple in order to get this 'subtest' thing to work. (Perl modules are installed/upgraded using CPAN; google 'how do I upgrade a perl module')
|
||||
subtest $testName => sub {
|
||||
my ($stdoutFile, $stderrFile);
|
||||
if ($separateStdoutFromStderr) {
|
||||
$stdoutFile = catfile($outputDir, "stdout.txt");
|
||||
$stderrFile = catfile($outputDir, "stderr.txt");
|
||||
} else {
|
||||
$stdoutFile = catfile($outputDir, "stdout-and-stderr.txt");
|
||||
$stderrFile = $stdoutFile;
|
||||
my ($stdoutFile, $stderrFile);
|
||||
if ($separateStdoutFromStderr) {
|
||||
$stdoutFile = catfile($outputDir, "stdout.txt");
|
||||
$stderrFile = catfile($outputDir, "stderr.txt");
|
||||
} else {
|
||||
$stdoutFile = catfile($outputDir, "stdout-and-stderr.txt");
|
||||
$stderrFile = $stdoutFile;
|
||||
}
|
||||
|
||||
my $commandRef = $buildCommandRoutineReference->();
|
||||
my $exitStatus = &runVerbosely($commandRef, $stdinFile, $stdoutFile, $stderrFile);
|
||||
return fail($testName.": command exited with status ".$exitStatus) unless $exitStatus == 0;
|
||||
|
||||
if (defined $failureExplanation) {
|
||||
TODO: {
|
||||
local $TODO = $failureExplanation;
|
||||
$validationRoutineReference->();
|
||||
}
|
||||
|
||||
my $commandRef = $buildCommandRoutineReference->();
|
||||
my $exitStatus = &runVerbosely($commandRef, $stdinFile, $stdoutFile, $stderrFile);
|
||||
return unless is($exitStatus, 0, $testName.": command exited with status 0");
|
||||
|
||||
if (defined $failureExplanation) {
|
||||
TODO: {
|
||||
local $TODO = $failureExplanation;
|
||||
$validationRoutineReference->();
|
||||
}
|
||||
} else {
|
||||
$validationRoutineReference->();
|
||||
|
||||
}
|
||||
};
|
||||
} else {
|
||||
$validationRoutineReference->();
|
||||
}
|
||||
}
|
||||
|
||||
# Announce that we're going to run the given command, then run it.
|
||||
|
Loading…
Reference in New Issue
Block a user