summaryrefslogtreecommitdiff
path: root/mysql-test/suite/unit
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-07-16 09:59:15 +0200
committerSergei Golubchik <sergii@pisem.net>2011-07-16 09:59:15 +0200
commit011cbe9088bdba6a249f795f395b3cbbb9f791dc (patch)
treeb24aa3affb1986520817c0e7e97f4907e5d33f20 /mysql-test/suite/unit
parent73a46b3eb954d92b1032d1c458ee349247800def (diff)
downloadmariadb-git-011cbe9088bdba6a249f795f395b3cbbb9f791dc.tar.gz
move ctest handling from mtr to a separate suite
Diffstat (limited to 'mysql-test/suite/unit')
-rw-r--r--mysql-test/suite/unit/my.cnf8
-rw-r--r--mysql-test/suite/unit/suite.pm43
2 files changed, 51 insertions, 0 deletions
diff --git a/mysql-test/suite/unit/my.cnf b/mysql-test/suite/unit/my.cnf
new file mode 100644
index 00000000000..ca0bf44a81d
--- /dev/null
+++ b/mysql-test/suite/unit/my.cnf
@@ -0,0 +1,8 @@
+#
+# This file is intentionally left empty
+#
+
+#
+# It has not a single [mysql] section, which means that mtr
+# will not start any mysqld's for tests in this suite
+#
diff --git a/mysql-test/suite/unit/suite.pm b/mysql-test/suite/unit/suite.pm
new file mode 100644
index 00000000000..7d843200ad1
--- /dev/null
+++ b/mysql-test/suite/unit/suite.pm
@@ -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 } };
+}