mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#47526 unit.pl fails to execute binaries when using Test::Harness 3.10
- Rewrite unit.pl so it prefers to use TAP::Harness directly. - Also add support for --verbose --noverbose
This commit is contained in:
@ -14,8 +14,8 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
use Test::Harness qw(&runtests $verbose);
|
|
||||||
use File::Find;
|
use File::Find;
|
||||||
|
use Getopt::Long;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
@ -35,6 +35,11 @@ unit - Run unit tests in directory
|
|||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
my $opt_verbose;
|
||||||
|
GetOptions (
|
||||||
|
"verbose!" => \$opt_verbose,
|
||||||
|
) or die "Failed to parse options!: $!";
|
||||||
|
|
||||||
my $cmd = shift;
|
my $cmd = shift;
|
||||||
|
|
||||||
if (defined $cmd && exists $dispatch{$cmd}) {
|
if (defined $cmd && exists $dispatch{$cmd}) {
|
||||||
@ -51,6 +56,21 @@ Run all unit tests in the current directory and all subdirectories.
|
|||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
# Test::Harness have been extensively rewritten in newer perl
|
||||||
|
# versions and is now just a backward compatibility wrapper
|
||||||
|
# (with a bug causing the HARNESS_PERL_SWITCHES to be mangled)
|
||||||
|
# Prefer to use TAP::Harness directly if available
|
||||||
|
if (eval "use TAP::Harness; 1") {
|
||||||
|
eval 'sub NEW_HARNESS { 1 }';
|
||||||
|
warn "using TAP::Harness";
|
||||||
|
} else {
|
||||||
|
eval "use Test::Harness; 1" or die "couldn't find Test::Harness!";
|
||||||
|
eval 'sub NEW_HARNESS { 0 }';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub _find_test_files (@) {
|
sub _find_test_files (@) {
|
||||||
my @dirs = @_;
|
my @dirs = @_;
|
||||||
my @files;
|
my @files;
|
||||||
@ -92,8 +112,19 @@ sub run_cmd (@) {
|
|||||||
if (@files > 0) {
|
if (@files > 0) {
|
||||||
# Removing the first './' from the file names
|
# Removing the first './' from the file names
|
||||||
foreach (@files) { s!^\./!! }
|
foreach (@files) { s!^\./!! }
|
||||||
$ENV{'HARNESS_PERL_SWITCHES'} .= q" -e 'exec @ARGV'";
|
|
||||||
runtests @files;
|
if (NEW_HARNESS())
|
||||||
|
{
|
||||||
|
my %args = ( exec => [ ], verbosity => $opt_verbose );
|
||||||
|
my $harness = TAP::Harness->new( \%args );
|
||||||
|
$harness->runtests(@files);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ENV{'HARNESS_VERBOSE'} = $opt_verbose;
|
||||||
|
$ENV{'HARNESS_PERL_SWITCHES'} .= ' -e "exec @ARGV"';
|
||||||
|
runtests(@files);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user