mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
move ctest handling from mtr to a separate suite
This commit is contained in:
43
mysql-test/suite/unit/suite.pm
Normal file
43
mysql-test/suite/unit/suite.pm
Normal file
@ -0,0 +1,43 @@
|
||||
package My::Suite::CTest;
|
||||
use Cwd;
|
||||
|
||||
@ISA = qw(My::Suite);
|
||||
|
||||
sub list_cases {
|
||||
my ($self) = @_;
|
||||
keys %{$self->{ctests}}
|
||||
}
|
||||
|
||||
sub start_test {
|
||||
my ($self, $tinfo)= @_;
|
||||
my $args=[ ];
|
||||
|
||||
my $oldpwd=getcwd();
|
||||
chdir $::opt_vardir;
|
||||
my $proc=My::SafeProcess->new
|
||||
(
|
||||
name => $tinfo->{shortname},
|
||||
path => $self->{ctests}->{$tinfo->{shortname}},
|
||||
args => \$args,
|
||||
append => 1,
|
||||
output => $::path_current_testlog,
|
||||
error => $::path_current_testlog,
|
||||
);
|
||||
chdir $oldpwd;
|
||||
$proc;
|
||||
}
|
||||
|
||||
{
|
||||
return "Not configured to run ctest" unless -f "../CTestTestfile.cmake";
|
||||
my ($ctest_vs)= $opt_vs_config ? "--build-config $opt_vs_config" : "";
|
||||
my (@ctest_list)= `cd .. && ctest $opt_vs_config --show-only --verbose`;
|
||||
return "No ctest" if $?;
|
||||
|
||||
my ($command, %tests);
|
||||
for (@ctest_list) {
|
||||
chomp;
|
||||
$command= $' if /^\d+: Test command: +/;
|
||||
$tests{$'}=$command if /^ +Test +#\d+: +/;
|
||||
}
|
||||
bless { ctests => { %tests } };
|
||||
}
|
Reference in New Issue
Block a user