polardbxengine/mysql-test/suite/xengine_stress/include/rqg.inc

59 lines
1.8 KiB
PHP

#
# Random Query Generator tests
#
# Arguments needed to be set by the test when including this one:
# $GRAMMAR_FILES: space separated list of grammar files
# $DATA_FILE: name of the data file
#
let $MYSQL_BASEDIR = `SELECT @@BASEDIR`;
let RQG_BASE = suite/xengine_stress/rqg;
let TEST_BASE = suite/xengine_stress/t;
let MYSQL_SOCKET = `SELECT @@SOCKET`;
let GRAMMAR_FILES = $GRAMMAR_FILES;
let DATA_FILE = $DATA_FILE;
let TESTDB = $TARGET_DB;
let OTHER_ARGS = $OTHER_ARGS;
let TEST_QUERIES = $RQG_QUERIES;
let TEST_DURATION = $RQG_DURATION;
--disable_query_log
create user sbtest IDENTIFIED WITH mysql_native_password;
grant all privileges on *.* to 'sbtest'@'%';
--enable_query_log
--perl
foreach $grammar_file (split(/ /, $ENV{'GRAMMAR_FILES'})) {
my $rqg_queries = $ENV{'TEST_QUERIES'} ? $ENV{'TEST_QUERIES'} : 2500;
my $rqg_duration = $ENV{'TEST_DURATION'} ? $ENV{'TEST_DURATION'} : 600;
# Errors from the gentest.pl file will be captured in the results file
my $cmd = "RQG_HOME=$ENV{'RQG_BASE'} perl $ENV{'RQG_BASE'}/gentest.pl " .
"--dsn=dbi:mysql:host=:port=:user=sbtest:database=$ENV{'TESTDB'}" .
":mysql_socket=$ENV{'MYSQL_SOCKET'} " .
"--gendata=$ENV{'TEST_BASE'}/$ENV{'DATA_FILE'} " .
"--grammar=$ENV{'TEST_BASE'}/$grammar_file " .
"--threads=20 --queries=".$rqg_queries.
" --duration=".$rqg_duration.
" $ENV{'OTHER_ARGS'} --stage=1 --kill=0 2>&1 >> " .
"$ENV{'MYSQLTEST_VARDIR'}/tmp/$ENV{'TESTDB'}.log";
print "Running test with grammar file $grammar_file\n";
system($cmd);
if ($? != 0) {
print ("Failure running test! Command executed: $cmd\n");
} else {
print ("rqg test success!\n");
system("rm -f $ENV{'MYSQLTEST_VARDIR'}/tmp/$ENV{'TESTDB'}.log");
}
}
EOF
--disable_query_log
drop user 'sbtest'@'%';
--enable_query_log