497
469
# Control what test suites or cases to run
498
470
'force' => \$opt_force,
471
'skip-master-binlog' => \$opt_skip_master_binlog,
472
'skip-slave-binlog' => \$opt_skip_slave_binlog,
499
473
'do-test=s' => \$opt_do_test,
500
474
'start-from=s' => \$opt_start_from,
501
475
'suite|suites=s' => \$opt_suites,
502
476
'skip-rpl' => \$opt_skip_rpl,
503
477
'skip-test=s' => \$opt_skip_test,
478
'big-test' => \$opt_big_test,
504
479
'combination=s' => \@opt_combinations,
505
480
'skip-combination' => \$opt_skip_combination,
508
483
'master_port=i' => \$opt_master_myport,
509
484
'slave_port=i' => \$opt_slave_myport,
510
'memc_port=i' => \$opt_memc_myport,
511
'pbms_port=i' => \$opt_pbms_myport,
512
'rabbitmq_port=i' => \$opt_rabbitmq_myport,
513
'dtr-build-thread=i' => \$opt_dtr_build_thread,
485
'mtr-build-thread=i' => \$opt_mtr_build_thread,
515
487
# Test case authoring
516
488
'record' => \$opt_record,
517
489
'check-testcases' => \$opt_check_testcases,
518
490
'mark-progress' => \$opt_mark_progress,
520
# Extra options used when starting drizzled
521
'drizzled=s' => \@opt_extra_drizzled_opt,
492
# Extra options used when starting mysqld
493
'mysqld=s' => \@opt_extra_mysqld_opt,
522
494
'engine=s' => \$opt_engine,
524
496
# Run test on running server
525
497
'extern' => \$opt_extern,
528
'subunit' => \$opt_subunit,
531
500
'gdb' => \$opt_gdb,
533
501
'client-gdb' => \$opt_client_gdb,
534
'client-dbx' => \$opt_client_dbx,
535
502
'manual-gdb' => \$opt_manual_gdb,
536
'manual-dbx' => \$opt_manual_dbx,
537
503
'manual-debug' => \$opt_manual_debug,
538
504
'ddd' => \$opt_ddd,
539
505
'client-ddd' => \$opt_client_ddd,
638
596
# Find the absolute path to the test directory
639
597
if ( ! $opt_testdir )
641
$glob_drizzle_test_dir= cwd();
599
$glob_mysql_test_dir= cwd();
645
$glob_drizzle_test_dir= $opt_testdir;
603
$glob_mysql_test_dir= $opt_testdir;
647
$default_vardir= "$glob_drizzle_test_dir/var";
648
$default_top_srcdir= "$glob_drizzle_test_dir/..";
649
$default_top_builddir= "$glob_drizzle_test_dir/..";
605
$default_vardir= "$glob_mysql_test_dir/var";
651
if ( ! $opt_suitepath )
653
$glob_suite_path= "$glob_drizzle_test_dir/../plugin";
657
$glob_suite_path= $opt_suitepath;
659
607
# In most cases, the base directory we find everything relative to,
660
# is the parent directory of the "drizzle-test" directory. For source
608
# is the parent directory of the "mysql-test" directory. For source
661
609
# distributions, TAR binary distributions and some other packages.
662
$glob_basedir= dirname($glob_drizzle_test_dir);
664
# Figure out which tests we are going to run
665
my $suitedir= "$glob_drizzle_test_dir/suite";
668
opendir(SUITE_DIR, $suitedir)
669
or dtr_error("can't open directory \"$suitedir\": $!");
671
while ( my $elem= readdir(SUITE_DIR) )
673
next if $elem eq ".";
674
next if $elem eq "..";
675
next if $elem eq "big"; # Eats up too much disk
676
next if $elem eq "large_tests"; # Eats up too much disk
677
next if $elem eq "stress"; # Currently fails
678
next if $elem eq "broken"; # Old broken test, mainly unsupported featurs
680
my $local_dir= "$suitedir/$elem";
682
next unless -d $local_dir;
683
next unless -d "$local_dir/t"; # We want to make sure it has tests
684
next unless -d "$local_dir/r"; # Ditto, results
686
$opt_suites_default.= ",$elem";
691
usage("") if $opt_usage;
610
$glob_basedir= dirname($glob_mysql_test_dir);
693
612
# In the RPM case, binaries and libraries are installed in the
694
613
# default system locations, instead of having our own private base
695
# directory. And we install "/usr/share/drizzle-test". Moving up one
696
# more directory relative to "drizzle-test" gives us a usable base
614
# directory. And we install "/usr/share/mysql-test". Moving up one
615
# more directory relative to "mysql-test" gives us a usable base
697
616
# directory for RPM installs.
698
617
if ( ! $source_dist and ! -d "$glob_basedir/bin" )
711
630
$glob_builddir="..";
714
# Expect drizzle-bench to be located adjacent to the source tree, by default
715
$glob_drizzle_bench_dir= "$glob_basedir/../drizzle-bench"
716
unless defined $glob_drizzle_bench_dir;
717
$glob_drizzle_bench_dir= undef
718
unless -d $glob_drizzle_bench_dir;
720
$glob_timers= dtr_init_timers();
633
# Expect mysql-bench to be located adjacent to the source tree, by default
634
$glob_mysql_bench_dir= "$glob_basedir/../mysql-bench"
635
unless defined $glob_mysql_bench_dir;
636
$glob_mysql_bench_dir= undef
637
unless -d $glob_mysql_bench_dir;
640
$source_dist ? $glob_mysql_test_dir : $glob_basedir;
642
$glob_timers= mtr_init_timers();
723
# Find the drizzled executable to be able to find the drizzled version
645
# Find the mysqld executable to be able to find the mysqld version
724
646
# number as early as possible
727
649
# Look for the client binaries directory
728
$path_client_bindir= dtr_path_exists("$glob_builddir/client",
650
$path_client_bindir= mtr_path_exists("$glob_builddir/client",
729
651
"$glob_basedir/client",
730
652
"$glob_basedir/bin");
732
654
if (!$opt_extern)
734
$exe_drizzled= dtr_exe_exists ("$glob_basedir/drizzled/drizzled",
656
$exe_drizzled= mtr_exe_exists ("$glob_basedir/drizzled/drizzled",
735
657
"$path_client_bindir/drizzled",
736
658
"$glob_basedir/libexec/drizzled",
737
659
"$glob_basedir/bin/drizzled",
738
660
"$glob_basedir/sbin/drizzled",
739
661
"$glob_builddir/drizzled/drizzled");
741
# Use the drizzled found above to find out what features are available
742
collect_drizzled_features();
663
# Use the mysqld found above to find out what features are available
664
collect_mysqld_features();
746
$drizzled_variables{'port'}= 4427;
668
$mysqld_variables{'port'}= 4427;
749
671
if (!$opt_engine)
893
842
# --------------------------------------------------------------------------
894
843
if ( $opt_gdb || $opt_client_gdb || $opt_ddd || $opt_client_ddd ||
895
844
$opt_manual_gdb || $opt_manual_ddd || $opt_manual_debug ||
896
$opt_debugger || $opt_client_debugger || $opt_gdb || $opt_manual_gdb)
845
$opt_debugger || $opt_client_debugger )
898
847
# Indicate that we are using debugger
899
848
$glob_debugger= 1;
900
849
if ( $opt_extern )
902
dtr_error("Can't use --extern when using debugger");
851
mtr_error("Can't use --extern when using debugger");
906
855
# --------------------------------------------------------------------------
907
856
# Check if special exe was selected for master or slave
908
857
# --------------------------------------------------------------------------
909
$exe_master_drizzled= $exe_master_drizzled || $exe_drizzled;
910
$exe_slave_drizzled= $exe_slave_drizzled || $exe_drizzled;
858
$exe_master_mysqld= $exe_master_mysqld || $exe_drizzled;
859
$exe_slave_mysqld= $exe_slave_mysqld || $exe_drizzled;
912
861
# --------------------------------------------------------------------------
913
862
# Check valgrind arguments
914
863
# --------------------------------------------------------------------------
915
864
if ( $opt_valgrind or $opt_valgrind_path or @valgrind_args)
917
dtr_report("Turning on valgrind for all executables");
866
mtr_report("Turning on valgrind for all executables");
918
867
$opt_valgrind= 1;
919
$opt_valgrind_drizzled= 1;
868
$opt_valgrind_mysqld= 1;
920
869
$opt_valgrind_drizzletest= 1;
921
$ENV{'VALGRIND_RUN'} = '1';
923
elsif ( $opt_valgrind_drizzled )
871
elsif ( $opt_valgrind_mysqld )
925
dtr_report("Turning on valgrind for drizzled(s) only");
873
mtr_report("Turning on valgrind for mysqld(s) only");
926
874
$opt_valgrind= 1;
928
876
elsif ( $opt_valgrind_drizzletest )
930
dtr_report("Turning on valgrind for drizzletest and drizzle_client_test only");
933
elsif ( $opt_valgrind_drizzleslap )
935
dtr_report("Turning on valgrind for drizzleslap only");
878
mtr_report("Turning on valgrind for drizzletest and drizzle_client_test only");
936
879
$opt_valgrind= 1;
939
882
if ( $opt_callgrind )
941
dtr_report("Turning on valgrind with callgrind for drizzled(s)");
884
mtr_report("Turning on valgrind with callgrind for mysqld(s)");
942
885
$opt_valgrind= 1;
943
$opt_valgrind_drizzled= 1;
886
$opt_valgrind_mysqld= 1;
945
888
# Set special valgrind options unless options passed on command line
946
889
push(@valgrind_args, "--trace-children=yes")
947
890
unless @valgrind_args;
952
dtr_report("Valgrind with Massif tool for drizzled(s)");
954
$opt_valgrind_drizzled= 1;
957
893
if ( $opt_valgrind )
959
895
# Set valgrind_options to default unless already defined
960
896
push(@valgrind_args, @default_valgrind_args)
961
897
unless @valgrind_args;
963
dtr_report("Running valgrind with options \"",
899
mtr_report("Running valgrind with options \"",
964
900
join(" ", @valgrind_args), "\"");
927
# On QNX, /tmp/dir/master.sock and /tmp/dir//master.sock seem to be
928
# considered different, so avoid the extra slash (/) in the socket
930
my $sockdir = $opt_tmpdir;
933
# On some operating systems, there is a limit to the length of a
934
# UNIX domain socket's path far below PATH_MAX, so try to avoid long
936
$sockdir = tempdir(CLEANUP => 0) if ( length($sockdir) >= 70 );
996
path_myddir => "$opt_vardir/master-data",
997
path_myerr => "$opt_vardir/log/master.err",
998
path_pid => "$opt_vardir/run/master.pid",
999
path_sock => "$opt_vardir/master.sock",
1000
port => $opt_master_myport,
1001
secondary_port => $opt_master_myport + $secondary_port_offset,
1002
start_timeout => 400, # enough time create innodb tables
1003
cluster => 0, # index in clusters list
943
path_myddir => "$opt_vardir/master-data",
944
path_myerr => "$opt_vardir/log/master.err",
945
path_pid => "$opt_vardir/run/master.pid",
946
path_sock => "$sockdir/master.sock",
947
port => $opt_master_myport,
948
start_timeout => 400, # enough time create innodb tables
949
cluster => 0, # index in clusters list
1012
path_myddir => "$opt_vardir/master1-data",
1013
path_myerr => "$opt_vardir/log/master1.err",
1014
path_pid => "$opt_vardir/run/master1.pid",
1015
path_sock => "$opt_vardir/master1.sock",
1016
port => $opt_master_myport + 1,
1017
secondary_port => $opt_master_myport + 1 + $secondary_port_offset,
1018
start_timeout => 400, # enough time create innodb tables
1019
cluster => 0, # index in clusters list
958
path_myddir => "$opt_vardir/master1-data",
959
path_myerr => "$opt_vardir/log/master1.err",
960
path_pid => "$opt_vardir/run/master1.pid",
961
path_sock => "$sockdir/master1.sock",
962
port => $opt_master_myport + 1,
963
start_timeout => 400, # enough time create innodb tables
964
cluster => 0, # index in clusters list
1028
path_myddir => "$opt_vardir/slave-data",
1029
path_myerr => "$opt_vardir/log/slave.err",
1030
path_pid => "$opt_vardir/run/slave.pid",
1031
path_sock => "$opt_vardir/slave.sock",
1032
port => $opt_slave_myport,
1033
secondary_port => $opt_slave_myport + $secondary_port_offset,
1034
start_timeout => 400,
1035
cluster => 1, # index in clusters list
973
path_myddir => "$opt_vardir/slave-data",
974
path_myerr => "$opt_vardir/log/slave.err",
975
path_pid => "$opt_vardir/run/slave.pid",
976
path_sock => "$sockdir/slave.sock",
977
port => $opt_slave_myport,
978
start_timeout => 400,
980
cluster => 1, # index in clusters list
1044
path_myddir => "$opt_vardir/slave1-data",
1045
path_myerr => "$opt_vardir/log/slave1.err",
1046
path_pid => "$opt_vardir/run/slave1.pid",
1047
path_sock => "$opt_vardir/slave1.sock",
1048
port => $opt_slave_myport + 1,
1049
secondary_port => $opt_slave_myport + 1 + $secondary_port_offset,
1050
start_timeout => 300,
1051
cluster => -1, # index in clusters list
989
path_myddir => "$opt_vardir/slave1-data",
990
path_myerr => "$opt_vardir/log/slave1.err",
991
path_pid => "$opt_vardir/run/slave1.pid",
992
path_sock => "$sockdir/slave1.sock",
993
port => $opt_slave_myport + 1,
994
start_timeout => 300,
995
cluster => -1, # index in clusters list
1060
path_myddir => "$opt_vardir/slave2-data",
1061
path_myerr => "$opt_vardir/log/slave2.err",
1062
path_pid => "$opt_vardir/run/slave2.pid",
1063
path_sock => "$opt_vardir/slave2.sock",
1064
port => $opt_slave_myport + 2,
1065
secondary_port => $opt_slave_myport + 2 + $secondary_port_offset,
1066
start_timeout => 300,
1067
cluster => -1, # index in clusters list
1004
path_myddir => "$opt_vardir/slave2-data",
1005
path_myerr => "$opt_vardir/log/slave2.err",
1006
path_pid => "$opt_vardir/run/slave2.pid",
1007
path_sock => "$sockdir/slave2.sock",
1008
port => $opt_slave_myport + 2,
1009
start_timeout => 300,
1010
cluster => -1, # index in clusters list
1203
1115
##############################################################################
1206
sub collect_drizzled_features () {
1118
sub collect_mysqld_features () {
1207
1119
my $found_variable_list_start= 0;
1208
1120
my $tmpdir= tempdir(CLEANUP => 0); # Directory removed by this function
1211
# Execute "drizzled --help" to get a list
1123
# Execute "mysqld --help --verbose" to get a list
1212
1124
# list of all features and settings
1214
# --no-defaults are to avoid loading
1126
# --no-defaults and --skip-grant-tables are to avoid loading
1215
1127
# system-wide configs and plugins
1217
my $list= `$exe_drizzled --no-defaults --help`;
1129
# --datadir must exist, mysqld will chdir into it
1131
my $list= `$exe_drizzled --no-defaults --datadir=$tmpdir --skip-grant-tables --verbose --help`;
1219
1133
foreach my $line (split('\n', $list))
1221
1135
# First look for version
1222
if ( !$drizzle_version_id )
1136
if ( !$mysql_version_id )
1224
1138
# Look for version
1225
1139
my $exe_name= basename($exe_drizzled);
1226
dtr_verbose("exe_name: $exe_name");
1140
mtr_verbose("exe_name: $exe_name");
1227
1141
if ( $line =~ /^\S*$exe_name\s\sVer\s([0-9]*)\.([0-9]*)\.([0-9]*)/ )
1229
1143
#print "Major: $1 Minor: $2 Build: $3\n";
1230
$drizzle_version_id= $1*10000 + $2*100 + $3;
1231
#print "drizzle_version_id: $drizzle_version_id\n";
1232
dtr_report("Drizzle Version $1.$2.$3");
1144
$mysql_version_id= $1*10000 + $2*100 + $3;
1145
#print "mysql_version_id: $mysql_version_id\n";
1146
mtr_report("MySQL Version $1.$2.$3");
1151
if (!$found_variable_list_start)
1153
# Look for start of variables list
1154
if ( $line =~ /[\-]+\s[\-]+/ )
1156
$found_variable_list_start= 1;
1161
# Put variables into hash
1162
if ( $line =~ /^([\S]+)[ \t]+(.*?)\r?$/ )
1164
# print "$1=\"$2\"\n";
1165
$mysqld_variables{$1}= $2;
1169
# The variable list is ended with a blank line
1170
if ( $line =~ /^[\s]*$/ )
1176
# Send out a warning, we should fix the variables that has no
1177
# space between variable name and it's value
1178
# or should it be fixed width column parsing? It does not
1179
# look like that in function my_print_variables in my_getopt.c
1180
mtr_warning("Could not parse variable list line : $line");
1236
1186
rmtree($tmpdir);
1237
dtr_error("Could not find version of Drizzle") unless $drizzle_version_id;
1187
mtr_error("Could not find version of MySQL") unless $mysql_version_id;
1188
mtr_error("Could not find variabes list") unless $found_variable_list_start;
1242
1193
sub run_query($$) {
1243
my ($drizzled, $query)= @_;
1194
my ($mysqld, $query)= @_;
1246
dtr_init_args(\$args);
1197
mtr_init_args(\$args);
1248
dtr_add_arg($args, "--no-defaults");
1249
dtr_add_arg($args, "--skip-stack-trace");
1250
dtr_add_arg($args, "--user=%s", $opt_user);
1251
dtr_add_arg($args, "--port=%d", $drizzled->{'port'});
1252
dtr_add_arg($args, "--silent"); # Tab separated output
1253
dtr_add_arg($args, "-e '%s'", $query);
1199
mtr_add_arg($args, "--no-defaults");
1200
mtr_add_arg($args, "--user=%s", $opt_user);
1201
mtr_add_arg($args, "--port=%d", $mysqld->{'port'});
1202
mtr_add_arg($args, "--silent"); # Tab separated output
1203
mtr_add_arg($args, "-e '%s'", $query);
1255
1205
my $cmd= "$exe_drizzle " . join(' ', @$args);
1256
dtr_verbose("cmd: $cmd");
1206
mtr_verbose("cmd: $cmd");
1261
sub collect_drizzled_features_from_running_server ()
1211
sub collect_mysqld_features_from_running_server ()
1263
my $list= run_query($master->[0], "use drizzle; SHOW VARIABLES");
1213
my $list= run_query($master->[0], "use mysql; SHOW VARIABLES");
1265
1215
foreach my $line (split('\n', $list))
1286
1236
$exe_libtool= "../libtool";
1287
1237
if ($opt_valgrind or $glob_debugger)
1289
dtr_report("Using \"$exe_libtool\" when running valgrind or debugger");
1239
mtr_report("Using \"$exe_libtool\" when running valgrind or debugger");
1243
# Look for my_print_defaults
1244
$exe_my_print_defaults=
1246
"$path_client_bindir/my_print_defaults",
1247
"$glob_basedir/extra/my_print_defaults",
1248
"$glob_builddir/extra/my_print_defaults");
1293
1250
# Look for perror
1294
1251
$exe_perror= "perror";
1296
1253
# Look for the client binaries
1297
$exe_drizzledump= dtr_exe_exists("$path_client_bindir/drizzledump");
1298
$exe_drizzleimport= dtr_exe_exists("$path_client_bindir/drizzleimport");
1299
$exe_drizzle= dtr_exe_exists("$path_client_bindir/drizzle");
1300
$exe_drizzleadmin= dtr_exe_exists("$path_client_bindir/drizzleadmin");
1254
$exe_drizzlecheck= mtr_exe_exists("$path_client_bindir/drizzlecheck");
1255
$exe_drizzledump= mtr_exe_exists("$path_client_bindir/drizzledump");
1256
$exe_drizzleimport= mtr_exe_exists("$path_client_bindir/drizzleimport");
1257
$exe_drizzleadmin= mtr_exe_exists("$path_client_bindir/drizzleadmin");
1258
$exe_drizzle= mtr_exe_exists("$path_client_bindir/drizzle");
1302
1260
if (!$opt_extern)
1304
1262
# Look for SQL scripts directory
1305
if ( $drizzle_version_id >= 50100 )
1263
if ( $mysql_version_id >= 50100 )
1307
$exe_drizzleslap= dtr_exe_exists("$path_client_bindir/drizzleslap");
1265
$exe_drizzleslap= mtr_exe_exists("$path_client_bindir/drizzleslap");
1311
# Look for schema_writer
1313
$exe_schemawriter= dtr_exe_exists("$glob_basedir/drizzled/message/schema_writer",
1314
"$glob_builddir/drizzled/message/schema_writer");
1317
1269
# Look for drizzletest executable
1319
$exe_drizzletest= dtr_exe_exists("$path_client_bindir/drizzletest");
1271
$exe_drizzletest= mtr_exe_exists("$path_client_bindir/drizzletest");
1322
1274
# Look for drizzle_client_test executable which may _not_ exist in
1323
1275
# some versions, test using it should be skipped
1325
1277
$exe_drizzle_client_test=
1326
dtr_exe_maybe_exists(
1278
mtr_exe_maybe_exists(
1327
1279
"$glob_basedir/tests/drizzle_client_test",
1328
1280
"$glob_basedir/bin/drizzle_client_test");
1436
1373
my $deb_version;
1437
1374
if ( $opt_valgrind and -d $debug_libraries_path and
1438
1375
(! -e '/etc/debian_version' or
1439
($deb_version= dtr_grab_file('/etc/debian_version')) !~ /^[0-9]+\.[0-9]$/ or
1376
($deb_version= mtr_grab_file('/etc/debian_version')) !~ /^[0-9]+\.[0-9]$/ or
1440
1377
$deb_version > 3.1 ) )
1442
1379
push(@ld_library_paths, $debug_libraries_path);
1445
$ENV{'LD_LIBRARY_PATH'}= join(":",
1382
$ENV{'LD_LIBRARY_PATH'}= join(":", @ld_library_paths,
1446
1383
$ENV{'LD_LIBRARY_PATH'} ?
1447
split(':', $ENV{'LD_LIBRARY_PATH'}) : (),
1449
dtr_debug("LD_LIBRARY_PATH: $ENV{'LD_LIBRARY_PATH'}");
1384
split(':', $ENV{'LD_LIBRARY_PATH'}) : ());
1385
mtr_debug("LD_LIBRARY_PATH: $ENV{'LD_LIBRARY_PATH'}");
1451
1387
$ENV{'DYLD_LIBRARY_PATH'}= join(":", @ld_library_paths,
1452
1388
$ENV{'DYLD_LIBRARY_PATH'} ?
1453
1389
split(':', $ENV{'DYLD_LIBRARY_PATH'}) : ());
1454
dtr_debug("DYLD_LIBRARY_PATH: $ENV{'DYLD_LIBRARY_PATH'}");
1390
mtr_debug("DYLD_LIBRARY_PATH: $ENV{'DYLD_LIBRARY_PATH'}");
1456
1392
# The environment variable used for shared libs on AIX
1457
1393
$ENV{'SHLIB_PATH'}= join(":", @ld_library_paths,
1458
1394
$ENV{'SHLIB_PATH'} ?
1459
1395
split(':', $ENV{'SHLIB_PATH'}) : ());
1460
dtr_debug("SHLIB_PATH: $ENV{'SHLIB_PATH'}");
1396
mtr_debug("SHLIB_PATH: $ENV{'SHLIB_PATH'}");
1462
1398
# The environment variable used for shared libs on hp-ux
1463
1399
$ENV{'LIBPATH'}= join(":", @ld_library_paths,
1464
1400
$ENV{'LIBPATH'} ?
1465
1401
split(':', $ENV{'LIBPATH'}) : ());
1466
dtr_debug("LIBPATH: $ENV{'LIBPATH'}");
1402
mtr_debug("LIBPATH: $ENV{'LIBPATH'}");
1468
1404
# --------------------------------------------------------------------------
1469
1405
# Also command lines in .opt files may contain env vars
1499
1433
$ENV{'SLAVE_MYPORT'}= $slave->[0]->{'port'};
1500
1434
$ENV{'SLAVE_MYPORT1'}= $slave->[1]->{'port'};
1501
1435
$ENV{'SLAVE_MYPORT2'}= $slave->[2]->{'port'};
1502
$ENV{'MC_PORT'}= $opt_memc_myport;
1503
$ENV{'PBMS_PORT'}= $opt_pbms_myport;
1504
$ENV{'RABBITMQ_NODE_PORT'}= $opt_rabbitmq_myport;
1505
$ENV{'DRIZZLE_TCP_PORT'}= $drizzled_variables{'drizzle-protocol.port'};
1507
$ENV{'DTR_BUILD_THREAD'}= $opt_dtr_build_thread;
1509
$ENV{'EXE_DRIZZLE'}= $exe_drizzle;
1436
$ENV{'DRIZZLE_TCP_PORT'}= $mysqld_variables{'port'};
1438
$ENV{'MTR_BUILD_THREAD'}= $opt_mtr_build_thread;
1440
$ENV{'EXE_MYSQL'}= $exe_drizzle;
1442
# ----------------------------------------------------
1443
# Setup env so childs can execute mysqlcheck
1444
# ----------------------------------------------------
1445
my $cmdline_mysqlcheck=
1446
mtr_native_path($exe_drizzlecheck) .
1447
" --no-defaults --debug-check -uroot " .
1448
"--port=$master->[0]->{'port'} ";
1452
$cmdline_mysqlcheck .=
1453
" --debug=d:t:A,$path_vardir_trace/log/mysqlcheck.trace";
1455
$ENV{'DRIZZLE_CHECK'}= $cmdline_mysqlcheck;
1512
1457
# ----------------------------------------------------
1513
1458
# Setup env to childs can execute myqldump
1514
1459
# ----------------------------------------------------
1515
my $cmdline_drizzleadmin= generate_cmdline_drizzleadmin($master->[0]);
1516
my $cmdline_drizzledump= generate_cmdline_drizzledump($master->[0]);
1517
my $cmdline_drizzledumpslave= generate_cmdline_drizzledump($slave->[0]);
1518
my $cmdline_drizzledump_secondary= dtr_native_path($exe_drizzledump) .
1519
" --no-defaults -uroot " .
1520
" --port=$master->[0]->{'secondary_port'} ";
1460
my $cmdline_mysqldump= generate_cmdline_mysqldump($master->[0]);
1461
my $cmdline_mysqldumpslave= generate_cmdline_mysqldump($slave->[0]);
1522
1463
if ( $opt_debug )
1524
$cmdline_drizzledump .=
1525
" --debug=d:t:A,$path_vardir_trace/log/drizzledump-master.trace";
1526
$cmdline_drizzledumpslave .=
1527
" --debug=d:t:A,$path_vardir_trace/log/drizzledump-slave.trace";
1528
$cmdline_drizzledump_secondary .=
1529
" --debug=d:t:A,$path_vardir_trace/log/drizzledump-drizzle.trace";
1465
$cmdline_mysqldump .=
1466
" --debug=d:t:A,$path_vardir_trace/log/mysqldump-master.trace";
1467
$cmdline_mysqldumpslave .=
1468
" --debug=d:t:A,$path_vardir_trace/log/mysqldump-slave.trace";
1531
$ENV{'DRIZZLE_ADMIN'}= $cmdline_drizzleadmin;
1532
$ENV{'DRIZZLE_DUMP'}= $cmdline_drizzledump;
1533
$ENV{'DRIZZLE_DUMP_SLAVE'}= $cmdline_drizzledumpslave;
1534
$ENV{'DRIZZLE_DUMP_SECONDARY'}= $cmdline_drizzledump_secondary;
1536
# ----------------------------------------------------
1537
# Setup env so we can execute drizzle client
1538
# ----------------------------------------------------
1539
#my $cmdline_drizzle = generate_cmdline_drizzle($master->[0]);
1540
#$ENV{'DRIZZLE'}= $cmdline_drizzle;
1542
# ----------------------------------------------------
1543
# Setup env so childs can execute drizzleslap
1470
$ENV{'DRIZZLE_DUMP'}= $cmdline_mysqldump;
1471
$ENV{'DRIZZLE_DUMP_SLAVE'}= $cmdline_mysqldumpslave;
1473
# ----------------------------------------------------
1474
# Setup env so childs can execute mysqlslap
1544
1475
# ----------------------------------------------------
1545
1476
if ( $exe_drizzleslap )
1547
my $cmdline_drizzleslap;
1549
if ( $opt_valgrind_drizzleslap )
1551
$cmdline_drizzleslap= "$glob_basedir/libtool --mode=execute valgrind --log-file=$opt_vardir/log/drizzleslap-valgrind.log ";
1553
$cmdline_drizzleslap .=
1554
dtr_native_path($exe_drizzleslap) .
1478
my $cmdline_drizzleslap=
1479
mtr_native_path($exe_drizzleslap) .
1556
1481
"--port=$master->[0]->{'port'} ";
1557
my $cmdline_drizzleslap_secondary=
1558
dtr_native_path($exe_drizzleslap) .
1560
" --port=$master->[0]->{'secondary_port'} ";
1562
1483
if ( $opt_debug )
1564
1485
$cmdline_drizzleslap .=
1565
1486
" --debug=d:t:A,$path_vardir_trace/log/drizzleslap.trace";
1566
$cmdline_drizzleslap_secondary .=
1567
" --debug=d:t:A,$path_vardir_trace/log/drizzleslap.trace";
1569
1488
$ENV{'DRIZZLE_SLAP'}= $cmdline_drizzleslap;
1570
$ENV{'DRIZZLE_SLAP_SECONDARY'}= $cmdline_drizzleslap_secondary;
1575
1493
# ----------------------------------------------------
1576
# Setup env so childs can execute drizzleimport
1494
# Setup env so childs can execute mysqlimport
1577
1495
# ----------------------------------------------------
1578
my $cmdline_drizzleimport=
1579
dtr_native_path($exe_drizzleimport) .
1496
my $cmdline_mysqlimport=
1497
mtr_native_path($exe_drizzleimport) .
1498
" -uroot --debug-check " .
1581
1499
"--port=$master->[0]->{'port'} ";
1583
1501
if ( $opt_debug )
1585
$cmdline_drizzleimport .=
1586
" --debug=d:t:A,$path_vardir_trace/log/drizzleimport.trace";
1503
$cmdline_mysqlimport .=
1504
" --debug=d:t:A,$path_vardir_trace/log/mysqlimport.trace";
1588
$ENV{'DRIZZLE_IMPORT'}= $cmdline_drizzleimport;
1591
# ----------------------------------------------------
1592
# Setup env so childs can execute drizzle
1593
# ----------------------------------------------------
1594
my $cmdline_drizzle=
1595
dtr_native_path($exe_drizzle) .
1596
" --no-defaults --host=localhost --user=root --password= " .
1506
$ENV{'DRIZZLE_IMPORT'}= $cmdline_mysqlimport;
1509
# ----------------------------------------------------
1510
# Setup env so childs can execute mysql
1511
# ----------------------------------------------------
1513
mtr_native_path($exe_drizzle) .
1514
" --no-defaults --debug-check --host=localhost --user=root --password= " .
1597
1515
"--port=$master->[0]->{'port'} ";
1598
my $cmdline_drizzle_secondary=
1599
dtr_native_path($exe_drizzle) .
1600
" --no-defaults --host=localhost --user=root --password= " .
1601
" --port=$master->[0]->{'secondary_port'} ";
1603
$ENV{'DRIZZLE'}= $cmdline_drizzle;
1604
$ENV{'DRIZZLE_SECONDARY'}= $cmdline_drizzle_secondary;
1517
$ENV{'MYSQL'}= $cmdline_mysql;
1606
1519
# ----------------------------------------------------
1607
1520
# Setup env so childs can execute bug25714
1943
drizzled_start($master->[0],[],[]);
1860
mysqld_start($master->[0],[],[]);
1944
1861
if ( ! $master->[0]->{'pid'} )
1946
dtr_error("Can't start the drizzled server");
1863
mtr_error("Can't start the mysqld server");
1950
dtr_init_args(\$args);
1867
mtr_init_args(\$args);
1952
dtr_add_arg($args, "--user=%s", $opt_user);
1869
mtr_add_arg($args, "--user=%s", $opt_user);
1954
1871
if ( $opt_small_bench )
1956
dtr_add_arg($args, "--small-test");
1957
dtr_add_arg($args, "--small-tables");
1873
mtr_add_arg($args, "--small-test");
1874
mtr_add_arg($args, "--small-tables");
1960
chdir($glob_drizzle_bench_dir)
1961
or dtr_error("Couldn't chdir to '$glob_drizzle_bench_dir': $!");
1877
chdir($glob_mysql_bench_dir)
1878
or mtr_error("Couldn't chdir to '$glob_mysql_bench_dir': $!");
1963
1880
if ( ! $benchmark )
1965
dtr_run("$glob_drizzle_bench_dir/run-all-tests", $args, "", "", "", "");
1882
mtr_add_arg($args, "--log");
1883
mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", "");
1966
1884
# FIXME check result code?!
1968
1886
elsif ( -x $benchmark )
1970
dtr_run("$glob_drizzle_bench_dir/$benchmark", $args, "", "", "", "");
1888
mtr_run("$glob_mysql_bench_dir/$benchmark", $args, "", "", "", "");
1971
1889
# FIXME check result code?!
1975
dtr_error("Benchmark $benchmark not found");
1893
mtr_error("Benchmark $benchmark not found");
1978
chdir($glob_drizzle_test_dir); # Go back
1896
chdir($glob_mysql_test_dir); # Go back
1981
1899
stop_masters();
2541
2480
my $prefix= ""; # If drizzletest server arg
2543
dtr_add_arg($args, "%s--no-defaults", $prefix);
2482
mtr_add_arg($args, "%s--no-defaults", $prefix);
2484
$path_my_basedir= collapse_path($path_my_basedir);
2485
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
2545
2487
if ($opt_engine)
2547
dtr_add_arg($args, "%s--default-storage-engine=%s", $prefix, $opt_engine);
2489
mtr_add_arg($args, "%s--default-storage-engine=%s", $prefix, $opt_engine);
2550
if ( $drizzle_version_id >= 50036)
2492
if ( $mysql_version_id >= 50036)
2552
# By default, prevent the started drizzled to access files outside of vardir
2553
dtr_add_arg($args, "%s--secure-file-priv=%s", $prefix, $opt_vardir);
2494
# By default, prevent the started mysqld to access files outside of vardir
2495
mtr_add_arg($args, "%s--secure-file-priv=%s", $prefix, $opt_vardir);
2556
dtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
2498
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
2558
2500
# Increase default connect_timeout to avoid intermittent
2559
2501
# disconnects when test servers are put under load
2560
2502
# see BUG#28359
2561
dtr_add_arg($args, "%s--mysql-protocol.connect-timeout=60", $prefix);
2564
# When drizzled is run by a root user(euid is 0), it will fail
2503
mtr_add_arg($args, "%s--connect-timeout=60", $prefix);
2506
# When mysqld is run by a root user(euid is 0), it will fail
2565
2507
# to start unless we specify what user to run as, see BUG#30630
2567
if (grep(/^--user/, @$extra_opt, @opt_extra_drizzled_opt) == 0) {
2568
dtr_add_arg($args, "%s--user=root", $prefix);
2509
if (grep(/^--user/, @$extra_opt, @opt_extra_mysqld_opt) == 0) {
2510
mtr_add_arg($args, "%s--user=root", $prefix);
2571
dtr_add_arg($args, "%s--pid-file=%s", $prefix,
2572
$drizzled->{'path_pid'});
2574
dtr_add_arg($args, "%s--mysql-protocol.port=%d", $prefix,
2575
$drizzled->{'port'});
2577
dtr_add_arg($args, "%s--drizzle-protocol.port=%d", $prefix,
2578
$drizzled->{'secondary_port'});
2580
dtr_add_arg($args, "%s--datadir=%s", $prefix,
2581
$drizzled->{'path_myddir'});
2583
dtr_add_arg($args, "%s--mysql-unix-socket-protocol.path=%s", $prefix,
2584
$drizzled->{'path_sock'});
2513
mtr_add_arg($args, "%s--pid-file=%s", $prefix,
2514
$mysqld->{'path_pid'});
2516
mtr_add_arg($args, "%s--port=%d", $prefix,
2519
mtr_add_arg($args, "%s--datadir=%s", $prefix,
2520
$mysqld->{'path_myddir'});
2522
my $log_base_path= "$opt_vardir/log/$mysqld->{'type'}$sidx";
2523
mtr_add_arg($args, "%s--log=%s.log", $prefix, $log_base_path);
2586
2525
# Check if "extra_opt" contains --skip-log-bin
2587
if ( $drizzled->{'type'} eq 'master' )
2526
my $skip_binlog= grep(/^--skip-log-bin/, @$extra_opt, @opt_extra_mysqld_opt);
2527
if ( $mysqld->{'type'} eq 'master' )
2589
dtr_add_arg($args, "%s--server-id=%d", $prefix,
2529
if (! ($opt_skip_master_binlog || $skip_binlog) )
2531
mtr_add_arg($args, "%s--log-bin=%s/log/master-bin%s", $prefix,
2532
$opt_vardir, $sidx);
2535
mtr_add_arg($args, "%s--server-id=%d", $prefix,
2590
2536
$idx > 0 ? $idx + 101 : 1);
2593
"%s--innodb.data-file-path=ibdata1:20M:autoextend", $prefix);
2538
mtr_add_arg($args, "%s--loose-innodb_data_file_path=ibdata1:10M:autoextend",
2541
mtr_add_arg($args, "%s--loose-innodb-lock-wait-timeout=5", $prefix);
2543
mtr_add_arg($args, "%s--local-infile", $prefix);
2545
if ( $idx > 0 or !$use_innodb)
2547
mtr_add_arg($args, "%s--loose-skip-innodb", $prefix);
2598
dtr_error("unknown drizzled type")
2599
unless $drizzled->{'type'} eq 'slave';
2552
mtr_error("unknown mysqld type")
2553
unless $mysqld->{'type'} eq 'slave';
2555
#mtr_add_arg($args, "%s--init-rpl-role=slave", $prefix);
2556
if (! ( $opt_skip_slave_binlog || $skip_binlog ))
2558
mtr_add_arg($args, "%s--log-bin=%s/log/slave%s-bin", $prefix,
2559
$opt_vardir, $sidx); # FIXME use own dir for binlogs
2560
mtr_add_arg($args, "%s--log-slave-updates", $prefix);
2563
mtr_add_arg($args, "%s--master-retry-count=10", $prefix);
2565
mtr_add_arg($args, "%s--relay-log=%s/log/slave%s-relay-bin", $prefix,
2566
$opt_vardir, $sidx);
2567
mtr_add_arg($args, "%s--report-host=127.0.0.1", $prefix);
2568
mtr_add_arg($args, "%s--loose-skip-innodb", $prefix);
2569
mtr_add_arg($args, "%s--skip-slave-start", $prefix);
2601
2571
# Directory where slaves find the dumps generated by "load data"
2602
2572
# on the server. The path need to have constant length otherwise
2603
2573
# test results will vary, thus a relative path is used.
2604
2574
my $slave_load_path= "../tmp";
2575
mtr_add_arg($args, "%s--slave-load-tmpdir=%s", $prefix,
2577
mtr_add_arg($args, "%s--set-variable=slave_net_timeout=120", $prefix);
2606
2579
if ( @$slave_master_info )
2608
2581
foreach my $arg ( @$slave_master_info )
2610
dtr_add_arg($args, "%s%s", $prefix, $arg);
2583
mtr_add_arg($args, "%s%s", $prefix, $arg);
2615
2588
my $slave_server_id= 2 + $idx;
2616
2589
my $slave_rpl_rank= $slave_server_id;
2617
dtr_add_arg($args, "%s--server-id=%d", $prefix, $slave_server_id);
2590
mtr_add_arg($args, "%s--server-id=%d", $prefix, $slave_server_id);
2591
# mtr_add_arg($args, "%s--rpl-recovery-rank=%d", $prefix, $slave_rpl_rank);
2621
2595
if ( $opt_debug )
2623
dtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/%s%s.trace",
2624
$prefix, $path_vardir_trace, $drizzled->{'type'}, $sidx);
2597
mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/%s%s.trace",
2598
$prefix, $path_vardir_trace, $mysqld->{'type'}, $sidx);
2627
dtr_add_arg($args, "%s--sort-buffer-size=256K", $prefix);
2628
dtr_add_arg($args, "%s--max-heap-table-size=1M", $prefix);
2601
mtr_add_arg($args, "%s--key_buffer_size=1M", $prefix);
2602
mtr_add_arg($args, "%s--sort_buffer=256K", $prefix);
2603
mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix);
2630
2605
if ( $opt_warnings )
2632
dtr_add_arg($args, "%s--log-warnings", $prefix);
2607
mtr_add_arg($args, "%s--log-warnings", $prefix);
2635
# Indicate to "drizzled" it will be debugged in debugger
2610
# Indicate to "mysqld" it will be debugged in debugger
2636
2611
if ( $glob_debugger )
2638
dtr_add_arg($args, "%s--gdb", $prefix);
2613
mtr_add_arg($args, "%s--gdb", $prefix);
2641
2616
my $found_skip_core= 0;
2642
foreach my $arg ( @opt_extra_drizzled_opt, @$extra_opt )
2617
foreach my $arg ( @opt_extra_mysqld_opt, @$extra_opt )
2644
2619
# Allow --skip-core-file to be set in <testname>-[master|slave].opt file
2645
2620
if ($arg eq "--skip-core-file")
2647
2622
$found_skip_core= 1;
2624
elsif ($skip_binlog and mtr_match_prefix($arg, "--binlog-format"))
2626
; # Dont add --binlog-format when running without binlog
2651
dtr_add_arg($args, "%s%s", $prefix, $arg);
2630
mtr_add_arg($args, "%s%s", $prefix, $arg);
2654
2633
if ( !$found_skip_core )
2656
dtr_add_arg($args, "%s%s", $prefix, "--core-file");
2635
mtr_add_arg($args, "%s%s", $prefix, "--core-file");
2640
#mtr_add_arg($args, "%s--rpl-recovery-rank=1", $prefix);
2641
#mtr_add_arg($args, "%s--init-rpl-role=master", $prefix);
2643
elsif ( $mysqld->{'type'} eq 'master' )
2645
mtr_add_arg($args, "%s--open-files-limit=1024", $prefix);
2737
2722
# Remove the pidfile
2738
unlink($drizzled->{'path_pid'});
2723
unlink($mysqld->{'path_pid'});
2740
2725
if ( defined $exe )
2742
dtr_verbose("running Drizzle with: $exe @$args");
2743
$pid= dtr_spawn($exe, $args, "",
2744
$drizzled->{'path_myerr'},
2745
$drizzled->{'path_myerr'},
2727
$pid= mtr_spawn($exe, $args, "",
2728
$mysqld->{'path_myerr'},
2729
$mysqld->{'path_myerr'},
2747
2731
{ append_log_file => 1 });
2751
if ( $wait_for_pid_file && !sleep_until_file_created($drizzled->{'path_pid'},
2752
$drizzled->{'start_timeout'},
2735
if ( $wait_for_pid_file && !sleep_until_file_created($mysqld->{'path_pid'},
2736
$mysqld->{'start_timeout'},
2756
dtr_error("Failed to start drizzled $drizzled->{'type'}");
2740
mtr_error("Failed to start mysqld $mysqld->{'type'}");
2760
2744
# Remember pid of the started process
2761
$drizzled->{'pid'}= $pid;
2745
$mysqld->{'pid'}= $pid;
2763
2747
# Remember options used when starting
2764
$drizzled->{'start_opts'}= $extra_opt;
2765
$drizzled->{'start_slave_master_info'}= $slave_master_info;
2748
$mysqld->{'start_opts'}= $extra_opt;
2749
$mysqld->{'start_slave_master_info'}= $slave_master_info;
2767
dtr_verbose("drizzled pid: $pid");
2751
mtr_verbose("mysqld pid: $pid");
2772
2756
sub stop_all_servers () {
2774
dtr_report("Stopping All Servers");
2758
mtr_report("Stopping All Servers");
2776
2760
my %admin_pids; # hash of admin processes that requests shutdown
2777
2761
my @kill_pids; # list of processes to shutdown/kill
2780
2764
# Start shutdown of all started masters
2781
foreach my $drizzled (@{$slave}, @{$master})
2765
foreach my $mysqld (@{$slave}, @{$master})
2783
if ( $drizzled->{'pid'} )
2767
if ( $mysqld->{'pid'} )
2785
$pid= dtr_server_shutdown($drizzled);
2769
$pid= mtr_mysqladmin_start($mysqld, "shutdown", 70);
2786
2770
$admin_pids{$pid}= 1;
2788
2772
push(@kill_pids,{
2789
pid => $drizzled->{'pid'},
2790
real_pid => $drizzled->{'real_pid'},
2791
pidfile => $drizzled->{'path_pid'},
2792
sockfile => $drizzled->{'path_sock'},
2793
port => $drizzled->{'port'},
2794
errfile => $drizzled->{'path_myerr'},
2773
pid => $mysqld->{'pid'},
2774
real_pid => $mysqld->{'real_pid'},
2775
pidfile => $mysqld->{'path_pid'},
2776
sockfile => $mysqld->{'path_sock'},
2777
port => $mysqld->{'port'},
2778
errfile => $mysqld->{'path_myerr'},
2797
$drizzled->{'pid'}= 0; # Assume we are done with it
2781
$mysqld->{'pid'}= 0; # Assume we are done with it
2801
2785
# Wait blocking until all shutdown processes has completed
2802
dtr_wait_blocking(\%admin_pids);
2786
mtr_wait_blocking(\%admin_pids);
2804
2788
# Make sure that process has shutdown else try to kill them
2805
dtr_check_stop_servers(\@kill_pids);
2789
mtr_check_stop_servers(\@kill_pids);
3081
3066
sub run_check_testcase ($$) {
3083
3068
my $mode= shift;
3084
my $drizzled= shift;
3086
my $name= "check-" . $drizzled->{'type'} . $drizzled->{'idx'};
3071
my $name= "check-" . $mysqld->{'type'} . $mysqld->{'idx'};
3089
dtr_init_args(\$args);
3091
dtr_add_arg($args, "--no-defaults");
3092
dtr_add_arg($args, "--silent");
3093
dtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
3095
dtr_add_arg($args, "--port=%d", $drizzled->{'port'});
3096
dtr_add_arg($args, "--database=test");
3097
dtr_add_arg($args, "--user=%s", $opt_user);
3098
dtr_add_arg($args, "--password=");
3100
dtr_add_arg($args, "-R");
3101
dtr_add_arg($args, "$opt_vardir/tmp/$name.result");
3074
mtr_init_args(\$args);
3076
mtr_add_arg($args, "--no-defaults");
3077
mtr_add_arg($args, "--silent");
3078
mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
3080
mtr_add_arg($args, "--port=%d", $mysqld->{'port'});
3081
mtr_add_arg($args, "--database=test");
3082
mtr_add_arg($args, "--user=%s", $opt_user);
3083
mtr_add_arg($args, "--password=");
3085
mtr_add_arg($args, "-R");
3086
mtr_add_arg($args, "$opt_vardir/tmp/$name.result");
3103
3088
if ( $mode eq "before" )
3105
dtr_add_arg($args, "--record");
3090
mtr_add_arg($args, "--record");
3108
3093
if ( $opt_testdir )
3110
dtr_add_arg($args, "--testdir=%s", $opt_testdir);
3095
mtr_add_arg($args, "--testdir=%s", $opt_testdir);
3113
my $res = dtr_run_test($exe_drizzletest,$args,
3098
my $res = mtr_run_test($exe_drizzletest,$args,
3114
3099
"include/check-testcase.test", "", "", "");
3116
3101
if ( $res == 1 and $mode eq "after")
3118
dtr_run("diff",["-u",
3103
mtr_run("diff",["-u",
3119
3104
"$opt_vardir/tmp/$name.result",
3120
3105
"$opt_vardir/tmp/$name.reject"],
3121
3106
"", "", "", "");
3125
dtr_error("Could not execute 'check-testcase' $mode testcase");
3110
mtr_error("Could not execute 'check-testcase' $mode testcase");
3169
3154
my $exe= $exe_drizzletest;
3172
dtr_init_args(\$args);
3157
mtr_init_args(\$args);
3174
dtr_add_arg($args, "--no-defaults");
3175
dtr_add_arg($args, "--silent");
3176
dtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
3177
dtr_add_arg($args, "--logdir=%s/log", $opt_vardir);
3159
mtr_add_arg($args, "--no-defaults");
3160
mtr_add_arg($args, "--silent");
3161
mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
3162
mtr_add_arg($args, "--logdir=%s/log", $opt_vardir);
3179
3164
# Log line number and time for each line in .test file
3180
dtr_add_arg($args, "--mark-progress")
3165
mtr_add_arg($args, "--mark-progress")
3181
3166
if $opt_mark_progress;
3184
dtr_add_arg($args, "--port=%d", $master->[0]->{'port'});
3185
dtr_add_arg($args, "--database=test");
3186
dtr_add_arg($args, "--user=%s", $opt_user);
3187
dtr_add_arg($args, "--password=");
3169
mtr_add_arg($args, "--port=%d", $master->[0]->{'port'});
3170
mtr_add_arg($args, "--database=test");
3171
mtr_add_arg($args, "--user=%s", $opt_user);
3172
mtr_add_arg($args, "--password=");
3190
3175
if ( $opt_strace_client )
3192
3177
$exe= "strace"; # FIXME there are ktrace, ....
3193
dtr_add_arg($args, "-o");
3194
dtr_add_arg($args, "%s/log/drizzletest.strace", $opt_vardir);
3195
dtr_add_arg($args, "$exe_drizzletest");
3178
mtr_add_arg($args, "-o");
3179
mtr_add_arg($args, "%s/log/drizzletest.strace", $opt_vardir);
3180
mtr_add_arg($args, "$exe_drizzletest");
3198
3183
if ( $opt_timer )
3200
dtr_add_arg($args, "--timer-file=%s/log/timer", $opt_vardir);
3185
mtr_add_arg($args, "--timer-file=%s/log/timer", $opt_vardir);
3203
3188
if ( $opt_compress )
3205
dtr_add_arg($args, "--compress");
3190
mtr_add_arg($args, "--compress");
3208
3193
if ( $opt_sleep )
3210
dtr_add_arg($args, "--sleep=%d", $opt_sleep);
3195
mtr_add_arg($args, "--sleep=%d", $opt_sleep);
3213
3198
if ( $opt_debug )
3215
dtr_add_arg($args, "--debug=d:t:A,%s/log/drizzletest.trace",
3200
mtr_add_arg($args, "--debug=d:t:A,%s/log/drizzletest.trace",
3216
3201
$path_vardir_trace);
3219
3204
if ( $opt_testdir )
3221
dtr_add_arg($args, "--testdir=%s", $opt_testdir);
3206
mtr_add_arg($args, "--testdir=%s", $opt_testdir);