my
$TEST_VERSION
=
$ENV
{TEST_VERSION};
my
(
$version
,
$name_version
,
$major
,
$minor
,
$rev
) = get_bare_version(
$TEST_VERSION
);
my
$replication_dir
=
"rsandbox_$name_version"
;
my
$custom_port
= 11000;
my
$custom_port1
=
$custom_port
+ 1;
my
$check_uuid
=0;
if
( (
$major
==5) && (
$minor
>= 6) )
{
$check_uuid
=1;
}
$ENV
{MASTER_OPTIONS} =
''
;
$ENV
{SLAVE_OPTIONS} =
''
;
$ENV
{NODE_OPTIONS} =
''
;
my
$master_options
=
'-c key-buffer-size=20M'
;
my
$slave_options
=
'-c key-buffer-size=25M'
;
my
$node_options
=
'-c max_allowed_packet=3M'
;
my
$command_line_options
=
"--master_options='$master_options' "
.
"--slave_options='$slave_options' "
.
"--node_options='$node_options' $TEST_VERSION "
;
ok_exec({
command
=>
"make_replication_sandbox $command_line_options $TEST_VERSION "
,
expected
=>
'replication directory installed'
,
msg
=>
'replication directory installed'
,
});
sleep
2;
ok_sql({
path
=>
"$sandbox_home/$replication_dir/master"
,
query
=>
"show variables like 'key_buffer_size'"
,
expected
=>
'20971520'
,
msg
=>
'master key buffer (20M)'
,
});
ok_sql({
path
=>
"$sandbox_home/$replication_dir/master"
,
query
=>
"show variables like 'max_allowed_packet'"
,
expected
=>
'3145728'
,
msg
=>
'master max allowed packet (3M)'
,
});
ok_sql({
path
=>
"$sandbox_home/$replication_dir/node1"
,
query
=>
"show variables like 'max_allowed_packet'"
,
expected
=>
'3145728'
,
msg
=>
'node 1 max allowed packet (3M)'
,
});
ok_sql({
path
=>
"$sandbox_home/$replication_dir/node2"
,
query
=>
"show variables like 'max_allowed_packet'"
,
expected
=>
'3145728'
,
msg
=>
'node 2 max allowed packet (3M)'
,
});
ok_sql({
path
=>
"$sandbox_home/$replication_dir/node1"
,
query
=>
"show variables like 'key_buffer_size'"
,
expected
=>
'26214400'
,
msg
=>
'slave 1 key buffer (25M)'
,
});
ok_sql({
path
=>
"$sandbox_home/$replication_dir/node2"
,
query
=>
"show variables like 'key_buffer_size'"
,
expected
=>
'26214400'
,
msg
=>
'slave 2 key buffer (25M)'
,
});
ok_exec( {
command
=>
"sbtool -o delete -s $sandbox_home/$replication_dir "
,
expected
=>
'has been removed'
,
msg
=>
"$replication_dir removed"
});
my
$master_extra_options
=
''
;
ok_exec({
command
=>
"make_sandbox $TEST_VERSION -- --master --sandbox_directory=msb_master --sandbox_port=$custom_port --no_confirm $master_extra_options"
,
expected
=>
'sandbox server started'
,
msg
=>
'sandbox master installed'
,
});
sleep
2;
ok_exec({
command
=>
"make_sandbox $TEST_VERSION -- --no_confirm --sandbox_port=$custom_port1 --sandbox_directory=msb_slave --slaveof='master_port=$custom_port' "
,
expected
=>
'sandbox server started'
,
msg
=>
'sandbox master installed'
,
});
sleep
2;
ok_sql({
path
=>
"$sandbox_home/msb_master/"
,
query
=>
"show variables like 'log_bin'"
,
expected
=>
'ON'
,
msg
=>
'master binlog'
,
});
ok_sql({
path
=>
"$sandbox_home/msb_master/"
,
query
=>
"show variables like 'server_id'"
,
expected
=>
$custom_port
,
msg
=>
'master server ID'
,
});
if
(
$check_uuid
)
{
ok_sql({
path
=>
"$sandbox_home/msb_master/"
,
query
=>
"show variables like 'server_uuid'"
,
expected
=>
$custom_port
,
msg
=>
'master server UUID'
,
});
}
else
{
ok(1,
'skip UUID check'
);
}
ok_sql({
path
=>
"$sandbox_home/msb_slave/"
,
query
=>
"show variables like 'server_id'"
,
expected
=>
$custom_port1
,
msg
=>
'slave server ID'
,
});
ok_sql({
path
=>
"$sandbox_home/msb_slave/"
,
query
=>
"show slave status \\G"
,
expected
=> [
'Slave_IO_Running: Yes'
,
'Slave_SQL_Running: Yes'
],
msg
=>
'slave server ID'
,
});
ok_exec( {
command
=>
"sbtool -o delete -s $sandbox_home/msb_master "
,
expected
=>
'has been removed'
,
msg
=>
"msb_master removed"
});
ok_exec( {
command
=>
"sbtool -o delete -s $sandbox_home/msb_slave "
,
expected
=>
'has been removed'
,
msg
=>
"msb_slave removed"
});
ok_exec({
command
=>
"make_sandbox $TEST_VERSION -- --high_performance --sandbox_directory=msb_hp --sandbox_port=$custom_port --no_confirm"
,
expected
=>
'sandbox server started'
,
msg
=>
'sandbox hp installed'
,
});
sleep
2;
ok_sql({
path
=>
"$sandbox_home/msb_hp/"
,
query
=>
"show variables like 'innodb%'"
,
expected
=> [
'innodb_buffer_pool_size\s*536870912'
,
'innodb_flush_method\s*O_DIRECT'
],
msg
=>
'high performance options'
,
});
ok_exec( {
command
=>
"sbtool -o delete -s $sandbox_home/msb_hp "
,
expected
=>
'has been removed'
,
msg
=>
"msb_hp removed"
});