Description:
When running MTR with --only-big-test, tests that include both include/big_test.inc and include/no_valgrind_without_big.inc are incorrectly skipped with the message "Not a big test". These tests cannot be run at all — without the flag they are skipped as "Test needs 'big-test' or 'only-big-test' option", and with the flag they are skipped as "Not a big test".
The issue is introduced with
https://github.com/mysql/mysql-server/commit/164b8002de918
How to repeat:
./mysql-test/mtr --only-big-test --suite=encryption encryption.mysqldump
Output:
encryption.mysqldump [ skipped ] Not a big test
./mysql-test/mtr --suite=encryption encryption.mysqldump
Output:
encryption.mysqldump [ skipped ] Test needs 'big-test' or 'only-big-test' option
Suggested fix:
Add !$tinfo->{'big_test'} to the second branch so that tests marked as big are never skipped:
if ($::opt_only_big_test) {
if ((!$tinfo->{'no_valgrind_without_big'} and !$tinfo->{'big_test'}) or
($tinfo->{'no_valgrind_without_big'} and !$tinfo->{'big_test'} and !$::opt_valgrind)) {
skip_test($tinfo, "Not a big test");
return $tinfo;
}
}