# Test for Innodb plugin installation # # my $TEST_VERSION = $ENV{TEST_VERSION}; my ($bare_version, $version) = get_bare_version ($TEST_VERSION); my $plugindir = $ENV{SB_PLUGIN_DIR} or die "expected environment variable \$SB_PLUGIN_DIR not set\n"; my %plugin_version = ( '5.1.40' => '1.0.4', '5.1.41' => '1.0.5', '5.1.42' => '1.0.6', '5.1.43' => '1.0.6', '5.1.44' => '1.0.6', '5.1.45' => '1.0.6', '5.1.45' => '1.0.6', '5.1.46' => '1.0.7', '5.1.47' => '1.0.8', '5.1.48' => '1.0.9', '5.1.57' => '1.0.16', '5.1.63' => '1.0.17', '5.1.73' => '5.1.73', ); my $skip_tests=0; unless (defined $plugin_version{$TEST_VERSION}) { warn "# No plugin info found for version $TEST_VERSION\n"; $plugin_version{$TEST_VERSION} = "<missing>"; $skip_tests=1; } my @test_sb = ( { type => 'exec', command => "make_sandbox $TEST_VERSION -- --no_confirm " . "--sandbox_directory=single_server", expected => "sandbox server started", msg => "single server started", }, { type => 'exec', command => "make_replication_sandbox " . "--replication_directory=group_server $TEST_VERSION ", expected => 'replication directory installed', msg => 'group directory started', }, { type => 'exec', command => "sbtool -o plugin " . " --plugin=innodb" . " -s $sandbox_home/single_server ", expected => ['innodb_version', $plugin_version{$TEST_VERSION}], msg => 'innodb plugin installed on single_server', }, { type => 'sql', path => "$sandbox_home/single_server", query => "create table test.t1 (i int) engine=innodb " . "ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;" . " show create table test.t1 ", expected => ['innodb', 'compressed'], msg => 'innodb plugin working on single_server', }, { type => 'exec', command => "sbtool -o plugin " . " --plugin=innodb" . " -s $sandbox_home/group_server ", expected => ['innodb_version', $plugin_version{$TEST_VERSION} ], msg => 'innodb plugin installed on group_server', }, { type => 'sql', path => "$sandbox_home/group_server/master", query => "create table test.t1 (i int) engine=innodb " . "ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;" . " show create table test.t1 ", expected => ['innodb', 'compressed'], msg => 'innodb plugin working on group_server/master', }, { type => 'sleep', how_much => 2}, { type => 'sql', path => "$sandbox_home/group_server/node1", query => " show create table test.t1 ", expected => ['innodb', 'compressed'], msg => 'innodb plugin working on group_server/node1', }, { type => 'sql', path => "$sandbox_home/group_server/node2", query => " show create table test.t1 ", expected => ['innodb', 'compressed'], msg => 'innodb plugin working on group_server/node2', }, { type => 'exec', command => "$sandbox_home/single_server/stop", expected => "ok", msg => "single server stopped", }, { type => 'exec', command => "$sandbox_home/group_server/stop_all", expected => "ok", msg => "group server stopped", }, ); for my $test (@test_sb) { if ($skip_tests) { my $msg = $test->{msg} || ''; my $expected = $test->{expected} || ''; if ($expected) { if (ref $expected) { for my $e (@$expected) { print "ok - skipped - $msg ($e)\n"; } } else { print "ok - skipped - $msg ($expected)\n"; } } } else { if ($test->{type} eq 'exec') { ok_exec( $test); } elsif ($test->{type} eq 'sql') { ok_sql($test); } elsif ($test->{type} eq 'sleep') { sleep($test->{how_much} || 1 ); } else { die "unrecognized type\n"; } } }