summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mysqltest.cc78
-rw-r--r--mysql-test/extra/rpl_tests/rpl_EE_err.test9
-rw-r--r--mysql-test/extra/rpl_tests/rpl_auto_increment.test26
-rw-r--r--mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test3
-rw-r--r--mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test9
-rw-r--r--mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test6
-rw-r--r--mysql-test/extra/rpl_tests/rpl_charset.test6
-rw-r--r--mysql-test/extra/rpl_tests/rpl_commit_after_flush.test8
-rw-r--r--mysql-test/extra/rpl_tests/rpl_conflicts.test11
-rw-r--r--mysql-test/extra/rpl_tests/rpl_ddl.test11
-rw-r--r--mysql-test/extra/rpl_tests/rpl_deadlock.test1
-rw-r--r--mysql-test/extra/rpl_tests/rpl_extra_col_master.test (renamed from mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test)22
-rw-r--r--mysql-test/extra/rpl_tests/rpl_extra_col_slave.test (renamed from mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test)33
-rw-r--r--mysql-test/extra/rpl_tests/rpl_failed_optimize.test3
-rw-r--r--mysql-test/extra/rpl_tests/rpl_flsh_tbls.test3
-rw-r--r--mysql-test/extra/rpl_tests/rpl_foreign_key.test4
-rw-r--r--mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test42
-rw-r--r--mysql-test/extra/rpl_tests/rpl_insert_id.test28
-rw-r--r--mysql-test/extra/rpl_tests/rpl_insert_id_pk.test20
-rw-r--r--mysql-test/extra/rpl_tests/rpl_loaddata.test62
-rw-r--r--mysql-test/extra/rpl_tests/rpl_log.test2
-rw-r--r--mysql-test/extra/rpl_tests/rpl_max_relay_size.test4
-rw-r--r--mysql-test/extra/rpl_tests/rpl_multi_query.test6
-rw-r--r--mysql-test/extra/rpl_tests/rpl_multi_update.test7
-rw-r--r--mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test2
-rw-r--r--mysql-test/extra/rpl_tests/rpl_not_null.test14
-rw-r--r--mysql-test/extra/rpl_tests/rpl_record_compare.test15
-rw-r--r--mysql-test/extra/rpl_tests/rpl_reset_slave.test11
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_UUID.test2
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_basic.test60
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test5
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_sp002.test56
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_sp007.test25
-rw-r--r--mysql-test/extra/rpl_tests/rpl_set_null.test16
-rw-r--r--mysql-test/extra/rpl_tests/rpl_stm_000001.test131
-rw-r--r--mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test5
-rw-r--r--mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test73
-rw-r--r--mysql-test/extra/rpl_tests/rpl_stop_slave.test3
-rw-r--r--mysql-test/extra/rpl_tests/rpl_sv_relay_space.test11
-rw-r--r--mysql-test/extra/rpl_tests/rpl_test_framework.inc86
-rw-r--r--mysql-test/extra/rpl_tests/rpl_truncate.test7
-rw-r--r--mysql-test/extra/rpl_tests/rpl_truncate_helper.test8
-rw-r--r--mysql-test/include/analyze-sync_with_master.test13
-rw-r--r--mysql-test/include/assert.inc175
-rw-r--r--mysql-test/include/begin_include_file.inc82
-rw-r--r--mysql-test/include/check-testcase.test6
-rw-r--r--mysql-test/include/check_slave_is_running.inc30
-rw-r--r--mysql-test/include/check_slave_no_error.inc22
-rw-r--r--mysql-test/include/check_slave_param.inc26
-rw-r--r--mysql-test/include/circular_rpl_for_4_hosts_init.inc130
-rw-r--r--mysql-test/include/circular_rpl_for_4_hosts_sync.inc23
-rw-r--r--mysql-test/include/cleanup_fake_relay_log.inc24
-rw-r--r--mysql-test/include/diff_master_slave.inc21
-rw-r--r--mysql-test/include/diff_tables.inc208
-rw-r--r--mysql-test/include/end_include_file.inc79
-rw-r--r--mysql-test/include/file_does_not_exist.inc17
-rw-r--r--mysql-test/include/force_restart.inc17
-rw-r--r--mysql-test/include/force_restart_if_skipped.inc17
-rw-r--r--mysql-test/include/have_innodb.inc8
-rw-r--r--mysql-test/include/io_thd_fault_injection.inc4
-rw-r--r--mysql-test/include/kill_query_and_diff_master_slave.inc8
-rw-r--r--mysql-test/include/master-slave-end.inc6
-rw-r--r--mysql-test/include/master-slave-reset.inc36
-rw-r--r--mysql-test/include/master-slave.inc69
-rw-r--r--mysql-test/include/mtr_check.sql10
-rw-r--r--mysql-test/include/mysqldump.inc3
-rw-r--r--mysql-test/include/ndb_master-slave.inc10
-rw-r--r--mysql-test/include/ndb_master-slave_2ch.inc165
-rw-r--r--mysql-test/include/ndb_not_readonly.inc6
-rw-r--r--mysql-test/include/report-features.test2
-rw-r--r--mysql-test/include/reset_master_and_slave.inc8
-rw-r--r--mysql-test/include/restart_mysqld.inc8
-rw-r--r--mysql-test/include/rpl_change_topology.inc248
-rw-r--r--mysql-test/include/rpl_connect.inc58
-rw-r--r--mysql-test/include/rpl_connection.inc47
-rw-r--r--mysql-test/include/rpl_diff.inc118
-rw-r--r--mysql-test/include/rpl_diff_tables.inc36
-rw-r--r--mysql-test/include/rpl_end.inc103
-rw-r--r--mysql-test/include/rpl_for_each_slave.inc39
-rw-r--r--mysql-test/include/rpl_generate_sync_chain.inc122
-rw-r--r--mysql-test/include/rpl_init.inc242
-rw-r--r--mysql-test/include/rpl_reconnect.inc132
-rw-r--r--mysql-test/include/rpl_reset.inc81
-rw-r--r--mysql-test/include/rpl_restart_server.inc39
-rw-r--r--mysql-test/include/rpl_start_server.inc54
-rw-r--r--mysql-test/include/rpl_start_slaves.inc32
-rw-r--r--mysql-test/include/rpl_stop_server.inc63
-rw-r--r--mysql-test/include/rpl_stop_slaves.inc33
-rw-r--r--mysql-test/include/rpl_sync.inc153
-rw-r--r--mysql-test/include/save_master_pos.inc33
-rw-r--r--mysql-test/include/setup_fake_relay_log.inc50
-rw-r--r--mysql-test/include/show_rpl_debug_info.inc131
-rw-r--r--mysql-test/include/show_slave_status.inc82
-rw-r--r--mysql-test/include/start_slave.inc32
-rw-r--r--mysql-test/include/stop_slave.inc89
-rw-r--r--mysql-test/include/stop_slave_io.inc43
-rw-r--r--mysql-test/include/stop_slave_sql.inc41
-rw-r--r--mysql-test/include/sync_io_with_master.inc46
-rw-r--r--mysql-test/include/sync_slave_io_with_master.inc50
-rw-r--r--mysql-test/include/sync_slave_sql_with_io.inc50
-rw-r--r--mysql-test/include/wait_for_query_to_fail.inc25
-rw-r--r--mysql-test/include/wait_for_slave_io_error.inc88
-rw-r--r--mysql-test/include/wait_for_slave_io_to_start.inc27
-rw-r--r--mysql-test/include/wait_for_slave_io_to_stop.inc50
-rw-r--r--mysql-test/include/wait_for_slave_param.inc117
-rw-r--r--mysql-test/include/wait_for_slave_sql_error.inc66
-rw-r--r--mysql-test/include/wait_for_slave_sql_error_and_skip.inc64
-rw-r--r--mysql-test/include/wait_for_slave_sql_to_start.inc30
-rw-r--r--mysql-test/include/wait_for_slave_sql_to_stop.inc50
-rw-r--r--mysql-test/include/wait_for_slave_to_start.inc30
-rw-r--r--mysql-test/include/wait_for_slave_to_stop.inc46
-rw-r--r--mysql-test/include/write_var_to_file.inc57
-rwxr-xr-xmysql-test/mysql-test-run.pl14
-rw-r--r--mysql-test/r/init_file.result1
-rw-r--r--mysql-test/r/mysqldump_restore.result10
-rw-r--r--mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result42
-rw-r--r--mysql-test/suite/binlog/r/binlog_drop_if_exists.result (renamed from mysql-test/suite/rpl/r/rpl_drop_if_exists.result)0
-rw-r--r--mysql-test/suite/binlog/r/binlog_old_versions.result1
-rw-r--r--mysql-test/suite/binlog/r/binlog_query_filter_rules.result (renamed from mysql-test/suite/rpl/r/rpl_binlog_query_filter_rules.result)0
-rw-r--r--mysql-test/suite/binlog/r/binlog_server_id.result (renamed from mysql-test/suite/rpl/r/rpl_server_id.result)0
-rw-r--r--mysql-test/suite/binlog/r/binlog_sf.result (renamed from mysql-test/suite/rpl/r/rpl_sf.result)0
-rw-r--r--mysql-test/suite/binlog/r/binlog_sql_mode.result8
-rw-r--r--mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt1
-rw-r--r--mysql-test/suite/binlog/t/binlog_drop_if_exists.test (renamed from mysql-test/suite/rpl/t/rpl_drop_if_exists.test)0
-rw-r--r--mysql-test/suite/binlog/t/binlog_old_versions.test4
-rw-r--r--mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt (renamed from mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules-master.opt)0
-rw-r--r--mysql-test/suite/binlog/t/binlog_query_filter_rules.test (renamed from mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules.test)0
-rw-r--r--mysql-test/suite/binlog/t/binlog_server_id.test (renamed from mysql-test/suite/rpl/t/rpl_server_id.test)0
-rw-r--r--mysql-test/suite/binlog/t/binlog_sf.test (renamed from mysql-test/suite/rpl/t/rpl_sf.test)4
-rw-r--r--mysql-test/suite/binlog/t/binlog_sql_mode.test5
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug12691.test4
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug23533.test9
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug31582.test2
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug31583.test2
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug33029.test1
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug36391.test3
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug37426.test3
-rw-r--r--mysql-test/suite/bugs/t/rpl_bug38205.test2
-rw-r--r--mysql-test/suite/manual/t/rpl_replication_delay.test12
-rw-r--r--mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test8
-rw-r--r--mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test2
-rw-r--r--mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test3
-rw-r--r--mysql-test/suite/parts/r/rpl_partition.result21
-rw-r--r--mysql-test/suite/parts/t/rpl_partition.test18
-rw-r--r--mysql-test/suite/rpl/include/rpl_mixed_ddl.inc3
-rw-r--r--mysql-test/suite/rpl/include/rpl_mixed_dml.inc3
-rw-r--r--mysql-test/suite/rpl/r/rpl000011.result16
-rw-r--r--mysql-test/suite/rpl/r/rpl_000010.result (renamed from mysql-test/suite/rpl/r/rpl000010.result)9
-rw-r--r--mysql-test/suite/rpl/r/rpl_000011.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_000013.result (renamed from mysql-test/suite/rpl/r/rpl000013.result)9
-rw-r--r--mysql-test/suite/rpl/r/rpl_000017.result (renamed from mysql-test/suite/rpl/r/rpl000017.result)13
-rw-r--r--mysql-test/suite/rpl/r/rpl_EE_err.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_LD_INFILE.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_alter.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_alter_db.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_auto_increment.result24
-rw-r--r--mysql-test/suite/rpl/r/rpl_auto_increment_11932.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result45
-rw-r--r--mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result65
-rw-r--r--mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result12
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_corruption.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_errors.result40
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_grant.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result34
-rw-r--r--mysql-test/suite/rpl/r/rpl_bit.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_bit_npk.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_blackhole.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_bug26395.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_bug31076.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_bug33931.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_bug38694.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_change_master.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_charset.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_charset_sjis.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result80
-rw-r--r--mysql-test/suite/rpl/r/rpl_colSize.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_commit_after_flush.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_concurrency_error.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_conditional_comments.result15
-rw-r--r--mysql-test/suite/rpl/r/rpl_create_database.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_create_if_not_exists.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_cross_version.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_current_user.result86
-rw-r--r--mysql-test/suite/rpl/r/rpl_deadlock_innodb.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_delete_no_where.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_do_grant.result45
-rw-r--r--mysql-test/suite/rpl/r/rpl_drop.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_drop_db.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_drop_temp.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_drop_view.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_dual_pos_advance.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_empty_master_crash.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_err_ignoredtable.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_events.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result (renamed from mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result)87
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result (renamed from mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result)87
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result (renamed from mysql-test/suite/rpl/r/rpl_extraCol_innodb.result)59
-rw-r--r--mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result (renamed from mysql-test/suite/rpl/r/rpl_extraCol_myisam.result)59
-rw-r--r--mysql-test/suite/rpl/r/rpl_failed_optimize.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result105
-rw-r--r--mysql-test/suite/rpl/r/rpl_flushlog_loop.result22
-rw-r--r--mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_found_rows.result15
-rw-r--r--mysql-test/suite/rpl/r/rpl_free_items.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_geometry.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_get_lock.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_grant.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_idempotency.result39
-rw-r--r--mysql-test/suite/rpl/r/rpl_ignore_grant.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_ignore_revoke.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_ignore_table.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_ignore_table_update.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_incident.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_init_slave.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_init_slave_errors.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_innodb.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_innodb_bug28430.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_innodb_bug30888.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_insert.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_insert_id.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_insert_id_pk.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_insert_ignore.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_insert_select.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_invoked_features.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_killed_ddl.result59
-rw-r--r--mysql-test/suite/rpl/r/rpl_known_bugs_detection.result19
-rw-r--r--mysql-test/suite/rpl/r/rpl_load_from_master.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_load_table_from_master.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata.result47
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_charset.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result47
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_fatal.result15
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_m.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_map.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_s.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_simple.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddata_symlink.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loaddatalocal.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_loadfile.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_locale.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_log_pos.result16
-rw-r--r--mysql-test/suite/rpl/r/rpl_manual_change_index_file.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_many_optimize.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_master_pos_wait.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_misc_functions.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_delete.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_delete2.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_engine.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_update.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_update2.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_update3.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_multi_update4.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_mysql_upgrade.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_name_const.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_not_null_innodb.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_not_null_myisam.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_optimize.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_packet.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_plugin_load.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_ps.result37
-rw-r--r--mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_read_only.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_relay_space_innodb.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_relay_space_myisam.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_relayrotate.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_relayspace.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_replicate_do.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_report.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_rewrt_db.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_rotate_logs.result25
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_001.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_4_bytes.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_NOW.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_USER.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_UUID.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result45
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result57
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result57
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_basic_8partition.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_blob_innodb.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_blob_myisam.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_colSize.result48
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_conflicts.result17
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_delayed_ins.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_drop.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_find_row.result25
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_func001.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_func002.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_func003.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_insert_delayed.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_log.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_log_innodb.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_max_relay_size.result19
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result36
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result45
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_reset_slave.result34
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp001.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result27
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp003.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp005.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result15
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp008.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp009.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp010.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp011.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_sp012.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result38
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_trig001.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_trig002.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_trig003.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_trig004.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_trunc_temp.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_until.result21
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_view01.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_wide_table.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_server_id1.result20
-rw-r--r--mysql-test/suite/rpl/r/rpl_server_id2.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_session_var.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_set_charset.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_set_null_innodb.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_set_null_myisam.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_show_slave_running.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_skip_error.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_grp_exec.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_load_in.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_skip.result13
-rw-r--r--mysql-test/suite/rpl/r/rpl_slave_status.result16
-rw-r--r--mysql-test/suite/rpl/r/rpl_slow_query_log.result16
-rw-r--r--mysql-test/suite/rpl/r/rpl_sp.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_sp004.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_sp_effects.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_sporadic_master.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_ssl.result41
-rw-r--r--mysql-test/suite/rpl/r/rpl_ssl1.result53
-rw-r--r--mysql-test/suite/rpl/r/rpl_start_stop_slave.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_000001.result12
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_EE_err2.result12
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_conflicts.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result29
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_loadfile.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_log.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result19
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result18
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_multi_query.result11
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_no_op.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_reset_slave.result34
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_sql_mode.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_until.result37
-rw-r--r--mysql-test/suite/rpl/r/rpl_stop_slave.result25
-rw-r--r--mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_temp_table.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result20
-rw-r--r--mysql-test/suite/rpl/r/rpl_temporary.result12
-rw-r--r--mysql-test/suite/rpl/r/rpl_temporary_errors.result14
-rw-r--r--mysql-test/suite/rpl/r/rpl_test_framework.result170
-rw-r--r--mysql-test/suite/rpl/r/rpl_timezone.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_trigger.result24
-rw-r--r--mysql-test/suite/rpl/r/rpl_trunc_temp.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_truncate_2myisam.result29
-rw-r--r--mysql-test/suite/rpl/r/rpl_truncate_3innodb.result29
-rw-r--r--mysql-test/suite/rpl/r/rpl_typeconv_innodb.result16
-rw-r--r--mysql-test/suite/rpl/r/rpl_udf.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_user.result9
-rw-r--r--mysql-test/suite/rpl/r/rpl_user_variables.result10
-rw-r--r--mysql-test/suite/rpl/r/rpl_variables.result26
-rw-r--r--mysql-test/suite/rpl/r/rpl_variables_stm.result19
-rw-r--r--mysql-test/suite/rpl/r/rpl_view.result9
-rwxr-xr-xmysql-test/suite/rpl/t/rpl000017-slave.sh12
-rw-r--r--mysql-test/suite/rpl/t/rpl000017.test22
-rw-r--r--mysql-test/suite/rpl/t/rpl_000010-slave.opt (renamed from mysql-test/suite/rpl/t/rpl000010-slave.opt)0
-rw-r--r--mysql-test/suite/rpl/t/rpl_000010.test (renamed from mysql-test/suite/rpl/t/rpl000010.test)1
-rw-r--r--mysql-test/suite/rpl/t/rpl_000011.test (renamed from mysql-test/suite/rpl/t/rpl000011.test)1
-rw-r--r--mysql-test/suite/rpl/t/rpl_000013.test (renamed from mysql-test/suite/rpl/t/rpl000013.test)10
-rw-r--r--mysql-test/suite/rpl/t/rpl_000017-slave.opt (renamed from mysql-test/suite/rpl/t/rpl000017-slave.opt)0
-rw-r--r--mysql-test/suite/rpl/t/rpl_000017.test48
-rw-r--r--mysql-test/suite/rpl/t/rpl_EE_err.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_LD_INFILE.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_alter.test15
-rw-r--r--mysql-test/suite/rpl/t/rpl_alter_db.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_auto_increment.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_auto_increment_11932.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test (renamed from mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test)51
-rw-r--r--mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test13
-rw-r--r--mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt1
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_corruption.test9
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_errors.test24
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_grant.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test56
-rw-r--r--mysql-test/suite/rpl/t/rpl_bit.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_bit_npk.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_blackhole.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_bug26395.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_bug31076.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_bug33931.test25
-rw-r--r--mysql-test/suite/rpl/t/rpl_bug38694.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_change_master.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_charset.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_charset_sjis.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf11
-rw-r--r--mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test285
-rw-r--r--mysql-test/suite/rpl/t/rpl_colSize.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_commit_after_flush.test8
-rw-r--r--mysql-test/suite/rpl/t/rpl_concurrency_error.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_conditional_comments.test20
-rw-r--r--mysql-test/suite/rpl/t/rpl_create_database.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_create_if_not_exists.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_critical_errors.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_cross_version.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_current_user.cnf7
-rw-r--r--mysql-test/suite/rpl/t/rpl_current_user.test131
-rw-r--r--mysql-test/suite/rpl/t/rpl_ddl.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_deadlock_innodb.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_delete_no_where.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_do_grant.test22
-rw-r--r--mysql-test/suite/rpl/t/rpl_drop.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_drop_db.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_drop_temp.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_drop_view.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_dual_pos_advance.test41
-rw-r--r--mysql-test/suite/rpl/t/rpl_empty_master_crash.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_err_ignoredtable.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_events.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_extraCol_innodb.test13
-rw-r--r--mysql-test/suite/rpl/t/rpl_extraCol_myisam.test12
-rw-r--r--mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test (renamed from mysql-test/suite/rpl/t/rpl_extraColmaster_innodb.test)7
-rw-r--r--mysql-test/suite/rpl/t/rpl_extra_col_master_myisam.test (renamed from mysql-test/suite/rpl/t/rpl_extraColmaster_myisam.test)7
-rw-r--r--mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test6
-rw-r--r--mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_failed_optimize.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt2
-rwxr-xr-xmysql-test/suite/rpl/t/rpl_flushlog_loop-master.sh5
-rw-r--r--mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt2
-rwxr-xr-xmysql-test/suite/rpl/t/rpl_flushlog_loop-slave.sh4
-rw-r--r--mysql-test/suite/rpl/t/rpl_flushlog_loop.test39
-rw-r--r--mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_found_rows.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_free_items.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_geometry.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_get_lock.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test21
-rw-r--r--mysql-test/suite/rpl/t/rpl_grant.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_idempotency.test80
-rw-r--r--mysql-test/suite/rpl/t/rpl_ignore_grant.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_ignore_revoke.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_ignore_table.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_ignore_table_update.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_incident.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_init_slave.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_init_slave_errors.test26
-rw-r--r--mysql-test/suite/rpl/t/rpl_innodb.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_innodb_bug28430.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_innodb_bug30888.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_insert.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_insert_id.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_insert_id_pk.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_insert_ignore.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_insert_select.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_invoked_features.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_killed_ddl.test21
-rw-r--r--mysql-test/suite/rpl/t/rpl_known_bugs_detection.test12
-rw-r--r--mysql-test/suite/rpl/t/rpl_load_from_master.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_load_table_from_master.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_charset.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_fatal.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_m.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_map.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_s.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_simple.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddata_symlink.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loaddatalocal.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_loadfile.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_locale.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_log_pos.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_manual_change_index_file.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_many_optimize.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_master_pos_wait.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_misc_functions.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_delete.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_delete2.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_engine.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_update.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_update2.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_update3.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_multi_update4.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_mysql_upgrade.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_name_const.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_not_null_innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_not_null_myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_optimize.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_packet.test49
-rw-r--r--mysql-test/suite/rpl/t/rpl_plugin_load.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_ps.test43
-rw-r--r--mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_read_only.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_relay_space_innodb.test18
-rw-r--r--mysql-test/suite/rpl/t/rpl_relay_space_myisam.test18
-rw-r--r--mysql-test/suite/rpl/t/rpl_relayrotate.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_relayspace.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_replicate_do.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_report.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_rewrt_db.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt1
-rwxr-xr-xmysql-test/suite/rpl/t/rpl_rotate_logs-slave.sh2
-rw-r--r--mysql-test/suite/rpl/t/rpl_rotate_logs.test17
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_001.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_4_bytes.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_NOW.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_USER.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_UUID.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test33
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_basic_8partition.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_blob_innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_blob_myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_colSize.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_conflicts.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_create_table.test34
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_delayed_ins.test4
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_drop.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_find_row.test9
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_func001.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_func002.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_func003.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test12
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_insert_delayed.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_log.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_log_innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test6
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp001.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp003.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp005.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp008.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp009.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp010.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp011.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_sp012.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_trig001.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_trig002.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_trig003.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_trig004.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_trunc_temp.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_until.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_view01.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_wide_table.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_server_id1.test30
-rw-r--r--mysql-test/suite/rpl/t/rpl_server_id2.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_session_var.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_set_charset.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_set_null_innodb.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_set_null_myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_show_slave_running.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_skip_error.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_grp_exec.test19
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_load_in.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test6
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test25
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_skip.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_slave_status.test17
-rw-r--r--mysql-test/suite/rpl/t/rpl_slow_query_log.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_sp.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_sp004.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_sp_effects.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_sporadic_master.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_ssl.test10
-rw-r--r--mysql-test/suite/rpl/t/rpl_ssl1.test27
-rw-r--r--mysql-test/suite/rpl/t/rpl_start_stop_slave.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_000001.test130
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_conflicts.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_loadfile.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_log.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_multi_query.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_no_op.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_sql_mode.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_stm_until.test11
-rw-r--r--mysql-test/suite/rpl/t/rpl_stop_slave.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_temp_table.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test17
-rw-r--r--mysql-test/suite/rpl/t/rpl_temporary.test15
-rw-r--r--mysql-test/suite/rpl/t/rpl_temporary_errors.test8
-rw-r--r--mysql-test/suite/rpl/t/rpl_test_framework.cnf46
-rw-r--r--mysql-test/suite/rpl/t/rpl_test_framework.test143
-rw-r--r--mysql-test/suite/rpl/t/rpl_timezone.test5
-rw-r--r--mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_trigger.test27
-rw-r--r--mysql-test/suite/rpl/t/rpl_trunc_temp.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_truncate_2myisam.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_truncate_3innodb.test2
-rw-r--r--mysql-test/suite/rpl/t/rpl_typeconv_innodb.test7
-rw-r--r--mysql-test/suite/rpl/t/rpl_udf.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_user.test1
-rw-r--r--mysql-test/suite/rpl/t/rpl_user_variables.test3
-rw-r--r--mysql-test/suite/rpl/t/rpl_variables.test30
-rw-r--r--mysql-test/suite/rpl/t/rpl_variables_stm.test25
-rw-r--r--mysql-test/suite/rpl/t/rpl_view.test1
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result12
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result17
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result31
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result15
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result57
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result14
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result18
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result15
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result21
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result17
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result31
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result16
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result11
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result9
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result57
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result9
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test3
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test18
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf7
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test21
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test7
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test11
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test19
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test23
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test1
-rw-r--r--mysql-test/suite/sys_vars/t/rpl_init_slave_func.test1
-rw-r--r--mysql-test/t/init_file.test2
740 files changed, 6993 insertions, 5607 deletions
diff --git a/client/mysqltest.cc b/client/mysqltest.cc
index b0ed1d88a51..a12c56c9657 100644
--- a/client/mysqltest.cc
+++ b/client/mysqltest.cc
@@ -7990,6 +7990,14 @@ int main(int argc, char **argv)
var_set_int("$VIEW_PROTOCOL", view_protocol);
var_set_int("$CURSOR_PROTOCOL", cursor_protocol);
+ var_set_int("$ENABLED_QUERY_LOG", 1);
+ var_set_int("$ENABLED_ABORT_ON_ERROR", 1);
+ var_set_int("$ENABLED_RESULT_LOG", 1);
+ var_set_int("$ENABLED_CONNECT_LOG", 0);
+ var_set_int("$ENABLED_WARNINGS", 1);
+ var_set_int("$ENABLED_INFO", 0);
+ var_set_int("$ENABLED_METADATA", 0);
+
DBUG_PRINT("info",("result_file: '%s'",
result_file_name ? result_file_name : ""));
verbose_msg("Results saved in '%s'.",
@@ -8132,20 +8140,62 @@ int main(int argc, char **argv)
case Q_RPL_PROBE: do_rpl_probe(command); break;
case Q_ENABLE_RPL_PARSE: do_enable_rpl_parse(command); break;
case Q_DISABLE_RPL_PARSE: do_disable_rpl_parse(command); break;
- case Q_ENABLE_QUERY_LOG: disable_query_log=0; break;
- case Q_DISABLE_QUERY_LOG: disable_query_log=1; break;
- case Q_ENABLE_ABORT_ON_ERROR: abort_on_error=1; break;
- case Q_DISABLE_ABORT_ON_ERROR: abort_on_error=0; break;
- case Q_ENABLE_RESULT_LOG: disable_result_log=0; break;
- case Q_DISABLE_RESULT_LOG: disable_result_log=1; break;
- case Q_ENABLE_CONNECT_LOG: disable_connect_log=0; break;
- case Q_DISABLE_CONNECT_LOG: disable_connect_log=1; break;
- case Q_ENABLE_WARNINGS: disable_warnings=0; break;
- case Q_DISABLE_WARNINGS: disable_warnings=1; break;
- case Q_ENABLE_INFO: disable_info=0; break;
- case Q_DISABLE_INFO: disable_info=1; break;
- case Q_ENABLE_METADATA: display_metadata=1; break;
- case Q_DISABLE_METADATA: display_metadata=0; break;
+ case Q_ENABLE_QUERY_LOG:
+ disable_query_log= 0;
+ var_set_int("$ENABLED_QUERY_LOG", 1);
+ break;
+ case Q_DISABLE_QUERY_LOG:
+ disable_query_log= 1;
+ var_set_int("$ENABLED_QUERY_LOG", 0);
+ break;
+ case Q_ENABLE_ABORT_ON_ERROR:
+ abort_on_error= 1;
+ var_set_int("$ENABLED_ABORT_ON_ERROR", 1);
+ break;
+ case Q_DISABLE_ABORT_ON_ERROR:
+ abort_on_error= 0;
+ var_set_int("$ENABLED_ABORT_ON_ERROR", 0);
+ break;
+ case Q_ENABLE_RESULT_LOG:
+ disable_result_log= 0;
+ var_set_int("$ENABLED_RESULT_LOG", 1);
+ break;
+ case Q_DISABLE_RESULT_LOG:
+ disable_result_log=1;
+ var_set_int("$ENABLED_RESULT_LOG", 0);
+ break;
+ case Q_ENABLE_CONNECT_LOG:
+ disable_connect_log=0;
+ var_set_int("$ENABLED_CONNECT_LOG", 1);
+ break;
+ case Q_DISABLE_CONNECT_LOG:
+ disable_connect_log=1;
+ var_set_int("$ENABLED_CONNECT_LOG", 0);
+ break;
+ case Q_ENABLE_WARNINGS:
+ disable_warnings= 0;
+ var_set_int("$ENABLED_WARNINGS", 1);
+ break;
+ case Q_DISABLE_WARNINGS:
+ disable_warnings= 1;
+ var_set_int("$ENABLED_WARNINGS", 0);
+ break;
+ case Q_ENABLE_INFO:
+ disable_info= 0;
+ var_set_int("$ENABLED_INFO", 1);
+ break;
+ case Q_DISABLE_INFO:
+ disable_info= 1;
+ var_set_int("$ENABLED_INFO", 0);
+ break;
+ case Q_ENABLE_METADATA:
+ display_metadata= 1;
+ var_set_int("$ENABLED_METADATA", 1);
+ break;
+ case Q_DISABLE_METADATA:
+ display_metadata= 0;
+ var_set_int("$ENABLED_METADATA", 0);
+ break;
case Q_SOURCE: do_source(command); break;
case Q_SLEEP: do_sleep(command, 0); break;
case Q_REAL_SLEEP: do_sleep(command, 1); break;
diff --git a/mysql-test/extra/rpl_tests/rpl_EE_err.test b/mysql-test/extra/rpl_tests/rpl_EE_err.test
index 205bbe79dac..0b3fec1f605 100644
--- a/mysql-test/extra/rpl_tests/rpl_EE_err.test
+++ b/mysql-test/extra/rpl_tests/rpl_EE_err.test
@@ -9,10 +9,6 @@
# check if START SLAVE, RESET SLAVE, CHANGE MASTER reset Last_slave_error and
# Last_slave_errno in SHOW SLAVE STATUS (1st and 3rd commands did not: bug 986).
####################################
-# Change Author: JBM
-# Change Date: 2006-01-11
-# Change: Split test per lars review
-####################################
#"REQUIREMENT: A master DROP TABLE on a table with non-existing MYI
# file must be correctly replicated to the slave"
####################################
@@ -23,8 +19,5 @@ flush tables;
let $MYSQLD_DATADIR= `select @@datadir`;
remove_file $MYSQLD_DATADIR/test/t1.MYI ;
drop table if exists t1;
-save_master_pos;
-connection slave;
-sync_with_master;
-# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_auto_increment.test b/mysql-test/extra/rpl_tests/rpl_auto_increment.test
index abf3b4ec676..d81ab15a945 100644
--- a/mysql-test/extra/rpl_tests/rpl_auto_increment.test
+++ b/mysql-test/extra/rpl_tests/rpl_auto_increment.test
@@ -1,14 +1,6 @@
#
# Test of auto_increment with offset
#
-#####################################
-# By: JBM
-# Date: 2006-02-10
-# Change: NDB does not support auto inc
-# in this usage. Currently there is no
-# plan to implment. Skipping test when
-# NDB is default engine.
-#####################################
-- source include/not_ndb_default.inc
-- source include/master-slave.inc
@@ -169,7 +161,7 @@ drop table t1;
# auto_increment fields if the values of them are 0. There is an inconsistency
# between slave and master. When MODE_NO_AUTO_VALUE_ON_ZERO are masters treat
#
-source include/master-slave-reset.inc;
+source include/rpl_reset.inc;
connection master;
--disable_warnings
@@ -210,12 +202,10 @@ INSERT INTO t2 VALUES(4);
FLUSH LOGS;
sync_slave_with_master;
-let $diff_table_1= master:test.t1;
-let $diff_table_2= slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1= master:test.t2;
-let $diff_table_2= slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
connection master;
@@ -228,16 +218,16 @@ let $MYSQLD_DATADIR= `SELECT @@DATADIR`;
--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL test
sync_slave_with_master;
-let $diff_table_1= master:test.t1;
-let $diff_table_2= slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1= master:test.t2;
-let $diff_table_2= slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
# End cleanup
+--connection master
DROP TABLE t1;
DROP TABLE t2;
SET SQL_MODE='';
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test b/mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test
index 0bfa46de113..30b25955ecb 100644
--- a/mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test
+++ b/mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test
@@ -29,8 +29,7 @@ commit;
sync_slave_with_master;
--echo #Test if the results are consistent on master and slave
--echo #for 'INSERT DATA INTO VIEW WHICH INVOKES TRIGGERS'
-let $diff_table_1=master:test.t3;
-let $diff_table_2=slave:test.t3;
+let $diff_tables= master:t3, slave:t3;
source include/diff_tables.inc;
connection master;
diff --git a/mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test b/mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test
index 614d79d9c2d..f93d435349f 100644
--- a/mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test
+++ b/mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test
@@ -60,14 +60,11 @@ connection master;
sync_slave_with_master;
--echo #Test if the results are consistent on master and slave
--echo #for 'INVOKES A TRIGGER with $trigger_action action'
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t4;
-let $diff_table_2=slave:test.t4;
+let $diff_tables= master:t4, slave:t4;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t6;
-let $diff_table_2=slave:test.t6;
+let $diff_tables= master:t6, slave:t6;
source include/diff_tables.inc;
connection master;
diff --git a/mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test b/mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test
index fece19b397d..d7c26ea42f1 100644
--- a/mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test
+++ b/mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test
@@ -41,11 +41,9 @@ connection master;
sync_slave_with_master;
--echo #Test if the results are consistent on master and slave
--echo #for 'CALLS A FUNCTION which INVOKES A TRIGGER with $insert_action action'
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t3;
-let $diff_table_2=slave:test.t3;
+let $diff_tables= master:t3, slave:t3;
source include/diff_tables.inc;
connection master;
diff --git a/mysql-test/extra/rpl_tests/rpl_charset.test b/mysql-test/extra/rpl_tests/rpl_charset.test
index 8bcb60b0227..e56642cbcb5 100644
--- a/mysql-test/extra/rpl_tests/rpl_charset.test
+++ b/mysql-test/extra/rpl_tests/rpl_charset.test
@@ -2,11 +2,7 @@
# This test will fail if the server/client does not support enough charsets.
source include/master-slave.inc;
---disable_warnings
set timestamp=1000000000;
-drop database if exists mysqltest2;
-drop database if exists mysqltest3;
---enable_warnings
create database mysqltest2 character set latin2;
set @@character_set_server=latin5;
@@ -151,6 +147,6 @@ eval create table `t1` (
set @p=_latin1 'test';
update t1 set pk='test' where pk=@p;
drop table t1;
-sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_commit_after_flush.test b/mysql-test/extra/rpl_tests/rpl_commit_after_flush.test
index 98638b0b1f6..7de4f421c35 100644
--- a/mysql-test/extra/rpl_tests/rpl_commit_after_flush.test
+++ b/mysql-test/extra/rpl_tests/rpl_commit_after_flush.test
@@ -1,16 +1,10 @@
-#################################
-# Test updated to use a wrapper #
-#################################
-
eval CREATE TABLE t1 (a INT) ENGINE=$engine_type;
begin;
insert into t1 values(1);
flush tables with read lock;
commit;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
# cleanup
connection master;
unlock tables;
diff --git a/mysql-test/extra/rpl_tests/rpl_conflicts.test b/mysql-test/extra/rpl_tests/rpl_conflicts.test
index 8a98059b0ad..943d254736d 100644
--- a/mysql-test/extra/rpl_tests/rpl_conflicts.test
+++ b/mysql-test/extra/rpl_tests/rpl_conflicts.test
@@ -139,8 +139,13 @@ if (`SELECT @@global.binlog_format = 'ROW' AND @@global.slave_exec_mode = 'STRIC
--echo ---- Wait until slave stops with an error ----
let $slave_sql_errno= 1032; # ER_KEY_NOT_FOUND
source include/wait_for_slave_sql_error.inc;
- let $err= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
- --echo Last_SQL_Error = $err (expected "can't find record" error)
+
+ --let $err= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1)
+ --replace_regex /end_log_pos [0-9]+/end_log_pos END_LOG_POS/
+ --disable_query_log
+ --eval SELECT "$err" as 'Last_SQL_Error (expected "duplicate key" error)'
+ --enable_query_log
+
SELECT * FROM t1;
--echo ---- Resolve the conflict on the slave and restart SQL thread ----
@@ -165,4 +170,4 @@ connection master;
DROP TABLE t1;
--echo [on slave]
-sync_slave_with_master;
+--sync_slave_with_master
diff --git a/mysql-test/extra/rpl_tests/rpl_ddl.test b/mysql-test/extra/rpl_tests/rpl_ddl.test
index f1064dc268f..3b0348cc29f 100644
--- a/mysql-test/extra/rpl_tests/rpl_ddl.test
+++ b/mysql-test/extra/rpl_tests/rpl_ddl.test
@@ -136,14 +136,6 @@ sync_slave_with_master;
connection master;
SET AUTOCOMMIT = 1;
#
-# 1. DROP all objects, which probably already exist, but must be created here
-#
---disable_warnings
-DROP DATABASE IF EXISTS mysqltest1;
-DROP DATABASE IF EXISTS mysqltest2;
-DROP DATABASE IF EXISTS mysqltest3;
---enable_warnings
-#
# 2. CREATE all objects needed
# working database is mysqltest1
# working table (transactional!) is mysqltest1.t1
@@ -619,6 +611,3 @@ connection master;
DROP DATABASE mysqltest1;
# mysqltest2 was alreday DROPPED some tests before.
DROP DATABASE mysqltest3;
---enable_warnings
-
--- source include/master-slave-end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_deadlock.test b/mysql-test/extra/rpl_tests/rpl_deadlock.test
index 607348ae97b..bd446c86943 100644
--- a/mysql-test/extra/rpl_tests/rpl_deadlock.test
+++ b/mysql-test/extra/rpl_tests/rpl_deadlock.test
@@ -131,3 +131,4 @@ sync_slave_with_master;
SET global max_relay_log_size= @my_max_relay_log_size;
--echo End of 5.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test b/mysql-test/extra/rpl_tests/rpl_extra_col_master.test
index 16c4bc8e2da..eb50149655e 100644
--- a/mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test
+++ b/mysql-test/extra/rpl_tests/rpl_extra_col_master.test
@@ -1,24 +1,7 @@
#############################################################
-# Author: Chuck
-#############################################################
# Purpose: To test having extra columns on the master WL#3915
# engine inspecific sourced part
#############################################################
-# Change Author: Jeb
-# Change: Cleanup and extend testing
-#############################################################
-# TODO: partition specific
-# -- source include/have_partition.inc
-# Note: Will be done in different test due to NDB using this
-# test case.
-############################################################
-
-########### Clean up ################
---disable_warnings
---disable_query_log
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t10,t11,t12,t13,t14,t15,t16,t17,t18,t31;
---enable_query_log
---enable_warnings
#
# Setup differently defined tables on master and slave
@@ -1025,8 +1008,3 @@ SELECT c1,hex(c4),c5 FROM t5 ORDER BY c1;
connection master;
DROP TABLE t5;
sync_slave_with_master;
---echo
-
-# END of 5.1 tests case
-
-
diff --git a/mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test b/mysql-test/extra/rpl_tests/rpl_extra_col_slave.test
index 3b8e7663ec7..882ef2c4e63 100644
--- a/mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test
+++ b/mysql-test/extra/rpl_tests/rpl_extra_col_slave.test
@@ -1,19 +1,10 @@
#################################################
-# Author: Jeb
-# Date: 2006-09-07
# Purpose: To test having extra columns on the slave.
##################################################
# Some tests in here requre partitioning
-- source include/have_partition.inc
-########### Clean up ################
---disable_warnings
---disable_query_log
-DROP TABLE IF EXISTS t1, t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t14a,t15,t16,t17;
---enable_query_log
---enable_warnings
-
#################################################
############ Different Table Def Test ###########
#################################################
@@ -448,9 +439,9 @@ if (`SELECT $engine_type != 'NDB'`)
}
#--echo *** Drop t9 ***
-#connection master;
-#DROP TABLE t9;
-#sync_slave_with_master;
+connection master;
+DROP TABLE t9;
+sync_slave_with_master;
############################################
# More columns in slave at middle of table #
@@ -725,6 +716,10 @@ sync_slave_with_master;
--replace_column 5 CURRENT_TIMESTAMP
SELECT * FROM t14a ORDER BY c1;
+--connection master
+DROP TABLE t14a;
+--sync_slave_with_master
+
####################################################
# - Alter Master Dropping columns from the middle. #
# Expect: columns dropped #
@@ -912,17 +907,3 @@ connection slave;
connection master;
DROP TABLE t17;
sync_slave_with_master;
-
-#### Clean Up ####
---disable_warnings
---disable_query_log
-connection master;
-DROP TABLE IF EXISTS t1, t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t14a,t15,t16,t17;
-sync_slave_with_master;
-connection master;
---enable_query_log
---enable_warnings
-
-# END 5.1 Test Case
-
-
diff --git a/mysql-test/extra/rpl_tests/rpl_failed_optimize.test b/mysql-test/extra/rpl_tests/rpl_failed_optimize.test
index cd81f2497b8..6817405b2d9 100644
--- a/mysql-test/extra/rpl_tests/rpl_failed_optimize.test
+++ b/mysql-test/extra/rpl_tests/rpl_failed_optimize.test
@@ -22,4 +22,5 @@ connection master;
select * from t1;
commit;
drop table t1;
--- sync_slave_with_master
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test b/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test
index 0a1a4503975..5e4fca4a4b8 100644
--- a/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test
+++ b/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test
@@ -54,7 +54,6 @@ unlock tables;
connection master;
drop table t3, t4, t5;
-sync_slave_with_master;
-
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_foreign_key.test b/mysql-test/extra/rpl_tests/rpl_foreign_key.test
index 8755bf5aa87..19cd1d783e1 100644
--- a/mysql-test/extra/rpl_tests/rpl_foreign_key.test
+++ b/mysql-test/extra/rpl_tests/rpl_foreign_key.test
@@ -60,6 +60,4 @@ select count(*) from t1 /* must be zero */;
connection master;
drop table t2,t1;
-sync_slave_with_master;
-
-
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
index c7e3d1abc03..01036f72785 100644
--- a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
+++ b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
@@ -40,26 +40,16 @@ if (!$debug_sync_action)
}
# Restart slave
---disable_warnings
-stop slave;
-source include/wait_for_slave_to_stop.inc;
+--source include/stop_slave.inc
eval SET @@global.debug= "+d,$dbug_sync_point";
-start slave;
-source include/wait_for_slave_to_start.inc;
+--source include/start_slave.inc
--echo slave is going to hang in get_master_version_and_clock
-connection master;
-# Write file to make mysql-test-run.pl expect the "crash", but don't start
-# it until it's told to
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--let $rpl_server_number= 1
+--source include/rpl_stop_server.inc
-# Send shutdown to the connected server and give
-# it 10 seconds to die before zapping it
-shutdown_server 10;
-
-connection slave;
--echo slave is unblocked
eval SET DEBUG_SYNC=$debug_sync_action;
@@ -74,6 +64,7 @@ connection slave;
# '1040' ER_CON_COUNT_ERROR
# '1053' ER_SERVER_SHUTDOWN
let $slave_io_errno= 1040, 1053, 2002, 2003, 2006, 2013;
+--let $slave_io_error_is_nonfatal= 1
source include/wait_for_slave_io_error.inc;
# deactivate the sync point of get_master_version_and_clock()
@@ -82,19 +73,12 @@ source include/wait_for_slave_io_error.inc;
# unset.
eval set @@global.debug = "-d,$dbug_sync_point";
-# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-
-connection master;
-# Turn on reconnect
---enable_reconnect
-
-# Call script that will poll the server waiting for it to be back online again
---source include/wait_until_connected_again.inc
-
-# Turn off reconnect again
---disable_reconnect
-
-connection slave;
-source include/wait_for_slave_to_start.inc;
+--let $rpl_server_number= 1
+--source include/rpl_start_server.inc
+# We don't source include/wait_for_slave_io_to_start.inc, because the
+# IO thread has an error and wait_for_slave_io_to_start.inc fails if
+# the IO thread has an error.
+--let $slave_param= Slave_IO_Running
+--let $slave_param_value= Yes
+--source include/wait_for_slave_param.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_insert_id.test b/mysql-test/extra/rpl_tests/rpl_insert_id.test
index bd815d9de02..38dfc818041 100644
--- a/mysql-test/extra/rpl_tests/rpl_insert_id.test
+++ b/mysql-test/extra/rpl_tests/rpl_insert_id.test
@@ -1,6 +1,4 @@
###########################################################
-# 2006-02-01: By JBM: Added 1022, ORDER BY
-###########################################################
# See if queries that use both auto_increment and LAST_INSERT_ID()
# are replicated well
############################################################
@@ -14,9 +12,6 @@
--echo #
use test;
---disable_warnings
-drop table if exists t1, t2, t3;
---enable_warnings
--echo #
--echo # See if queries that use both auto_increment and LAST_INSERT_ID()
@@ -42,9 +37,7 @@ eval create table t2(b int auto_increment, c int, key(b)) engine=$engine_type;
insert into t1 values (1),(2),(3);
insert into t1 values (null);
insert into t2 values (null,last_insert_id());
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
connection master;
@@ -63,9 +56,7 @@ insert into t1 values (null),(null),(null);
insert into t2 values (5,0);
insert into t2 values (null,last_insert_id());
SET FOREIGN_KEY_CHECKS=1;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1;
select * from t2;
connection master;
@@ -83,17 +74,13 @@ insert into t1 values (null),(null),(null);
insert into t2 values (5,0);
insert into t2 (c) select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
connection master;
drop table t1;
drop table t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
--echo #
--echo # Bug#8412: Error codes reported in binary log for CHARACTER SET,
@@ -208,9 +195,7 @@ call foo();
select * from t1;
select * from t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1;
select * from t2;
connection master;
@@ -548,4 +533,5 @@ connection master;
drop table t1, t2;
drop procedure foo;
SET @@global.concurrent_insert= @old_concurrent_insert;
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test b/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
index 844f93d0906..4b883ab90d7 100644
--- a/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
+++ b/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
@@ -1,6 +1,4 @@
###########################################################
-# 2006-02-08: By JBM:
-###########################################################
# See if queries that use both auto_increment and LAST_INSERT_ID()
# are replicated well
############################################################
@@ -20,9 +18,7 @@ create table t2(b int auto_increment, c int, primary key(b));
insert into t1 values (1),(2),(3);
insert into t1 values (null);
insert into t2 values (null,last_insert_id());
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
connection master;
@@ -41,9 +37,7 @@ insert into t1 values (null),(null),(null);
insert into t2 values (5,0);
insert into t2 values (null,last_insert_id());
SET FOREIGN_KEY_CHECKS=1;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1;
select * from t2;
connection master;
@@ -59,17 +53,13 @@ insert into t1 values (null),(null),(null);
insert into t2 values (5,0);
insert into t2 (c) select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1 ORDER BY a;
select * from t2 ORDER BY b;
connection master;
drop table t1;
drop table t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
#
# Bug#8412: Error codes reported in binary log for CHARACTER SET,
@@ -86,3 +76,5 @@ sync_slave_with_master;
connection master;
drop table t1;
# End of 4.1 tests
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_loaddata.test b/mysql-test/extra/rpl_tests/rpl_loaddata.test
index c4fa9f16dc7..4a21123e8a1 100644
--- a/mysql-test/extra/rpl_tests/rpl_loaddata.test
+++ b/mysql-test/extra/rpl_tests/rpl_loaddata.test
@@ -1,6 +1,3 @@
-# Requires statement logging
--- source include/have_binlog_format_statement.inc
-
# See if replication of a "LOAD DATA in an autoincrement column"
# Honours autoincrement values
# i.e. if the master and slave have the same sequence
@@ -14,13 +11,10 @@
# check if START SLAVE, RESET SLAVE, CHANGE MASTER reset Last_slave_error and
# Last_slave_errno in SHOW SLAVE STATUS (1st and 3rd commands did not: bug 986)
+-- source include/have_binlog_format_statement.inc
-- source include/master-slave.inc
source include/have_innodb.inc;
-connection slave;
-reset master;
-connection master;
-
# MTR is not case-sensitive.
let $lower_stmt_head= load data;
let $UPPER_STMT_HEAD= LOAD DATA;
@@ -45,9 +39,7 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata2.dat' into table t2 fi
create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
insert into t3 select * from t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from t1;
select * from t3;
@@ -59,9 +51,7 @@ drop table t2;
drop table t3;
create table t1(a int, b int, unique(b));
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
# See if slave stops when there's a duplicate entry for key error in LOAD DATA
@@ -72,21 +62,16 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
-# The SQL slave thread should be stopped now.
---source include/wait_for_slave_sql_to_stop.inc
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error_and_skip.inc
# Skip the bad event and see if error is cleared in SHOW SLAVE STATUS by START
# SLAVE, even though we are not executing any event (as sql_slave_skip_counter
# takes us directly to the end of the relay log).
-set global sql_slave_skip_counter=1;
-start slave;
sync_with_master;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
-echo Last_SQL_Errno=$last_error;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
-echo Last_SQL_Error;
-echo $last_error;
+--source include/check_slave_no_error.inc
# Trigger error again to test CHANGE MASTER
@@ -100,17 +85,15 @@ connection slave;
# The SQL slave thread should be stopped now.
# Exec_Master_Log_Pos should point to the start of Execute event
# for last load data.
---source include/wait_for_slave_sql_to_stop.inc
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error.inc
# CHANGE MASTER and see if error is cleared in SHOW SLAVE STATUS.
-stop slave;
+--source include/stop_slave_io.inc
change master to master_user='test';
change master to master_user='root';
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
-echo Last_SQL_Errno=$last_error;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
-echo Last_SQL_Error;
-echo $last_error;
+--source include/check_slave_no_error.inc
# Trigger error again to test RESET SLAVE
@@ -125,16 +108,14 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
# The SQL slave thread should be stopped now.
---source include/wait_for_slave_sql_to_stop.inc
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error.inc
# RESET SLAVE and see if error is cleared in SHOW SLAVE STATUS.
stop slave;
reset slave;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
-echo Last_SQL_Errno=$last_error;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
-echo Last_SQL_Error;
-echo $last_error;
+--source include/check_slave_no_error.inc
# Finally, see if logging is done ok on master for a failing LOAD DATA INFILE
@@ -165,6 +146,7 @@ terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
connection slave;
--source include/wait_for_slave_sql_to_stop.inc
drop table t1, t2;
+--source include/stop_slave_io.inc
connection master;
drop table t1, t2;
@@ -178,7 +160,8 @@ DROP TABLE IF EXISTS t1;
# BUG#48297: Schema name is ignored when LOAD DATA is written into binlog,
# replication aborts
--- source include/master-slave-reset.inc
+-- let $rpl_only_running_threads= 1
+-- source include/rpl_reset.inc
-- let $db1= b48297_db1
-- let $db2= b42897_db2
@@ -239,8 +222,7 @@ connect (conn2,localhost,root,,*NO-ONE*);
-- sync_slave_with_master
-- eval use $db1
-let $diff_table_1=master:$db1.t1;
-let $diff_table_2=slave:$db1.t1;
+let $diff_tables= master:$db1.t1, slave:$db1.t1;
source include/diff_tables.inc;
-- connection master
@@ -251,7 +233,7 @@ source include/diff_tables.inc;
-- sync_slave_with_master
# BUG#49479: LOAD DATA INFILE is binlogged without escaping field names
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
use test;
CREATE TABLE t1 (`key` TEXT, `text` TEXT);
@@ -262,6 +244,6 @@ SELECT * FROM t1;
-- sync_slave_with_master
-- connection master
DROP TABLE t1;
--- sync_slave_with_master
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_log.test b/mysql-test/extra/rpl_tests/rpl_log.test
index e714d84a51b..b812b6ebaee 100644
--- a/mysql-test/extra/rpl_tests/rpl_log.test
+++ b/mysql-test/extra/rpl_tests/rpl_log.test
@@ -124,7 +124,7 @@ DROP TABLE t3;
# Reset binlog so that show binlog events will not show the tests
# above.
-source include/master-slave-reset.inc;
+source include/rpl_reset.inc;
connection master;
create table t1(a int auto_increment primary key, b int);
diff --git a/mysql-test/extra/rpl_tests/rpl_max_relay_size.test b/mysql-test/extra/rpl_tests/rpl_max_relay_size.test
index 8415522ec92..d8cd4f2d284 100644
--- a/mysql-test/extra/rpl_tests/rpl_max_relay_size.test
+++ b/mysql-test/extra/rpl_tests/rpl_max_relay_size.test
@@ -6,9 +6,6 @@
# Requires statement logging
-- source include/master-slave.inc
-# We have to sync with master, to ensure slave had time to start properly
-# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log.
-sync_slave_with_master;
connection slave;
stop slave;
connection master;
@@ -117,3 +114,4 @@ set global max_binlog_size= @my_max_binlog_size;
--echo #
--echo # End of 4.1 tests
--echo #
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_multi_query.test b/mysql-test/extra/rpl_tests/rpl_multi_query.test
index 2438556450d..ae2a3aa45d2 100644
--- a/mysql-test/extra/rpl_tests/rpl_multi_query.test
+++ b/mysql-test/extra/rpl_tests/rpl_multi_query.test
@@ -7,9 +7,6 @@
# PS doesn't support multi-statements
--disable_ps_protocol
-- source include/master-slave.inc
---disable_warnings
-drop database if exists mysqltest;
---enable_warnings
create database mysqltest;
delimiter /;
@@ -25,4 +22,5 @@ select * from mysqltest.t1;
connection master;
source include/show_binlog_events.inc;
drop database mysqltest;
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_multi_update.test b/mysql-test/extra/rpl_tests/rpl_multi_update.test
index 121ae18daa8..bf7707f9d6d 100644
--- a/mysql-test/extra/rpl_tests/rpl_multi_update.test
+++ b/mysql-test/extra/rpl_tests/rpl_multi_update.test
@@ -19,12 +19,11 @@ SELECT * FROM t1 ORDER BY a;
SELECT * FROM t2 ORDER BY a;
UPDATE t1, t2 SET t1.b = t2.b WHERE t1.a = t2.a;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
# End of 4.1 tests
connection master;
drop table t1, t2;
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test b/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
index 3de1d42c34f..6b968fe2e86 100644
--- a/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
+++ b/mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test
@@ -226,7 +226,7 @@ connection master;
# Reset both slave and master
# This should reset binlog to #1
---source include/master-slave-reset.inc
+--source include/rpl_reset.inc
--echo
diff --git a/mysql-test/extra/rpl_tests/rpl_not_null.test b/mysql-test/extra/rpl_tests/rpl_not_null.test
index 58dbd9ce29f..86f49d1665c 100644
--- a/mysql-test/extra/rpl_tests/rpl_not_null.test
+++ b/mysql-test/extra/rpl_tests/rpl_not_null.test
@@ -71,12 +71,10 @@ INSERT INTO t4(a) VALUES (5);
sync_slave_with_master;
--echo TABLES t1 and t2 must be equal otherwise an error will be thrown.
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
--echo TABLES t2 and t3 must be different.
@@ -101,8 +99,7 @@ REPLACE INTO t1(a,b,c) VALUES (2, NULL, 300);
sync_slave_with_master;
--echo TABLES t1 and t2 must be equal otherwise an error will be thrown.
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
--echo ************* CLEANING *************
@@ -154,8 +151,7 @@ REPLACE INTO t1(a,b,c) VALUES (2, NULL, b'00');
--echo ************* SHOWING THE RESULT SETS WITH UPDATES and REPLACES *************
--echo TABLES t1 and t2 must be equal otherwise an error will be thrown.
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection master;
@@ -273,7 +269,7 @@ sync_slave_with_master;
# SELECT * FROM t3 ORDER BY a;
# connection slave;
# SELECT * FROM t3 ORDER BY a;
-# --source include/reset_master_and_slave.inc
+# --source include/rpl_reset.inc
#
# connection master;
#
diff --git a/mysql-test/extra/rpl_tests/rpl_record_compare.test b/mysql-test/extra/rpl_tests/rpl_record_compare.test
index dc27dcb1f9d..f29e4fb791a 100644
--- a/mysql-test/extra/rpl_tests/rpl_record_compare.test
+++ b/mysql-test/extra/rpl_tests/rpl_record_compare.test
@@ -4,7 +4,7 @@
#
-- echo ## case #1 - last_null_bit_pos==0 in record_compare without X bit
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
-- eval CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=$engine DEFAULT CHARSET=latin1
@@ -16,8 +16,7 @@ UPDATE t1 SET c5 = 'a';
-- enable_warnings
-- sync_slave_with_master
--- let $diff_table_1= master:test.t1
--- let $diff_table_2= slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
--connection master
@@ -26,7 +25,7 @@ DROP TABLE t1;
-- echo ## case #1.1 - last_null_bit_pos==0 in record_compare with X bit
-- echo ## (1 column less and no varchar)
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
-- eval CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=$engine DEFAULT CHARSET=latin1
@@ -38,8 +37,7 @@ UPDATE t1 SET c5 = 'a';
-- enable_warnings
-- sync_slave_with_master
--- let $diff_table_1= master:test.t1
--- let $diff_table_2= slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
--connection master
@@ -48,7 +46,7 @@ DROP TABLE t1;
-- echo ## case #2 - X bit is wrongly set.
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
-- eval CREATE TABLE t1 (c1 int, c2 varchar(1) default '') ENGINE=$engine DEFAULT CHARSET= latin1
@@ -57,8 +55,7 @@ INSERT INTO t1(c1) VALUES (NULL);
UPDATE t1 SET c1= 0;
-- sync_slave_with_master
--- let $diff_table_1= master:test.t1
--- let $diff_table_2= slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
diff --git a/mysql-test/extra/rpl_tests/rpl_reset_slave.test b/mysql-test/extra/rpl_tests/rpl_reset_slave.test
index 5c7d33d519e..04ab8751e39 100644
--- a/mysql-test/extra/rpl_tests/rpl_reset_slave.test
+++ b/mysql-test/extra/rpl_tests/rpl_reset_slave.test
@@ -54,9 +54,9 @@ source include/check_slave_no_error.inc;
change master to master_user='impossible_user_name';
start slave;
let $slave_io_errno= 1045;
-source include/wait_for_slave_io_error.inc;
+--source include/wait_for_slave_io_error.inc
+--source include/stop_slave_sql.inc
-source include/stop_slave.inc;
change master to master_user='root';
source include/start_slave.inc;
source include/check_slave_no_error.inc;
@@ -69,8 +69,11 @@ source include/stop_slave.inc;
change master to master_user='impossible_user_name';
start slave;
let $slave_io_errno= 1045;
-source include/wait_for_slave_io_error.inc;
+--source include/wait_for_slave_io_error.inc
+--source include/stop_slave_sql.inc
-source include/stop_slave.inc;
reset slave;
source include/check_slave_no_error.inc;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_row_UUID.test b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
index 9f2dbb4ce4b..368596d4fbc 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_UUID.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
@@ -75,5 +75,3 @@ diff_files $MYSQLTEST_VARDIR/tmp/rpl_row_UUID_master.sql $MYSQLTEST_VARDIR/tmp/r
# this cleanup as no other test will use these files and they'll
# be removed at next testsuite run.
-# End of 5.0 test case
--- source include/master-slave-end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_row_basic.test b/mysql-test/extra/rpl_tests/rpl_row_basic.test
index 84f7b79e733..c8de853a297 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_basic.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_basic.test
@@ -241,7 +241,7 @@ DELETE FROM t1;
sync_slave_with_master;
# Just to get a clean binary log
-source include/reset_master_and_slave.inc;
+--source include/rpl_reset.inc
--echo **** On Master ****
connection master;
@@ -353,8 +353,7 @@ INSERT INTO t1 VALUES (1, "", 1);
INSERT INTO t1 VALUES (2, repeat(_utf8'a', 16), 2);
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
--echo [expecting slave to replicate correctly]
@@ -363,8 +362,7 @@ INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
sync_slave_with_master;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
--echo [expecting slave to stop]
@@ -374,16 +372,12 @@ INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
connection slave;
# 1535 = ER_BINLOG_ROW_WRONG_TABLE_DEF
---let $slave_sql_errno= 1535
+--let $slave_sql_errno= 1535
--let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc
-connection master;
-RESET MASTER;
-connection slave;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
-source include/wait_for_slave_to_start.inc;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_reset.inc
--echo [expecting slave to replicate correctly]
connection master;
@@ -391,8 +385,7 @@ INSERT INTO t4 VALUES (1, "", 1);
INSERT INTO t4 VALUES (2, repeat(_utf8'a', 128), 2);
sync_slave_with_master;
-let $diff_table_1=master:test.t4;
-let $diff_table_2=slave:test.t4;
+let $diff_tables= master:t4, slave:t4;
source include/diff_tables.inc;
--echo [expecting slave to stop]
@@ -402,16 +395,11 @@ INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2);
connection slave;
# 1535 = ER_BINLOG_ROW_WRONG_TABLE_DEF
---let $slave_sql_errno= 1535
+--let $slave_sql_errno= 1535
--let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc
-connection master;
-RESET MASTER;
-connection slave;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
-source include/wait_for_slave_to_start.inc;
+
+--source include/rpl_reset.inc
--echo [expecting slave to stop]
connection master;
@@ -420,16 +408,11 @@ INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2);
connection slave;
# 1535 = ER_BINLOG_ROW_WRONG_TABLE_DEF
---let $slave_sql_errno= 1535
+--let $slave_sql_errno= 1535
--let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc
-connection master;
-RESET MASTER;
-connection slave;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
-source include/wait_for_slave_to_start.inc;
+
+--source include/rpl_reset.inc
--echo [expecting slave to replicate correctly]
connection master;
@@ -437,8 +420,7 @@ INSERT INTO t7 VALUES (1, "", 1);
INSERT INTO t7 VALUES (2, repeat(_utf8'a', 255), 2);
sync_slave_with_master;
-let $diff_table_1=master:test.t7;
-let $diff_table_2=slave:test.t7;
+let $diff_tables= master:t7, slave:t7;
source include/diff_tables.inc;
connection master;
@@ -458,8 +440,7 @@ UPDATE t1 SET a = 10;
INSERT INTO t1 VALUES (4);
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection master;
@@ -537,8 +518,7 @@ UPDATE t1 SET `int_key` = 4 ORDER BY `pk` LIMIT 6;
--sync_slave_with_master
--echo *** results: t2 must be consistent ****
-let $diff_table_1=master:test.t2;
-let $diff_table_2=master:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
--connection master
@@ -576,8 +556,7 @@ UPDATE t1 SET a = 8 WHERE a < 5;
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection master;
@@ -639,8 +618,7 @@ UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3;
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection master;
diff --git a/mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test b/mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test
index 214027160a9..bad308ff814 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test
@@ -14,9 +14,8 @@ flush tables;
SELECT * FROM t1 ORDER BY a;
sync_slave_with_master;
-connection master;
-sync_slave_with_master;
SELECT * FROM t1 ORDER BY a;
connection master;
drop table t1;
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_row_sp002.test b/mysql-test/extra/rpl_tests/rpl_row_sp002.test
index 5a2ab1912b8..c52cf344c5f 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_sp002.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_sp002.test
@@ -1,9 +1,6 @@
#############################################################################
# This test is being created to test out the non deterministic items with #
# row based replication. #
-# Original Author: JBM #
-# Original Date: Aug/09/2005 #
-# Updated: Aug/29/2005 #
#############################################################################
# Test: Contains two stored procedures test one that insert data into tables#
# and use the LAST_INSERTED_ID() on tables with FOREIGN KEY(a) #
@@ -13,9 +10,6 @@
# the table depending on the CASE outcome. The test uses this SP in a#
# transaction first rolling back and then commiting, #
#############################################################################
-# Mod Date: 08/22/2005 #
-# TEST: Added test to include UPDATE CASCADE on table with FK per Trudy #
-#############################################################################
@@ -24,18 +18,6 @@
-- source include/master-slave.inc
-# Begin clean up test section
-connection master;
---disable_warnings
-DROP PROCEDURE IF EXISTS test.p1;
-DROP PROCEDURE IF EXISTS test.p2;
-DROP PROCEDURE IF EXISTS test.p3;
-DROP TABLE IF EXISTS test.t3;
-DROP TABLE IF EXISTS test.t1;
-DROP TABLE IF EXISTS test.t2;
---enable_warnings
-# End of cleanup
-
# Begin test section 1
eval CREATE TABLE test.t1 (a INT AUTO_INCREMENT KEY, t CHAR(6)) ENGINE=$engine_type;
@@ -71,9 +53,7 @@ SELECT * FROM test.t2;
let $message=< -- test 1 select slave after p1 -- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
SELECT * FROM test.t2;
@@ -86,9 +66,7 @@ SELECT * FROM test.t2;
let $message=< -- test 1 select slave after p2 -- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
SELECT * FROM test.t2;
@@ -136,9 +114,7 @@ SELECT * FROM test.t2;
let $message=< -- test 2 select Slave after p1 -- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
SELECT * FROM test.t2;
@@ -153,9 +129,7 @@ SELECT * FROM test.t2;
let $message=< -- test 1 select Slave after p2 -- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
SELECT * FROM test.t2;
@@ -195,9 +169,7 @@ while ($n)
ROLLBACK;
select * from test.t3;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from test.t3;
connection master;
@@ -216,9 +188,7 @@ while ($n)
COMMIT;
select * from test.t3;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select * from test.t3;
connection master;
@@ -228,12 +198,12 @@ connection master;
# First lets cleanup
SET AUTOCOMMIT=1;
SET FOREIGN_KEY_CHECKS=0;
-DROP PROCEDURE IF EXISTS test.p3;
-DROP PROCEDURE IF EXISTS test.p1;
-DROP PROCEDURE IF EXISTS test.p2;
-DROP TABLE IF EXISTS test.t1;
-DROP TABLE IF EXISTS test.t2;
-DROP TABLE IF EXISTS test.t3;
-sync_slave_with_master;
+DROP PROCEDURE test.p3;
+DROP PROCEDURE test.p1;
+DROP PROCEDURE test.p2;
+DROP TABLE test.t1;
+DROP TABLE test.t2;
+DROP TABLE test.t3;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_row_sp007.test b/mysql-test/extra/rpl_tests/rpl_row_sp007.test
index 8f2b72e4d32..492cd2d88f1 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_sp007.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_sp007.test
@@ -1,8 +1,4 @@
#############################################################################
-# Original Author: JBM #
-# Original Date: Aug/15/2005 #
-# Updated: 08/29/2005 Remove sleeps #
-#############################################################################
# TEST: SP that creates table, starts tranaction inserts. Save point, insert#
# rollback to save point and then commits. #
#############################################################################
@@ -10,14 +6,6 @@
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
-# Begin clean up test section
-connection master;
---disable_warnings
-DROP PROCEDURE IF EXISTS test.p1;
-DROP TABLE IF EXISTS test.t1;
---enable_warnings
-# End of cleanup
-
# Begin test section 1
delimiter |;
eval CREATE PROCEDURE test.p1(IN i INT)
@@ -42,9 +30,7 @@ SELECT * FROM test.t1;
let $message=< ---- Slave selects-- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
let $message=< ---- Master selects-- >;
@@ -55,16 +41,15 @@ SELECT * FROM test.t1;
let $message=< ---- Slave selects-- >;
--source include/show_msg.inc
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM test.t1;
connection master;
#show binlog events;
-DROP PROCEDURE IF EXISTS test.p1;
-DROP TABLE IF EXISTS test.t1;
+DROP PROCEDURE test.p1;
+DROP TABLE test.t1;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_set_null.test b/mysql-test/extra/rpl_tests/rpl_set_null.test
index f2aba089279..3755c8bbfa5 100644
--- a/mysql-test/extra/rpl_tests/rpl_set_null.test
+++ b/mysql-test/extra/rpl_tests/rpl_set_null.test
@@ -29,7 +29,7 @@
# BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on
# delete cant find record
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
-- eval CREATE TABLE t1 (c1 BIT, c2 INT) Engine=$engine
@@ -37,8 +37,7 @@ INSERT INTO `t1` VALUES ( 1, 1 );
UPDATE t1 SET c1=NULL where c2=1;
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
@@ -46,15 +45,14 @@ UPDATE t1 SET c1=NULL where c2=1;
DELETE FROM t1 WHERE c2=1 LIMIT 1;
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
DROP TABLE t1;
-- sync_slave_with_master
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
@@ -68,8 +66,7 @@ SELECT * FROM t1;
UPDATE t1 SET c1=NULL WHERE c1='w';
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
@@ -77,8 +74,7 @@ UPDATE t1 SET c1=NULL WHERE c1='w';
DELETE FROM t1 LIMIT 2;
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
diff --git a/mysql-test/extra/rpl_tests/rpl_stm_000001.test b/mysql-test/extra/rpl_tests/rpl_stm_000001.test
deleted file mode 100644
index 4397e81aadf..00000000000
--- a/mysql-test/extra/rpl_tests/rpl_stm_000001.test
+++ /dev/null
@@ -1,131 +0,0 @@
-# Requires binlog_format=statement format since query involving
-# get_lock() is logged in row format if binlog_format=mixed or row.
--- source include/have_binlog_format_statement.inc
--- source include/master-slave.inc
-
-CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
-
-# Load some data into t1
-create table t1 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t1;
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
-select * from t1 limit 10;
-
-#
-# Test slave with wrong password
-#
-sync_slave_with_master;
-stop slave;
-connection master;
-set password for root@"localhost" = password('foo');
-connection slave;
-start slave;
-connection master;
-#
-# Give slave time to do at last one failed connect retry
-# This one must be short so that the slave will not stop retrying
-real_sleep 2;
-set password for root@"localhost" = password('');
-# Give slave time to connect (will retry every second)
-sleep 2;
-
-create table t3(n int);
-insert into t3 values(1),(2);
-sync_slave_with_master;
-select * from t3;
-select sum(length(word)) from t1;
-connection master;
-drop table t1,t3;
-sync_slave_with_master;
-
-# Test if the slave SQL thread can be more than 16K behind the slave
-# I/O thread (> IO_SIZE)
-
-connection master;
-# we'll use table-level locking to delay slave SQL thread
-eval create table t1 (n int) engine=$engine_type;
-sync_slave_with_master;
-connection master;
-reset master;
-connection slave;
-stop slave;
-reset slave;
-
-connection master;
-let $1=5000;
-# Generate 16K of relay log
-disable_query_log;
-while ($1)
-{
- eval insert into t1 values($1);
- dec $1;
-}
-enable_query_log;
-
-# Try to cause a large relay log lag on the slave by locking t1
-connection slave;
-lock tables t1 read;
-start slave;
-#hope this is long enough for I/O thread to fetch over 16K relay log data
-sleep 3;
-unlock tables;
-
-#test handling of aborted connection in the middle of update
-
-connection master;
-create table t2(id int);
-insert into t2 values(connection_id());
-
-connection master1;
-# Avoid generating result
-create temporary table t3(n int);
---disable_warnings
-insert into t3 select get_lock('crash_lock%20C', 1) from t2;
---enable_warnings
-
-connection master;
-send update t1 set n = n + get_lock('crash_lock%20C', 2);
-connection master1;
-sleep 3;
-select (@id := id) - id from t2;
-kill @id;
-# We don't drop t3 as this is a temporary table
-drop table t2;
-connection master;
-# The get_lock function causes warning for unsafe statement.
---disable_warnings
---error 1317,2013
-reap;
---enable_warnings
-connection slave;
-# The SQL slave thread should now have stopped because the query was killed on
-# the master (so it has a non-zero error code in the binlog).
---source include/wait_for_slave_sql_to_stop.inc
-
-# The following test can't be done because the result of Pos will differ
-# on different computers
-# --replace_result $MASTER_MYPORT MASTER_PORT
-# show slave status;
-
-set global sql_slave_skip_counter=1;
-start slave;
-select count(*) from t1;
-connection master1;
-drop table t1;
-create table t1 (n int);
-insert into t1 values(3456);
-insert into mysql.user (Host, User, Password)
- VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
-select select_priv,user from mysql.user where user = _binary'blafasel2';
-update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
-select select_priv,user from mysql.user where user = _binary'blafasel2';
-sync_slave_with_master;
-select n from t1;
-select select_priv,user from mysql.user where user = _binary'blafasel2';
-connection master1;
-drop table t1;
-delete from mysql.user where user="blafasel2";
-sync_slave_with_master;
-
-# End of 4.1 tests
diff --git a/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test b/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test
index 2c396c9a209..d4140785878 100644
--- a/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test
+++ b/mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test
@@ -30,6 +30,11 @@ let $errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
--echo Error: "$error" (expected different error codes on master and slave)
--echo Errno: "$errno" (expected 0)
drop table t1;
+--source include/stop_slave.inc
+# Clear error messages.
+RESET SLAVE;
# End of 4.1 tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test b/mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test
index 65d2483dc4b..cecbd45c02a 100644
--- a/mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test
+++ b/mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test
@@ -19,10 +19,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS t1 (c1 INT , c2 INT, c3 char(10), c4
SELECT 'abc' AS c3, 1 AS c4;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -36,10 +39,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS t1
SELECT 'abc', 2;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -57,10 +63,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS test.t1
SELECT 'abc', 20;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:test.t1,slave:test.t1
+ --source include/diff_tables.inc
}
USE test;
DROP DATABASE db1;
@@ -74,10 +83,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS t1
REPLACE SELECT '123', 2;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -89,10 +101,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS t1
IGNORE SELECT '123', 2;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -103,10 +118,14 @@ let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
eval CREATE $_temporary TABLE IF NOT EXISTS t1
SELECT '123', 2;
source include/show_binlog_events.inc;
+
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -121,10 +140,13 @@ eval CREATE $_temporary TABLE IF NOT EXISTS t1
IGNORE (SELECT '123', 3) UNION (SELECT '123', 4);
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
if (!$is_temporary)
@@ -155,10 +177,14 @@ let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
call p1(500);
call p1(600);
source include/show_binlog_events.inc;
+
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
DROP PROCEDURE p1;
@@ -173,10 +199,14 @@ EXECUTE stm USING @a;
SET @a= 800;
EXECUTE stm USING @a;
source include/show_binlog_events.inc;
+
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
--echo
@@ -224,10 +254,13 @@ eval /*!CREATE $_temporary TABLE IF NOT EXISTS t1
*/SELECT 'abc', 905;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+--connection master
+
if (!$is_temporary)
{
- let $diff_table= test.t1;
- source include/rpl_diff_tables.inc;
+ --let $diff_tables= master:t1,slave:t1
+ --source include/diff_tables.inc
}
DROP TABLE t2;
diff --git a/mysql-test/extra/rpl_tests/rpl_stop_slave.test b/mysql-test/extra/rpl_tests/rpl_stop_slave.test
index 7c88afe3532..ec6f297caec 100644
--- a/mysql-test/extra/rpl_tests/rpl_stop_slave.test
+++ b/mysql-test/extra/rpl_tests/rpl_stop_slave.test
@@ -52,8 +52,7 @@ source include/wait_for_slave_sql_to_stop.inc;
--echo # Slave should stop after the transaction has committed.
--echo # So t1 on master is same to t1 on slave.
-let diff_table_1=master:test.t1;
-let diff_table_2=slave:test.t1;
+let diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection slave;
diff --git a/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test b/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
index 3b6fe7a0ef4..bb740e59b11 100644
--- a/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
+++ b/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
@@ -1,12 +1,3 @@
-####################
-# Change Author: JBM
-# Change Date: 2006-01-17
-# Change: Added order by in select
-####################
-# Change Date: 2006-02-02
-# Change: renamed to make bettre sense,
-# and wrapped per Engine test
-############################
source include/master-slave.inc;
#
@@ -32,4 +23,4 @@ connection master;
DROP TABLE t1;
sync_slave_with_master;
-# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_test_framework.inc b/mysql-test/extra/rpl_tests/rpl_test_framework.inc
new file mode 100644
index 00000000000..fb42d2efb9a
--- /dev/null
+++ b/mysql-test/extra/rpl_tests/rpl_test_framework.inc
@@ -0,0 +1,86 @@
+# ==== Purpose ====
+#
+# Auxiliary file used by suite/rpl/t/rpl_test_framework.test
+#
+# The purpose is to check that the sync chain generated in
+# rpl_change_topology.inc (invoked from rpl_init.inc) is correct. This
+# is done in two ways:
+# (1) Print the sync chain.
+# (2) Execute a statement and verify that it replicates to all slaves.
+#
+#
+# ==== Implementation ====
+#
+# Does this:
+# (1) Set up a given replication topology (rpl_init.inc)
+# (2) Print $rpl_sync_chain
+# (3) Execute "DELETE FROM t1" and then "INSERT INTO t1" on the master
+# (4) Sync and compare all servers.
+# (5) Clean up the replication topology (rpl_end.inc)
+#
+# (Technical detail: Since DELETE FROM t1 is not executed at the end,
+# some servers may have rows left in t1 from a previous invocation of
+# rpl_test_framework.inc. Therefore, this file will only work in
+# statement mode where "DELETE FROM t1" removes rows that exist on
+# slave but not on master.)
+#
+#
+# ==== Usage ====
+#
+# --let $rpl_server_count= <number>
+# --let $rpl_topology= <topology specification>
+# --let $masters= <list of masters>
+# [--let $rpl_diff_servers= <list of servers>]
+# --source extra/rpl_tests/rpl_test_framework.inc
+#
+# Parameters:
+# $next_number
+# The INSERT statement will insert $next_number into t1, and
+# $next_number will increase by 1.
+#
+# $rpl_server_count, $rpl_topology:
+# See include/rpl_init.inc
+#
+# $masters
+# This should be a list of numbers, each identifying a server.
+# The DELETE and INSERT statements will be executed on all servers
+# in the list.
+#
+# $rpl_diff_servers
+# See include/rpl_diff.inc
+
+--source include/rpl_init.inc
+--source include/rpl_generate_sync_chain.inc
+--echo rpl_sync_chain= '$rpl_sync_chain'
+
+--inc $next_number
+
+# Iterate over masters
+while ($masters)
+{
+ --let $master_i= `SELECT SUBSTRING_INDEX('$masters', ',', 1)`
+ --let $masters= `SELECT SUBSTRING('$masters', LENGTH('$master_i') + 2)`
+
+ # Connect to master and execute statement
+ --let $rpl_connection_name= server_$master_i
+ --source include/rpl_connection.inc
+ DELETE FROM t1;
+ --eval INSERT INTO t1 VALUES ($next_number)
+}
+
+--source include/rpl_sync.inc
+
+# Compare all servers.
+--let $diff_tables= server_$rpl_server_count:t1
+--let $server_i= $rpl_server_count
+--dec $server_i
+while ($server_i)
+{
+ --let $diff_tables= server_$server_i:t1,$diff_tables
+ --dec $server_i
+}
+--source include/diff_tables.inc
+
+--let $diff_servers=
+--let $masters=
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_truncate.test b/mysql-test/extra/rpl_tests/rpl_truncate.test
index 7036ab126e1..c1d70b4dab2 100644
--- a/mysql-test/extra/rpl_tests/rpl_truncate.test
+++ b/mysql-test/extra/rpl_tests/rpl_truncate.test
@@ -1,11 +1,6 @@
-#
-# Copyright 2006 MySQL. All rights reserved.
-#
# Test to check for the different version of truncating a table.
# The statements are "TRUNCATE tbl" and "DELETE FROM tbl". We check
# the behaviour of each possible value for BINLOG_FORMAT.
-#
-# Author(s): Mats Kindahl
--source include/master-slave.inc
@@ -14,3 +9,5 @@ let $trunc_stmt = TRUNCATE TABLE;
let $trunc_stmt = DELETE FROM;
--source extra/rpl_tests/rpl_truncate_helper.test
+
+--source include/rpl_end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_truncate_helper.test b/mysql-test/extra/rpl_tests/rpl_truncate_helper.test
index cd1ce93177a..d1d0e06e32f 100644
--- a/mysql-test/extra/rpl_tests/rpl_truncate_helper.test
+++ b/mysql-test/extra/rpl_tests/rpl_truncate_helper.test
@@ -1,4 +1,4 @@
-source include/reset_master_and_slave.inc;
+--source include/rpl_reset.inc
--echo **** On Master ****
connection master;
@@ -10,8 +10,7 @@ connection master;
eval $trunc_stmt t1;
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
--echo ==== Test using a table with delete triggers ====
@@ -26,8 +25,7 @@ connection master;
eval $trunc_stmt t1;
sync_slave_with_master;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
connection master;
diff --git a/mysql-test/include/analyze-sync_with_master.test b/mysql-test/include/analyze-sync_with_master.test
index 684c0dbbab7..27b5a56c6b1 100644
--- a/mysql-test/include/analyze-sync_with_master.test
+++ b/mysql-test/include/analyze-sync_with_master.test
@@ -1,6 +1,9 @@
-SHOW PROCESSLIST;
+# ==== Purpose ====
+#
+# This is an auxiliary file that mysqltest executes when
+# sync_slave_with_master or sync_with_master fails. The purpose is to
+# print debug information.
-let $binlog_name= query_get_value("SHOW MASTER STATUS", File, 1);
-eval SHOW BINLOG EVENTS IN '$binlog_name';
-
-exit; \ No newline at end of file
+--let $rpl_server_count= 0
+--let $rpl_only_current_connection= 1
+--source include/show_rpl_debug_info.inc
diff --git a/mysql-test/include/assert.inc b/mysql-test/include/assert.inc
new file mode 100644
index 00000000000..34cc71e7c25
--- /dev/null
+++ b/mysql-test/include/assert.inc
@@ -0,0 +1,175 @@
+# ==== Purpose ====
+#
+# Check if a condition holds, fail with debug info if not.
+#
+# The condition is parsed before executed. The following constructs
+# are supported:
+#
+# [SQL_STATEMENT, COLUMN, ROW]
+# The square bracket is replaced by the result from SQL_STATEMENT,
+# in the given COLUMN and ROW.
+#
+# Optionally, SQL_STATEMENT may have the form:
+# connection:SQL_STATEMENT
+# In this case, SQL_STATEMENT is executed on the named connection.
+# All other queries executed by this script will be executed on
+# the connection that was in use when this script was started.
+# The current connection will also be restored at the end of this
+# script.
+#
+# Nested sub-statements on this form are not allowed.
+#
+# <1>
+# This is a shorthand for the result of the first executed square
+# bracket. <2> is a shorthand for the second executed square
+# bracket, and so on.
+#
+# ==== Usage ====
+#
+# --let $assert_text= Relay_Log_Pos must be between min_pos and max_pos
+# --let $assert_cond= [SHOW SLAVE STATUS, Relay_Log_Pos, 1] >= $min_pos AND <1> <= $max_pos
+# [--let $assert_quiet= 1]
+# [--let $rpl_debug= 1]
+# --source include/assert.inc
+#
+# Parameters:
+#
+# $assert_text
+# Text that describes what is being checked. This text is written to
+# the query log so it should not contain non-deterministic elements.
+#
+# $assert_cond
+# Condition to check. See above for details about the format. The
+# condition will be executed as `SELECT $assert_cond`.
+#
+# Both $assert_cond and the result from any substatement on the
+# form [SQL_STATEMENT, COLUMN, ROW] will be used in SQL statements,
+# inside single quotes (as in '$assert_text'). So any single quotes
+# in these texts must be escaped or replaced by double quotes.
+#
+# $rpl_debug
+# Print extra debug info.
+
+
+--let $include_filename= assert.inc [$assert_text]
+--source include/begin_include_file.inc
+
+if ($rpl_debug)
+{
+ --echo # debug: assert_text='$assert_text' assert_cond='$assert_cond'
+}
+
+# Sanity-check input
+if (!$assert_text)
+{
+ --die ERROR IN TEST: the mysqltest variable rpl_test must be set
+}
+
+--let $_assert_old_connection= $CURRENT_CONNECTION
+
+# Evaluate square brackets in cond.
+--let $_assert_substmt_number= 1
+--let $_assert_cond_interp= '$assert_cond'
+--let $_assert_lbracket= `SELECT LOCATE('[', $_assert_cond_interp)`
+while ($_assert_lbracket)
+{
+ # Get position of right bracket
+ --let $_assert_rbracket= `SELECT LOCATE(']', $_assert_cond_interp)`
+ if (!$_assert_rbracket)
+ {
+ --echo BUG IN TEST: Mismatching square brackets in assert_cond.
+ --echo Original assert_cond='$assert_cond'
+ --echo Interpolated assert_cond=$_assert_cond_interp
+ --die BUG IN TEST: Mismatching square brackets in $assert_cond
+ }
+
+ # Get sub-statement from statement. Preserve escapes for single quotes.
+ --let $_assert_full_substmt= `SELECT QUOTE(SUBSTRING($_assert_cond_interp, $_assert_lbracket + 1, $_assert_rbracket - $_assert_lbracket - 1))`
+
+ # Get connection from sub-statement
+ --let $_assert_colon= `SELECT IF($_assert_full_substmt REGEXP '^[a-zA-Z_][a-zA-Z_0-9]*:', LOCATE(':', $_assert_full_substmt), 0)`
+ --let $_assert_connection=
+ --let $_assert_substmt= $_assert_full_substmt
+ if ($_assert_colon)
+ {
+ --let $_assert_connection= `SELECT SUBSTRING($_assert_substmt, 1, $_assert_colon - 1)`
+ # Preserve escapes for single quotes.
+ --let $_assert_substmt= `SELECT QUOTE(SUBSTRING($_assert_substmt, $_assert_colon + 1))`
+ }
+
+ # Interpolate escapes before using condition outside string context.
+ --let $_assert_substmt_interp= `SELECT $_assert_substmt`
+
+ # Execute and get result from sub-statement
+ if ($_assert_connection)
+ {
+ if ($rpl_debug)
+ {
+ --echo # debug: connection='$_assert_connection' sub-statement=$_assert_substmt
+ }
+ --let $rpl_connection_name= $_assert_connection
+ --source include/rpl_connection.inc
+ --let $_assert_substmt_result= query_get_value($_assert_substmt_interp)
+ --let $rpl_connection_name= $_assert_old_connection
+ --source include/rpl_connection.inc
+ }
+ if (!$_assert_connection)
+ {
+ if ($rpl_debug)
+ {
+ --echo # debug: old connection, sub-statement=$_assert_substmt
+ }
+ --let $_assert_substmt_result= query_get_value($_assert_substmt_interp)
+ }
+ if ($rpl_debug)
+ {
+ --echo # debug: result of sub-statement='$_assert_substmt_result'
+ }
+
+ # Replace sub-statement by its result
+ --let $_assert_cond_interp= `SELECT QUOTE(REPLACE($_assert_cond_interp, CONCAT('[', $_assert_full_substmt, ']'), '$_assert_substmt_result'))`
+ # Replace result references by result
+ --let $_assert_cond_interp= `SELECT QUOTE(REPLACE($_assert_cond_interp, '<$_assert_substmt_number>', '$_assert_substmt_result'))`
+
+ --let $_assert_lbracket= `SELECT LOCATE('[', $_assert_cond_interp)`
+
+ --inc $_assert_substmt_number
+}
+
+# Interpolate escapes before using condition outside string context.
+--let $_assert_cond_interp= `SELECT $_assert_cond_interp`
+
+if ($rpl_debug)
+{
+ --echo # debug: interpolated_cond='$_assert_cond_interp'
+}
+
+# Execute.
+--let $_assert_result= `SELECT $_assert_cond_interp`
+
+if ($rpl_debug)
+{
+ --echo # debug: result='$_assert_result'
+}
+
+# Check.
+if (!$_assert_result)
+{
+ --echo ######## Test assertion failed: $assert_text ########
+ --echo Dumping debug info:
+ if ($rpl_inited)
+ {
+ --source include/show_rpl_debug_info.inc
+ }
+ --echo Assertion text: '$assert_text'
+ --echo Assertion condition: '$assert_cond'
+ --echo Assertion condition, interpolated: '$_assert_cond_interp'
+ --echo Assertion result: '$_assert_result'
+ --die Test assertion failed in assertion.inc
+}
+
+--let $include_filename= assert.inc [$assert_text]
+--source include/end_include_file.inc
+
+--let $assert_text=
+--let $assert_cond=
diff --git a/mysql-test/include/begin_include_file.inc b/mysql-test/include/begin_include_file.inc
new file mode 100644
index 00000000000..98d3a1743ee
--- /dev/null
+++ b/mysql-test/include/begin_include_file.inc
@@ -0,0 +1,82 @@
+# ==== Purpose ====
+#
+# This is an auxiliary file that facilitates writing include/*.inc
+# files. It has three purposes:
+#
+# 1. Store mtr's state at the beginning of the .inc file and restore
+# the state at the end. The following status is restored:
+#
+# disable_warnings
+# disable_query_log
+# disable_result_log
+# disable_abort_on_errors
+# Current connection
+#
+# 2. This file also prints the name of the .inc file that sources
+# it. Only the name of the top-level .inc file is printed: if
+# file_1.inc sources file_2.inc, then this file only prints
+# file_1.inc.
+#
+# 3. If the mysqltest variable $rpl_debug is set, then
+# this file will print:
+#
+# ==== BEGIN include/<filename> ====
+#
+# and end_include_file.inc will print
+#
+# ==== END include/<filename> ====
+#
+# These printouts are indented to make it easier to read the
+# result log.
+#
+#
+# ==== Usage ====
+#
+# # At the beginning of include/my_file.inc:
+# --let $include_filename= my_file.inc
+# [--let $rpl_debug= 1]
+# --source include/begin_include_file.inc
+#
+# # At the end of include/my_file.inc:
+# --let $include_filename= my_file.inc
+# --source include/end_include_file.inc
+#
+# Parameters:
+# $include_filename
+# The basename of the file: a file named /path/to/my_file.inc
+# should set $include_filename=my_file.inc. This parameter
+# must be provided both for begin_include_file.inc and
+# end_include_file.inc.
+#
+# $rpl_debug
+# If set, this script will print the following text:
+# ==== BEGIN include/$include_filename.inc ====
+
+
+# Print 'include/$include_filename', but only when invoked from
+# the top-level. We don't want to print
+# 'include/$include_filename' from all files included
+# recursively.
+if (!$_include_file_depth)
+{
+ --echo include/$include_filename
+}
+--inc $_include_file_depth
+if ($rpl_debug)
+{
+ --echo $_include_file_indent==== BEGIN include/$include_filename ====
+}
+
+--let $_include_file_enabled_warnings= $ENABLED_WARNINGS$_include_file_enabled_warnings
+--let $_include_file_enabled_query_log= $ENABLED_QUERY_LOG$_include_file_enabled_query_log
+--let $_include_file_enabled_result_log= $ENABLED_RESULT_LOG$_include_file_enabled_result_log
+--let $_include_file_enabled_abort_on_error= $ENABLED_ABORT_ON_ERROR$_include_file_enabled_abort_on_error
+--let $_include_file_connection= $CURRENT_CONNECTION,$_include_file_connection
+
+if ($rpl_debug)
+{
+ --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR'
+}
+
+--let $include_filename=
+--let $_include_file_indent= .$_include_file_indent
diff --git a/mysql-test/include/check-testcase.test b/mysql-test/include/check-testcase.test
index 6dcb01c13cf..88b56c95cec 100644
--- a/mysql-test/include/check-testcase.test
+++ b/mysql-test/include/check-testcase.test
@@ -8,8 +8,10 @@
# any unwanted side affects.
#
--disable_query_log
+--replace_column 5 # 6 # 7 # 8 # 9 # 10 # 22 # 23 # 24 # 25 # 26 #
+query_vertical
+SHOW SLAVE STATUS;
+
call mtr.check_testcase();
--enable_query_log
-
-
diff --git a/mysql-test/include/check_slave_is_running.inc b/mysql-test/include/check_slave_is_running.inc
index 5fbbe0d684c..88664da7fa7 100644
--- a/mysql-test/include/check_slave_is_running.inc
+++ b/mysql-test/include/check_slave_is_running.inc
@@ -2,17 +2,29 @@
#
# Assert that the slave threads are running and don't have any errors.
#
+#
# ==== Usage ====
#
-# --source include/check_slave_running.inc
+# [--let $rpl_debug= 1]
+# --source include/check_slave_is_running.inc
+#
+# Parameters:
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= check_slave_is_running.inc
+--source include/begin_include_file.inc
+
+
+--let $slave_param= Slave_IO_Running
+--let $slave_param_value= Yes
+--source include/check_slave_param.inc
---echo Checking that both slave threads are running.
+--let $slave_param= Slave_SQL_Running
+--let $slave_param_value= Yes
+--source include/check_slave_param.inc
---let $slave_sql_running = query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1)
---let $slave_io_running = query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1)
-if (`SELECT '$slave_sql_running' != 'Yes' OR '$slave_io_running' != 'Yes'`) {
- --echo Slave not running: Slave_SQL_Running = $slave_sql_running Slave_IO_Running = $slave_io_running
- --source include/show_rpl_debug_info.inc
- --die Expected slave to be running, but it was not running.
-}
+--let $include_filename= check_slave_is_running.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/check_slave_no_error.inc b/mysql-test/include/check_slave_no_error.inc
index 371db5ed6a0..9922b426ed6 100644
--- a/mysql-test/include/check_slave_no_error.inc
+++ b/mysql-test/include/check_slave_no_error.inc
@@ -1,12 +1,22 @@
# ==== Purpose ====
#
-# Assert that Slave_SQL_Error and Slave_IO_Error are empty.
+# Assert that Slave_SQL_Errno = Slave_IO_Errno = 0 in the output from
+# SHOW SLAVE STATUS.
+#
#
# ==== Usage ====
#
-# --let $slave_param= Exec_Master_Log_Pos
-# --let $slave_param_value= 4711
-# --source include/check_slave_running.inc
+# [--let $rpl_debug= 1]
+# --source include/check_slave_no_error.inc
+#
+# Parameters:
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= check_slave_no_error.inc
+--source include/begin_include_file.inc
+
--let $slave_param= Last_SQL_Errno
--let $slave_param_value= 0
@@ -15,3 +25,7 @@
--let $slave_param= Last_IO_Errno
--let $slave_param_value= 0
--source include/check_slave_param.inc
+
+
+--let $include_filename= check_slave_no_error.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/check_slave_param.inc b/mysql-test/include/check_slave_param.inc
index d82c26851ea..1e0e81308f2 100644
--- a/mysql-test/include/check_slave_param.inc
+++ b/mysql-test/include/check_slave_param.inc
@@ -4,13 +4,33 @@
#
# ==== Usage ====
#
-# --let $slave_param= Exec_Master_Log_Pos
-# --let $slave_param_value= 4711
+# --let $slave_param= COLUMN_NAME
+# --let $slave_param_value= VALUE
+# [--let $rpl_debug= 1]
# --source include/check_slave_param.inc
+#
+# Parameters:
+# $slave_param, $slave_param_value
+# Column name in output of SHOW SLAVE STATUS that should be checked,
+# and the expected value. Example:
+# --let $slave_param= Exec_Master_Log_Pos
+# --let $slave_param_value= 4711
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= check_slave_param.inc [$slave_param]
+--source include/begin_include_file.inc
+
--let $_param_value= query_get_value(SHOW SLAVE STATUS, $slave_param, 1)
if (`SELECT '$_param_value' != '$slave_param_value'`) {
- --echo Wrong value for $slave_param. Expected '$slave_param_value', got '$_param_value'
--source include/show_rpl_debug_info.inc
+ --echo Wrong value for $slave_param. Expected '$slave_param_value', got '$_param_value'
--die Wrong value for slave parameter
}
+
+
+--let $include_filename= check_slave_param.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/circular_rpl_for_4_hosts_init.inc b/mysql-test/include/circular_rpl_for_4_hosts_init.inc
deleted file mode 100644
index ac6654777db..00000000000
--- a/mysql-test/include/circular_rpl_for_4_hosts_init.inc
+++ /dev/null
@@ -1,130 +0,0 @@
-#############################################################
-#
-# Author: Serge Kozlov <skozlov@mysql.com>
-# Date: 03/11/2008
-# Purpose: Set up circular replication based on schema
-# A->B->C->D->A
-#
-# Notes:
-# 1. --slave-num=3 must be added to *-master.opt file
-# 2. Even the test uses new names for servers but file names
-# of log files are still old:
-# master_a -> master.[log|err]
-# master_b -> slave.[log|err]
-# master_c -> slave1.[log|err]
-# master_d -> slave2.[log|err]
-#
-#############################################################
---source include/master-slave.inc
-
-#
-# Set up circular ring by schema A->B->C->D->A
-#
-
---connection slave
-STOP SLAVE;
-RESET SLAVE;
-
-# master a
---connection master
---disconnect master
-connect (master_a,127.0.0.1,root,,test,$MASTER_MYPORT,);
-RESET MASTER;
---disable_warnings
-STOP SLAVE;
---enable_warnings
-RESET SLAVE;
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 1;
-let $_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
-
-# master b
---connection slave
---disconnect slave
-connect (master_b,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-RESET MASTER;
-RESET SLAVE;
---replace_result $MASTER_MYPORT MASTER_A_PORT $_binlog_file MASTER_A_LOG_FILE
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$MASTER_MYPORT,master_user='root',MASTER_LOG_FILE='$_binlog_file'
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 2;
-let $_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
-
-# master c
---connection slave1
---disconnect slave1
-connect (master_c,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
-RESET MASTER;
---disable_warnings
-STOP SLAVE;
---enable_warnings
-RESET SLAVE;
---replace_result $SLAVE_MYPORT MASTER_B_PORT $_binlog_file MASTER_B_LOG_FILE
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT,master_user='root',MASTER_LOG_FILE='$_binlog_file'
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 3;
-let $_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
-
-# master d
-connect (master_d,127.0.0.1,root,,test,$SLAVE_MYPORT2,);
-RESET MASTER;
---disable_warnings
-STOP SLAVE;
---enable_warnings
-RESET SLAVE;
---replace_result $SLAVE_MYPORT1 MASTER_C_PORT $_binlog_file MASTER_C_LOG_FILE
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT1,master_user='root',MASTER_LOG_FILE='$_binlog_file'
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 4;
-let $_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
-
-# master a
---connection master_a
---replace_result $SLAVE_MYPORT2 MASTER_D_PORT $_binlog_file MASTER_D_LOG_FILE
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT2,master_user='root',MASTER_LOG_FILE='$_binlog_file'
-
-
-
-# Check server_ids: they should be different
---connection master_a
-let $_id_a= query_get_value(SHOW VARIABLES LIKE 'server_id', Value, 1);
-SHOW VARIABLES LIKE 'auto_increment_%';
---connection master_b
-let $_id_b= query_get_value(SHOW VARIABLES LIKE 'server_id', Value, 1);
-SHOW VARIABLES LIKE 'auto_increment_%';
---connection master_c
-let $_id_c= query_get_value(SHOW VARIABLES LIKE 'server_id', Value, 1);
-SHOW VARIABLES LIKE 'auto_increment_%';
---connection master_d
-let $_id_d= query_get_value(SHOW VARIABLES LIKE 'server_id', Value, 1);
-SHOW VARIABLES LIKE 'auto_increment_%';
---connection master_a
-let $_compared_ids= (($_id_a <> $_id_b) AND ($_id_a <> $_id_c) AND ($_id_a <> $_id_d) AND ($_id_b <> $_id_c) AND ($_id_b <> $_id_d) AND ($_id_c <> $_id_d)) AS a;
-let $_compared_ids_result= query_get_value(SELECT $_compared_ids, a, 1);
---echo $_compared_ids_result
-
-# Start ring
---connection master_a
-connect(slave,127.0.0.1,root,,test,$MASTER_MYPORT);
-START SLAVE;
---source include/wait_for_slave_to_start.inc
---disconnect slave
-
---connection master_b
-connect(slave,127.0.0.1,root,,test,$SLAVE_MYPORT1);
-START SLAVE;
---source include/wait_for_slave_to_start.inc
---disconnect slave
-
---connection master_c
-connect(slave,127.0.0.1,root,,test,$SLAVE_MYPORT);
-START SLAVE;
---source include/wait_for_slave_to_start.inc
---disconnect slave
-
---connection master_d
-connect(slave,127.0.0.1,root,,test,$SLAVE_MYPORT2);
-START SLAVE;
---source include/wait_for_slave_to_start.inc
---disconnect slave
-
diff --git a/mysql-test/include/circular_rpl_for_4_hosts_sync.inc b/mysql-test/include/circular_rpl_for_4_hosts_sync.inc
deleted file mode 100644
index 68aede76913..00000000000
--- a/mysql-test/include/circular_rpl_for_4_hosts_sync.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-#############################################################
-#
-# Author: Serge Kozlov <skozlov@mysql.com>
-# Date: 03/11/2008
-# Purpose: Sync all hosts for circular replication based on
-# schema A->B->C->D->A
-#
-# Notes: see include/circular_rpl_for_4_hosts_init.inc
-#
-#############################################################
-
-# Make the full loop of sync
---connection master_a
---disable_query_log
---sync_slave_with_master master_b
---sync_slave_with_master master_c
---sync_slave_with_master master_d
---sync_slave_with_master master_a
---sync_slave_with_master master_b
---sync_slave_with_master master_c
---save_master_pos
---connection master_a
---enable_query_log
diff --git a/mysql-test/include/cleanup_fake_relay_log.inc b/mysql-test/include/cleanup_fake_relay_log.inc
index 43aa46cb657..921484ec695 100644
--- a/mysql-test/include/cleanup_fake_relay_log.inc
+++ b/mysql-test/include/cleanup_fake_relay_log.inc
@@ -1,16 +1,28 @@
# ==== Purpose ====
#
-# Clean up files create by setup_fake_relay_log.inc.
+# Clean up files created by setup_fake_relay_log.inc.
#
# ==== Usage ====
#
# See setup_fake_relay_log.inc
---echo Cleaning up after setup_fake_relay_log.inc
+--let $include_filename= cleanup_fake_relay_log.inc
+--source include/begin_include_file.inc
+
-# Remove files.
-remove_file $_fake_relay_log;
-remove_file $_fake_relay_index;
--disable_query_log
+RESET SLAVE;
+
+# Assert that the fake relay log files are gone (RESET SLAVE should
+# have removed them).
+--let $file_does_not_exist= $_fake_relay_log
+--source include/file_does_not_exist.inc
+
+# Revert variables.
eval SET @@global.relay_log_purge= $_fake_relay_log_purge;
---enable_query_log
+
+eval CHANGE MASTER TO MASTER_HOST = '$_fake_old_master_host';
+
+
+--let $include_filename= cleanup_fake_relay_log.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/diff_master_slave.inc b/mysql-test/include/diff_master_slave.inc
deleted file mode 100644
index b6d79190671..00000000000
--- a/mysql-test/include/diff_master_slave.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-# ==== Purpose ====
-#
-# Diff the output of a statement on master and slave
-#
-# ==== Usage =====
-#
-# let $diff_statement= SELECT * FROM t1 WHERE a < 100;
-# source include/diff_master_slave.inc;
-
---echo source include/diff_master_slave.inc;
-disable_query_log;
-disable_result_log;
-
-exec $MYSQL test -e "$diff_statement" > $MYSQLTEST_VARDIR/tmp/diff_master.out;
-sync_slave_with_master;
-exec $MYSQL_SLAVE test -e "$diff_statement" > $MYSQLTEST_VARDIR/tmp/diff_slave.out;
-
-diff_files $MYSQLTEST_VARDIR/tmp/diff_master.out $MYSQLTEST_VARDIR/tmp/diff_slave.out;
-
-enable_result_log;
-enable_query_log;
diff --git a/mysql-test/include/diff_tables.inc b/mysql-test/include/diff_tables.inc
index 81362e8643b..94921b02f13 100644
--- a/mysql-test/include/diff_tables.inc
+++ b/mysql-test/include/diff_tables.inc
@@ -1,35 +1,41 @@
# ==== Purpose ====
#
-# Check if the two given tables (possibly residing on different
-# master/slave servers) are equal.
+# Check if all tables in the given list are equal. The tables may have
+# different names, exist in different connections, and/or reside in
+# different databases.
+#
#
# ==== Usage ====
#
-# The tables to check are given by the test language variables
-# $diff_table_1 and $diff_table_2. They must be of the
-# following form:
+# --let $diff_tables= [con1:][db1.]t1, [con2:][db2.]t2, ... , [conN:][dbN.]tN
+# [--let $rpl_debug= 1]
+# --source include/diff_tables.inc
+#
+# Parameters:
+# $diff_tables
+# Comma-separated list of tables to compare. Each table has the form
+#
+# [CONNECTION:][DATABASE.]table
#
-# [master:|slave:]database.table
+# If CONNECTION is given, then that connection is used. If
+# CONNECTION is not given, then the connection of the previous
+# table is used (or the current connection, if this is the first
+# table). If DATABASE is given, the table is read in that
+# database. If DATABASE is not given, the table is read in the
+# connection's current database.
+#
+# $rpl_debug
+# See include/rpl_init.inc
#
-# I.e., both database and table must be speicified. Optionally, you
-# can prefix the name with 'master:' (to read the table on master) or
-# with 'slave:' (to read the table on slave). If no prefix is given,
-# reads the table from the current connection. If one of these
-# variables has a prefix, both should have a prefix.
#
# ==== Side effects ====
#
-# - Prints "Comparing tables $diff_table_1 and $diff_tables_2".
+# - Prints "include/diff_tables.inc [$diff_tables]".
#
# - If the tables are different, prints the difference in a
# system-specific format (unified diff if supported) and generates
# an error.
#
-# - If $diff_table_1 or $diff_table_2 begins with 'master:' or
-# 'slave:', it will stay connected to one of those hosts after
-# execution. The host is only guaranteed to remain unchanged if
-# none of $diff_table_1 or $diff_table_2 begins with 'master:' or
-# 'slave:'.
#
# ==== Bugs ====
#
@@ -50,69 +56,135 @@
# by character case.
+--let $include_filename= diff_tables.inc [$diff_tables]
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+# Check sanity
+if (`SELECT LOCATE(',', '$diff_tables') = 0`)
+{
+ --die ERROR IN TEST: $diff_tables must contain at least two tables (separated by comma)
+}
+
+
# ==== Save both tables to file ====
---echo Comparing tables $diff_table_1 and $diff_table_2
-disable_query_log;
-
---error 0,1
---remove_file $MYSQLTEST_VARDIR/tmp/diff_table_1
---error 0,1
---remove_file $MYSQLTEST_VARDIR/tmp/diff_table_2
-
-let $_diff_table=$diff_table_2;
-let $_diff_i=2;
-while ($_diff_i) {
-
- # Parse out any leading "master:" or "slave:" from the table specification
-# and connect the appropriate server.
- let $_pos= `SELECT LOCATE(':', '$_diff_table')`;
- let $_diff_conn=`SELECT SUBSTR('$_diff_table', 1, $_pos-1)`;
- if (`SELECT 'XX$_diff_conn' <> 'XX'`) {
- let $_diff_table=`SELECT SUBSTR('$_diff_table', $_pos+1)`;
- connection $_diff_conn;
+# Trim off whitespace
+--let $_dt_tables= `SELECT REPLACE('$diff_tables', ' ', '')`
+
+# Iterate over all tables
+--let $_dt_outfile=
+--let $_dt_prev_outfile=
+while (`SELECT '$_dt_tables' != ''`)
+{
+ --let $_dt_table= `SELECT SUBSTRING_INDEX('$_dt_tables', ',', 1)`
+ --let $_dt_tables= `SELECT SUBSTRING('$_dt_tables', LENGTH('$_dt_table') + 2)`
+
+ # Parse connection, if any
+ --let $_dt_colon_index= `SELECT LOCATE(':', '$_dt_table')`
+ if ($_dt_colon_index)
+ {
+ --let $_dt_connection= `SELECT SUBSTRING('$_dt_table', 1, $_dt_colon_index - 1)`
+ --let $_dt_table= `SELECT SUBSTRING('$_dt_table', $_dt_colon_index + 1)`
+ --let $rpl_connection_name= $_dt_connection
+ --source include/rpl_connection.inc
+ }
+
+ # Parse database name, if any
+ --let $_dt_database_index= `SELECT LOCATE('.', '$_dt_table')`
+ if ($_dt_database_index)
+ {
+ --let $_dt_database= `SELECT SUBSTRING('$_dt_table', 1, $_dt_database_index - 1)`
+ --let $_dt_table= `SELECT SUBSTRING('$_dt_table', $_dt_database_index + 1)`
+ }
+ if (!$_dt_database_index)
+ {
+ --let $_dt_database= `SELECT DATABASE()`
}
- # Sanity-check the input.
- let $_diff_error= `SELECT '$_diff_table' NOT LIKE '_%._%'`;
- if ($_diff_error) {
- --echo !!!ERROR IN TEST: \$diff_table_$_diff_i='$_diff_table' is not in the form database.table
- exit;
+ if ($rpl_debug)
+ {
+ --echo con='$_dt_connection' db='$_dt_database' table='$_dt_table'
+ --echo rest of tables='$_dt_tables'
}
- # We need the output files to be sorted (so that diff_files does not
- # think the files are different just because they are differently
- # ordered). To this end, we first generate a query that sorts the
- # table by all columns. Since ORDER BY accept column indices, we
- # just generate a comma-separated list of all numbers from 1 to the
- # number of columns in the table.
- let $_diff_column_index=`SELECT MAX(ordinal_position)
- FROM information_schema.columns
- WHERE CONCAT(table_schema, '.', table_name) =
- '$_diff_table'`;
- let $_diff_column_list=$_diff_column_index;
- dec $_diff_column_index;
- while ($_diff_column_index) {
- let $_diff_column_list=$_diff_column_index, $_diff_column_list;
- dec $_diff_column_index;
+ # We need to sort the output files so that diff_files does not think
+ # the tables are different just because the rows are differently
+ # ordered. To this end, we first generate a string containing a
+ # comma-separated list of all column names. This is used in the
+ # ORDER BY clause of the following SELECT statement. We get the
+ # column names from INFORMATION_SCHEMA.COLUMNS, and we concatenate
+ # them with GROUP_CONCAT. Since GROUP_CONCAT is limited by the
+ # @@SESSION.group_concat_max_len, which is only 1024 by default, we
+ # first compute the total size of all columns and then increase this
+ # limit if needed. We restore the limit afterwards so as not to
+ # interfere with the test case.
+
+ # Compute length of ORDER BY clause.
+ let $_dt_order_by_length=
+ `SELECT SUM(LENGTH(column_name) + 3) FROM information_schema.columns
+ WHERE table_schema = '$_dt_database' AND table_name = '$_dt_table'`;
+ if (!$_dt_order_by_length)
+ {
+ --echo ERROR IN TEST: table $_dt_database.$_dt_table not found in INFORMATION_SCHEMA.COLUMNS. Did you misspell it?
+ --die ERROR IN TEST: table not found in INFORMATION_SCHEMA. Did you misspell it?
+ }
+ --let $_dt_old_group_concat_max_len=
+ # Increase group_concat_max_len if needed.
+ if (`SELECT $_dt_order_by_length > @@SESSION.group_concat_max_len`)
+ {
+ --let $_dt_old_group_concat_max_len= `SELECT @@SESSION.group_concat_max_len`
+ --eval SET SESSION group_concat_max_len = $_dt_order_by_length;
+ if ($rpl_debug)
+ {
+ --echo # increasing group_concat_max_len from $_dt_old_group_concat_max_len to $_dt_order_by_length
+ }
+ }
+ # Generate ORDER BY clause.
+ # It would be better to do GROUP_CONCAT(CONCAT('`', column_name, '`')) but
+ # BUG#58087 prevents us from returning strings that begin with backticks.
+ let $_dt_column_list=
+ `SELECT GROUP_CONCAT(column_name ORDER BY ORDINAL_POSITION SEPARATOR '`,`')
+ FROM information_schema.columns
+ WHERE table_schema = '$_dt_database' AND table_name = '$_dt_table'`;
+ # Restore group_concat_max_len.
+ if ($_dt_old_group_concat_max_len)
+ {
+ --let $_dt_dummy= `SET SESSION group_concat_max_len = $_dt_old_group_concat_max_len
+ }
+ if ($rpl_debug)
+ {
+ --echo using ORDER BY clause '`$_dt_column_list`'
}
# Now that we have the comma-separated list of columns, we can write
# the table to a file.
- eval SELECT * FROM $_diff_table ORDER BY $_diff_column_list
- INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/diff_table_$_diff_i';
+ --let $_dt_outfile= `SELECT @@datadir`
+ --let $_dt_outfile= $_dt_outfile/diff_table-$_dt_connection-$_dt_database-$_dt_table
+ eval SELECT * FROM $_dt_database.$_dt_table ORDER BY `$_dt_column_list` INTO OUTFILE '$_dt_outfile';
- # Do the same for $diff_table_1.
- dec $_diff_i;
- let $_diff_table=$diff_table_1;
+ # Compare files.
+ if ($_dt_prev_outfile)
+ {
+ if ($rpl_debug)
+ {
+ --echo # diffing $_dt_prev_outfile vs $_dt_outfile
+ }
+ --diff_files $_dt_prev_outfile $_dt_outfile
+ # Remove previous outfile. Keep current file for comparison with next table.
+ --remove_file $_dt_prev_outfile
+ }
+ --let $_dt_prev_outfile= $_dt_outfile
}
+--remove_file $_dt_prev_outfile
-# ==== Compare the generated files ====
-
-diff_files $MYSQLTEST_VARDIR/tmp/diff_table_1 $MYSQLTEST_VARDIR/tmp/diff_table_2;
-
---remove_file $MYSQLTEST_VARDIR/tmp/diff_table_1
---remove_file $MYSQLTEST_VARDIR/tmp/diff_table_2
-enable_query_log;
+--let $include_filename= diff_tables.inc [$diff_tables]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/end_include_file.inc b/mysql-test/include/end_include_file.inc
new file mode 100644
index 00000000000..1e546c1215b
--- /dev/null
+++ b/mysql-test/include/end_include_file.inc
@@ -0,0 +1,79 @@
+# ==== Purpose ====
+#
+# See include/begin_include_file.inc
+#
+#
+# ==== Usage ====
+#
+# # At the end of include/my_file.inc:
+# --let $include_filename= my_file.inc
+# [--let $skip_restore_connection= 1]
+# [--let $rpl_debug= 1]
+# --source include/begin_include_file.inc
+#
+# Parameters:
+# $include_filename
+# Name of file that sources this file.
+#
+# $skip_restore_connection
+# By default, this script restores the connection that was active
+# when begin_include_file.inc was sourced. If
+# $skip_restore_connection is set, then this step is skipped and
+# end_include_file.inc leaves the connection as it was before
+# end_include_file.inc was sourced.
+
+--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_warnings', 1, 1)`
+--let $_include_file_enabled_warnings= `SELECT SUBSTRING('$_include_file_enabled_warnings', 2)`
+if ($_tmp) {
+ --enable_warnings
+}
+if (!$_tmp) {
+ --disable_warnings
+}
+
+--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_query_log', 1, 1)`
+--let $_include_file_enabled_query_log= `SELECT SUBSTRING('$_include_file_enabled_query_log', 2)`
+if ($_tmp) {
+ --enable_query_log
+}
+if (!$_tmp) {
+ --disable_query_log
+}
+
+--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_result_log', 1, 1)`
+--let $_include_file_enabled_result_log= `SELECT SUBSTRING('$_include_file_enabled_result_log', 2)`
+if ($_tmp) {
+ --enable_result_log
+}
+if (!$_tmp) {
+ --disable_result_log
+}
+
+--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_abort_on_error', 1, 1)`
+--let $_include_file_enabled_abort_on_error= `SELECT SUBSTRING('$_include_file_enabled_abort_on_error', 2)`
+if ($_tmp) {
+ --enable_abort_on_error
+}
+if (!$_tmp) {
+ --disable_abort_on_error
+}
+
+--let $_include_file_rpl_connection_name= `SELECT SUBSTRING_INDEX('$_include_file_connection', ',', 1)`
+--let $_include_file_connection= `SELECT SUBSTRING('$_include_file_connection', LENGTH('$_include_file_rpl_connection_name') + 2)`
+if (!$skip_restore_connection)
+{
+ --let $rpl_connection_name= $_include_file_rpl_connection_name
+ --source include/rpl_connection.inc
+}
+--let $skip_restore_connection= 0
+
+
+--dec $_include_file_depth
+--let $_include_file_indent= `SELECT REPEAT('.', $_include_file_depth)`
+
+if ($rpl_debug)
+{
+ --echo $_include_file_indent==== END include/$include_filename ====
+ --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR'
+}
+--let $include_filename=
diff --git a/mysql-test/include/file_does_not_exist.inc b/mysql-test/include/file_does_not_exist.inc
new file mode 100644
index 00000000000..0b02c63a0a9
--- /dev/null
+++ b/mysql-test/include/file_does_not_exist.inc
@@ -0,0 +1,17 @@
+# ==== Purpose ====
+#
+# Checks that a given file does not exist. If the file exists, the
+# test fails.
+#
+# ==== Usage ====
+#
+# --let $file_does_not_exist= /path/to/file
+# --source include/file_does_not_exist.inc
+
+# Will fail if file exists.
+--write_file $file_does_not_exist
+tmp
+EOF
+
+# Remove file again.
+--remove_file $file_does_not_exist
diff --git a/mysql-test/include/force_restart.inc b/mysql-test/include/force_restart.inc
new file mode 100644
index 00000000000..d058e85df45
--- /dev/null
+++ b/mysql-test/include/force_restart.inc
@@ -0,0 +1,17 @@
+# ==== Purpose ====
+#
+# Tell mtr that all servers must be restarted after the test has
+# finished.
+#
+# ==== Usage ====
+#
+# --source include/force_restart.inc
+#
+# ==== See also ====
+#
+# include/force_restart_if_skipped.inc
+
+--let $_force_restart_datadir= `SELECT @@datadir`
+--append_file $_force_restart_datadir/mtr/force_restart
+1
+EOF
diff --git a/mysql-test/include/force_restart_if_skipped.inc b/mysql-test/include/force_restart_if_skipped.inc
new file mode 100644
index 00000000000..228e094e932
--- /dev/null
+++ b/mysql-test/include/force_restart_if_skipped.inc
@@ -0,0 +1,17 @@
+# ==== Purpose ====
+#
+# Tell mtr that all servers must be restarted in case the test is
+# skipped.
+#
+# ==== Usage ====
+#
+# --source include/force_restart_if_skipped.inc
+#
+# ==== See also ====
+#
+# include/force_restart.inc
+
+--let $_force_restart_datadir= `SELECT @@datadir`
+--append_file $_force_restart_datadir/mtr/force_restart_if_skipped
+1
+EOF
diff --git a/mysql-test/include/have_innodb.inc b/mysql-test/include/have_innodb.inc
index 8944cc46f3e..fa3e586834c 100644
--- a/mysql-test/include/have_innodb.inc
+++ b/mysql-test/include/have_innodb.inc
@@ -1,4 +1,4 @@
-disable_query_log;
---require r/true.require
-select (support = 'YES' or support = 'DEFAULT' or support = 'ENABLED') as `TRUE` from information_schema.engines where engine = 'innodb';
-enable_query_log;
+if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED')`)
+{
+ --skip Test requires InnoDB.
+}
diff --git a/mysql-test/include/io_thd_fault_injection.inc b/mysql-test/include/io_thd_fault_injection.inc
index a76e46d772a..7cbe055dbf6 100644
--- a/mysql-test/include/io_thd_fault_injection.inc
+++ b/mysql-test/include/io_thd_fault_injection.inc
@@ -11,11 +11,11 @@ SET @old_debug=@@global.debug;
-- eval SET GLOBAL debug="+d,$io_thd_injection_fault_flag"
START SLAVE io_thread;
--- source include/wait_for_slave_io_to_stop.inc
-- source include/wait_for_slave_io_error.inc
-- eval SET GLOBAL debug="-d,$io_thd_injection_fault_flag"
SET GLOBAL debug=@old_debug;
# restart because slave is in bad shape
--- source include/restart_mysqld.inc
+--let $rpl_server_number= 2
+--source include/rpl_restart_server.inc
diff --git a/mysql-test/include/kill_query_and_diff_master_slave.inc b/mysql-test/include/kill_query_and_diff_master_slave.inc
index b3846d12df1..59588551af5 100644
--- a/mysql-test/include/kill_query_and_diff_master_slave.inc
+++ b/mysql-test/include/kill_query_and_diff_master_slave.inc
@@ -9,19 +9,19 @@
# connection <CONNECTION>;
# let $connection_name=<CONNECTION>
# let $connection_id=`SELECT CONNECTION_ID()`;
-# let $diff_statement=<SQL COMMAND>;
+# let $rpl_diff_statement=<SQL COMMAND>;
# send <SQL COMMAND>;
# source include/kill_query_and_diff_master_slave.inc;
#
# Note: <CONNECTION> must not be 'master'.
#
-# See also kill_query.inc and diff_master_slave.inc for more
+# See also kill_query.inc and rpl_diff.inc for more
# information
source include/kill_query.inc;
# Release the debug lock if used, so that the statements in
-# diff_master_slave.inc will not be blocked.
+# rpl_diff.inc will not be blocked.
connection master;
disable_query_log;
disable_result_log;
@@ -32,7 +32,7 @@ if ($debug_lock)
enable_result_log;
enable_query_log;
-source include/diff_master_slave.inc;
+--source include/rpl_diff.inc
# Acquire the debug lock again if used
connection master;
diff --git a/mysql-test/include/master-slave-end.inc b/mysql-test/include/master-slave-end.inc
deleted file mode 100644
index 74e4c7b608a..00000000000
--- a/mysql-test/include/master-slave-end.inc
+++ /dev/null
@@ -1,6 +0,0 @@
---connection master
---sync_slave_with_master
---connection slave
---disable_query_log
-STOP SLAVE;
---enable_query_log
diff --git a/mysql-test/include/master-slave-reset.inc b/mysql-test/include/master-slave-reset.inc
deleted file mode 100644
index 938eb2c074a..00000000000
--- a/mysql-test/include/master-slave-reset.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-# Reset the master and the slave to start fresh.
-#
-# It is necessary to execute RESET MASTER and RESET SLAVE on both
-# master and slave since the replication setup might be circular.
-#
-# Since we expect STOP SLAVE to produce a warning as the slave is
-# stopped (the server was started with skip-slave-start), we disable
-# warnings when doing STOP SLAVE.
-
-connection slave;
---disable_warnings
-stop slave;
-source include/wait_for_slave_to_stop.inc;
---enable_warnings
-connection master;
---disable_warnings
---disable_query_log
-use test;
---enable_query_log
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
-reset master;
---disable_query_log
-reset slave;
---enable_query_log
-connection slave;
-reset slave;
-# Clean up old test tables
---disable_warnings
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
---disable_query_log
-reset master;
---enable_query_log
-start slave;
-source include/wait_for_slave_to_start.inc;
diff --git a/mysql-test/include/master-slave.inc b/mysql-test/include/master-slave.inc
index e0eb87f02f7..9ed206b2c22 100644
--- a/mysql-test/include/master-slave.inc
+++ b/mysql-test/include/master-slave.inc
@@ -1,12 +1,63 @@
-# Replication tests need binlog
-source include/have_log_bin.inc;
+# ==== Purpose ====
+#
+# Configure two servers to be replication master and slave.
+#
+# ==== Usage ====
+#
+# [--let $rpl_server_count= N]
+# [--let $rpl_check_server_ids= 1]
+# [--let $rpl_skip_reset_master_and_slave= 1]
+# [--let $rpl_skip_change_master= 1]
+# [--let $rpl_skip_start_slave= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/master-slave.inc
+#
+# Parameters:
+# $rpl_check_server_ids, $rpl_skip_reset_master_and_slave,
+# $rpl_skip_change_master, $rpl_skip_start_slave, $rpl_debug,
+# $slave_timeout
+# See include/rpl_init.inc
+#
+# $rpl_server_count
+# By default, two servers are configured. You can configure more
+# servers (servers 3, 4, etc are neither masters nor slaves) by
+# setting this variable. See also include/rpl_init.inc
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT,);
--- source include/master-slave-reset.inc
+--let $include_filename= master-slave.inc
+if ($rpl_server_count)
+{
+ --let $include_filename= master-slave.inc [rpl_server_count=$rpl_server_count]
+}
+--source include/begin_include_file.inc
-# Set the default connection to 'master'
-connection master;
+
+--let $rpl_topology= 1->2
+--source include/rpl_init.inc
+
+--let $rpl_connection_name= master
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
+
+--let $rpl_connection_name= master1
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
+
+--let $rpl_connection_name= slave
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
+
+--let $rpl_connection_name= slave1
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
+
+
+--let $include_filename= master-slave.inc
+--source include/end_include_file.inc
+
+
+# Set the default connection to 'master'. Do this after
+# end_include_file.inc, so that it gets printed to the query log.
+--let $rpl_connection_name= master
+--source include/rpl_connection.inc
diff --git a/mysql-test/include/mtr_check.sql b/mysql-test/include/mtr_check.sql
index 9db631a2615..12cb2c870a2 100644
--- a/mysql-test/include/mtr_check.sql
+++ b/mysql-test/include/mtr_check.sql
@@ -57,13 +57,3 @@ BEGIN
mysql.user;
END||
-
---
--- Procedure used by test case used to force all
--- servers to restart after testcase and thus skipping
--- check test case after test
---
-CREATE DEFINER=root@localhost PROCEDURE force_restart()
-BEGIN
- SELECT 1 INTO OUTFILE 'force_restart';
-END||
diff --git a/mysql-test/include/mysqldump.inc b/mysql-test/include/mysqldump.inc
index 6227138b012..3a53bf8e3bd 100644
--- a/mysql-test/include/mysqldump.inc
+++ b/mysql-test/include/mysqldump.inc
@@ -41,8 +41,7 @@ eval ALTER TABLE $table_name RENAME to $orig_table_name;
--echo # Compare original and recreated tables
--echo # Recreated table: $table_name
--echo # Original table: $orig_table_name
-let $diff_table_1 = $table_name;
-let $diff_table_2 = $orig_table_name;
+let $diff_tables = $table_name, $orig_table_name;
--source include/diff_tables.inc
--echo # Cleanup
--remove_file $mysqldumpfile
diff --git a/mysql-test/include/ndb_master-slave.inc b/mysql-test/include/ndb_master-slave.inc
index 0bf4b701f0c..8305a310953 100644
--- a/mysql-test/include/ndb_master-slave.inc
+++ b/mysql-test/include/ndb_master-slave.inc
@@ -1,10 +1,4 @@
-# Replication tests need binlog
-source include/have_log_bin.inc;
-
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT,);
+--source include/master-slave.inc
connection slave;
# Check that server is compiled and started with support for NDB
@@ -14,7 +8,5 @@ select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schem
--source include/ndb_not_readonly.inc
enable_query_log;
--- source include/master-slave-reset.inc
-
# Set the default connection to 'master'
connection master;
diff --git a/mysql-test/include/ndb_master-slave_2ch.inc b/mysql-test/include/ndb_master-slave_2ch.inc
index 52a06c01d86..17017d2b801 100644
--- a/mysql-test/include/ndb_master-slave_2ch.inc
+++ b/mysql-test/include/ndb_master-slave_2ch.inc
@@ -1,7 +1,6 @@
-#############################################################
-# Author: Serge Kozlov <skozlov@mysql.com>
-# Date: 03/17/2008
-# Purpose: Set up circular cluster replication where each
+# ==== Purpose ====
+#
+# Set up circular cluster replication where each
# cluster has two mysqlds and replication directions are
# following:
# master ---> slave
@@ -9,128 +8,60 @@
# cluster A cluster B
# \ /
# master1 <--- slave1
-#############################################################
-
---source include/have_log_bin.inc
+#
+# ==== Usage ====
+#
+# [--let $rpl_server_count= N]
+# [--let $rpl_skip_check_server_ids= 1]
+# [--let $rpl_skip_reset_master_and_slave= 1]
+# [--let $rpl_skip_change_master= 1]
+# [--let $rpl_skip_start_slave= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/ndb_master-slave_2ch.inc
+#
+# Parameters:
+# $rpl_server_count, $rpl_skip_check_server_ids,
+# $rpl_skip_reset_master_and_slave, $rpl_skip_change_master,
+# $rpl_skip_start_slave, $rpl_debug, $slave_timeout
+# See include/master-slave.inc
+
+--let $rpl_topology= 1->2,4->3
+--let $rpl_skip_check_server_ids= 1
+--source include/rpl_init.inc
# Make connections to mysqlds
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT1,);
-connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
-
-# Check that all mysqld compiled with ndb support
-
---connection master
---disable_query_log
---require r/true.require
-SELECT (support = 'YES' or support = 'DEFAULT') AS `TRUE` FROM information_schema.engines WHERE engine = 'ndbcluster';
---source include/ndb_not_readonly.inc
---enable_query_log
-
---connection master1
---disable_query_log
---require r/true.require
-SELECT (support = 'YES' or support = 'DEFAULT') AS `TRUE` FROM information_schema.engines WHERE engine = 'ndbcluster';
---source include/ndb_not_readonly.inc
---enable_query_log
-
---connection slave
---disable_query_log
---require r/true.require
-SELECT (support = 'YES' or support = 'DEFAULT') AS `TRUE` FROM information_schema.engines WHERE engine = 'ndbcluster';
---source include/ndb_not_readonly.inc
---enable_query_log
-
---connection slave1
---disable_query_log
---require r/true.require
-SELECT (support = 'YES' or support = 'DEFAULT') AS `TRUE` FROM information_schema.engines WHERE engine = 'ndbcluster';
---source include/ndb_not_readonly.inc
---enable_query_log
-
-# Stop slaves
-
---connection master
---disable_warnings
-STOP SLAVE;
---wait_for_slave_to_stop
---enable_warnings
+--let $rpl_connection_name= master
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
---connection master1
---disable_warnings
-STOP SLAVE;
---wait_for_slave_to_stop
---enable_warnings
+--let $rpl_connection_name= master1
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
---connection slave
---disable_warnings
-STOP SLAVE;
---wait_for_slave_to_stop
---enable_warnings
+--let $rpl_connection_name= slave
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
---connection slave1
---disable_warnings
-STOP SLAVE;
---wait_for_slave_to_stop
---enable_warnings
+--let $rpl_connection_name= slave1
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
-# Reset masters
---connection master
---disable_warnings
---disable_query_log
-USE test;
---enable_query_log
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
-RESET MASTER;
-
---connection master1
---disable_warnings
---disable_query_log
-USE test;
---enable_query_log
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
-RESET MASTER;
-
---connection slave
---disable_warnings
---disable_query_log
-USE test;
---enable_query_log
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
-RESET MASTER;
-
---connection slave1
---disable_warnings
---disable_query_log
-USE test;
---enable_query_log
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
---enable_warnings
-RESET MASTER;
-
-# Start slaves
-
---connection slave
-RESET SLAVE;
---replace_result $MASTER_MYPORT MASTER_MYPORT
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$MASTER_MYPORT,master_user='root'
-START SLAVE;
---source include/wait_for_slave_to_start.inc
-
---connection master1
-RESET SLAVE;
---replace_result $SLAVE_MYPORT1 SLAVE_MYPORT1
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT1,master_user='root'
-START SLAVE;
---source include/wait_for_slave_to_start.inc
+# Check that all mysqld are compiled with ndb support
+--let $_rpl_server= 4
+while ($_rpl_server)
+{
+ --connection server_$_rpl_server
+ if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'ndbcluster' AND (support = 'YES' OR support = 'DEFAULT')`)
+ {
+ --skip Test requires NDB.
+ }
+ --source include/ndb_not_readonly.inc
+ --dec $_rpl_server
+}
# Set the default connection to 'master' (cluster A)
connection master;
-
diff --git a/mysql-test/include/ndb_not_readonly.inc b/mysql-test/include/ndb_not_readonly.inc
index f50ca0cab66..ebb343bb18d 100644
--- a/mysql-test/include/ndb_not_readonly.inc
+++ b/mysql-test/include/ndb_not_readonly.inc
@@ -2,6 +2,9 @@
#
# wait for server to connect properly to cluster
#
+
+--disable_query_log
+
set @saved_log = @@sql_log_bin;
set sql_log_bin = 0;
--error 0,ER_NO_SUCH_TABLE,ER_OPEN_AS_READONLY,ER_GET_ERRMSG,ER_KEY_NOT_FOUND
@@ -25,6 +28,9 @@ while ($mysql_errno)
}
delete from mysql.ndb_apply_status where server_id=0;
set sql_log_bin = @saved_log;
+
+--enable_query_log
+
#
# connected
#
diff --git a/mysql-test/include/report-features.test b/mysql-test/include/report-features.test
index 1e4ab232490..75879f67165 100644
--- a/mysql-test/include/report-features.test
+++ b/mysql-test/include/report-features.test
@@ -9,4 +9,4 @@ show engines;
show variables;
--echo ===== STOP =====
--enable_query_log
-exit; \ No newline at end of file
+exit;
diff --git a/mysql-test/include/reset_master_and_slave.inc b/mysql-test/include/reset_master_and_slave.inc
deleted file mode 100644
index 30ba1f07a40..00000000000
--- a/mysql-test/include/reset_master_and_slave.inc
+++ /dev/null
@@ -1,8 +0,0 @@
---echo **** Resetting master and slave ****
-connection slave;
-source include/stop_slave.inc;
-RESET SLAVE;
-connection master;
-RESET MASTER;
-connection slave;
-source include/start_slave.inc;
diff --git a/mysql-test/include/restart_mysqld.inc b/mysql-test/include/restart_mysqld.inc
index f750385e300..7cb9c7994d8 100644
--- a/mysql-test/include/restart_mysqld.inc
+++ b/mysql-test/include/restart_mysqld.inc
@@ -1,4 +1,12 @@
+if ($rpl_inited)
+{
+ if (!$allow_rpl_inited)
+ {
+ --die ERROR IN TEST: When using the replication test framework (master-slave.inc, rpl_init.inc etc), use rpl_restart_server.inc instead of restart_mysqld.inc. If you know what you are doing and you really have to use restart_mysqld.inc, set allow_rpl_inited=1 before you source restart_mysqld.inc
+ }
+}
+
# Write file to make mysql-test-run.pl expect the "crash", but don't start
# it until it's told to
--let $_server_id= `SELECT @@server_id`
diff --git a/mysql-test/include/rpl_change_topology.inc b/mysql-test/include/rpl_change_topology.inc
new file mode 100644
index 00000000000..d25ebfbf25c
--- /dev/null
+++ b/mysql-test/include/rpl_change_topology.inc
@@ -0,0 +1,248 @@
+# ==== Purpose ====
+#
+# Changes replication topology. This file is normally sourced from
+# include/rpl_init.inc, but test cases can also source it if they
+# need to change topology after they have sourced include/rpl_init.inc
+#
+# This file sets up variables needed by include/rpl_sync.inc and many
+# other replication scripts in the include/ directory. It also issues
+# CHANGE MASTER on all servers where the configuration changes from
+# what it was before. It does not issue START SLAVE (use
+# include/rpl_start_slaves.inc for that).
+#
+# Note: it is not currently possible to change the number of servers
+# after the rpl_init.inc, without first calling rpl_end.inc. So the
+# test has to set $rpl_server_count to the total number of servers
+# that the test uses, before it sources include/rpl_init.inc. After
+# that, $rpl_server_count must not change until after next time the
+# test sources include/rpl_end.inc.
+#
+# Note: Since this script issues CHANGE MASTER, the test case must
+# ensure that all slaves where the configuration changes have stopped
+# both the IO thread and the SQL thread before this script is sourced.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_server_count= 7]
+# --let $rpl_topology= 1->2->3->1->4, 2->5, 6->7
+# [--let $rpl_skip_change_master= 1]
+# [--let $rpl_master_log_file= 1:master-bin.000001,3:master-bin.000003]
+# [--let $rpl_master_log_pos= 1:4711,3:107]
+# [--let $rpl_debug= 1]
+# --source include/rpl_change_topology.inc
+#
+# Parameters:
+# $rpl_master_log_file
+# By default, CHANGE MASTER is executed with MASTER_LOG_FILE set
+# to the name of the last binlog file on the master (retrieved by
+# executing SHOW MASTER STATUS). This variable can be set to
+# specify another filename. This variable should be a
+# comma-separated list of the following form:
+#
+# SERVER_NUMBER_1:FILE_NAME_1,SERVER_NUMBER_2:FILE_NAME_2,...
+#
+# Before CHANGE MASTER is executed on server N, this script checks
+# if $rpl_master_log_file contains the text N:FILE_NAME. If it
+# does, then MASTER_LOG_FILE is set to FILE_NAME. Otherwise,
+# MASTER_LOG_FILE is set to the last binlog on the master. For
+# example, to specify that server_1 should start replicate from
+# master-bin.000007 and server_5 should start replicate from
+# master-bin.012345, do:
+# --let $rpl_master_log_file= 1:master-bin.000007,5:master-bin.012345
+#
+# $rpl_master_log_pos
+# By default, CHANGE MASTER is executed without specifying the
+# MASTER_LOG_POS parameter. This variable can be set to set a
+# specific position. It has the same form as $rpl_master_log_file
+# (see above). For example, to specify that server_3 should start
+# replicate from position 4711 of its master, do:
+# --let $rpl_master_log_pos= 3:4711
+#
+# $rpl_server_count, $rpl_topology, $rpl_debug, $rpl_skip_change_master
+# See include/rpl_init.inc
+#
+#
+# ==== Internal variables configured by this file ====
+#
+# This file sets up the following variables, which are used by other
+# low-level replication files such as:
+# include/rpl_sync.inc
+# include/rpl_start_slaves.inc
+# include/rpl_stop_slaves.inc
+# include/rpl_end.inc
+#
+# $rpl_server_count_length:
+# Set to LENGTH($rpl_server_count). So if $rpl_server_count < 10,
+# then $rpl_server_count_length = 1; if 10 <= $rpl_server_count <
+# 100, then $rpl_server_count_length = 2, etc.
+#
+# $rpl_master_list
+# Set to a string consisting of $rpl_server_count numbers, each one
+# whitespace-padded to $rpl_server_count_length characters. If
+# server N is a slave, then the N'th number is the master of server
+# N. If server N is not a slave, then the N'th number is just spaces
+# (so in fact it is not a number). For example, if $rpl_topology is
+# '1->2,2->3,3->1,2->4,5->6', then $rpl_master_list is '3122 6'.
+#
+# $rpl_sync_chain_dirty
+# This variable is set to 1. This tells include/rpl_sync.inc to
+# compute a new value for $rpl_sync_chain next time that
+# include/rpl_sync.inc is sourced. See
+# include/rpl_generate_sync_chain.inc and include/rpl_sync.inc for
+# details.
+
+
+# Remove whitespace from $rpl_topology
+--let $rpl_topology= `SELECT REPLACE('$rpl_topology', ' ', '')`
+
+--let $include_filename= rpl_change_topology.inc [new topology=$rpl_topology]
+--source include/begin_include_file.inc
+
+
+if ($rpl_debug)
+{
+ --echo ---- Check input ----
+}
+
+
+if (`SELECT '$rpl_topology' = '' OR '$rpl_server_count' = ''`)
+{
+ --die You must set $rpl_topology and $rpl_server_count before you source rpl_change_topology.inc. If you really want to change to the empty topology, set $rpl_topology= none
+}
+--let $_rpl_topology= $rpl_topology
+if (`SELECT '$_rpl_topology' = 'none'`)
+{
+ --let $_rpl_topology=
+}
+if (`SELECT '!$rpl_master_list!' = '!!'`)
+{
+ --die You must source include/rpl_init.inc before you source include/rpl_change_topology.inc
+}
+--let $_rpl_old_master_list= $rpl_master_list
+
+if ($rpl_debug)
+{
+ --echo \$rpl_server_count='$rpl_server_count'
+ --echo \$rpl_server_count_length='$rpl_server_count_length'
+ --echo new \$rpl_topology='$_rpl_topology'
+ --echo old \$rpl_master_list='$rpl_master_list'
+ --echo old \$rpl_sync_chain='$rpl_sync_chain'
+}
+
+
+if ($rpl_debug)
+{
+ --echo ---- Generate \$rpl_server_count_length and \$rpl_master_list ----
+}
+
+--let $rpl_server_count_length= `SELECT LENGTH('$rpl_server_count')`
+--let $rpl_master_list=
+--let $_rpl_no_server= `SELECT REPEAT(' ', $rpl_server_count_length)`
+--let $rpl_master_list= `SELECT REPEAT('$_rpl_no_server', $rpl_server_count)`
+while ($_rpl_topology)
+{
+ # Get 's1->s2' from 's1->s2->s3->...' or from 's1->s2,s3->s4,...'
+ --let $_rpl_master_slave= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('$_rpl_topology', ',', 1), '->', 2)`
+ # Modify $_rpl_topology as follows:
+ # - If it starts with 's1->s2,', remove 's1->s2,'
+ # - If it starts with 's1->s2->', remove 's1->'
+ # - If it is equal to 's1->s2', remove 's1->s2'
+ --let $_rpl_topology= `SELECT SUBSTR('$_rpl_topology', IF(SUBSTR('$_rpl_topology', LENGTH('$_rpl_master_slave') + 1, 2) != '->', LENGTH('$_rpl_master_slave'), LOCATE('->', '$_rpl_master_slave')) + 2)`
+ # Get 's1' from 's1->s2'
+ --let $_rpl_master= `SELECT SUBSTRING_INDEX('$_rpl_master_slave', '->', 1)`
+ # Get 's2' from 's1->s2'
+ --let $_rpl_slave= `SELECT SUBSTRING('$_rpl_master_slave', LENGTH('$_rpl_master') + 3)`
+ # Check that s2 does not have another master.
+ if (`SELECT SUBSTR('$rpl_master_list', 1 + ($_rpl_slave - 1) * $rpl_server_count_length, $rpl_server_count_length) != '$_rpl_no_server'`)
+ {
+ --echo ERROR IN TEST: Server '$_rpl_slave' has more than one master in topology '$rpl_topology'
+ --die ERROR IN TEST: found a server with more than one master in the $rpl_topology variable
+ }
+ # Save 's1' at position 's2' in $rpl_master_list
+ --let $rpl_master_list= `SELECT INSERT('$rpl_master_list', 1 + ($_rpl_slave - 1) * $rpl_server_count_length, $rpl_server_count_length, RPAD('$_rpl_master', $rpl_server_count_length, ' '))`
+}
+
+if ($rpl_debug)
+{
+ --echo new \$rpl_server_count_length = '$rpl_server_count_length'
+ --echo new \$rpl_master_list = '$rpl_master_list'
+}
+
+if (!$rpl_skip_change_master)
+{
+ if ($rpl_debug)
+ {
+ --echo ---- Execute CHANGE MASTER on all servers ----
+ }
+
+ if (!$rpl_debug)
+ {
+ --disable_query_log
+ }
+
+ --let $_rpl_server= $rpl_server_count
+ while ($_rpl_server)
+ {
+ # The following statement evaluates to:
+ # 0, if server_$_rpl_server has the same master as before.
+ # The master's server, if server_$_rpl_server is a slave.
+ # The empty string, if server_$_rpl_server is not a slave.
+ --let $_rpl_master= `SELECT TRIM(IFNULL(NULLIF(SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length), SUBSTRING('$_rpl_old_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length)), 0))`
+ if ($rpl_debug)
+ {
+ --echo \$_rpl_server='$_rpl_server' \$_rpl_master='$_rpl_master'
+ }
+ if ($_rpl_master)
+ {
+ # Get port number
+ --let $_rpl_port= \$SERVER_MYPORT_$_rpl_master
+ # Get MASTER_LOG_FILE
+ --let $_rpl_master_log_file_index= `SELECT LOCATE('$_rpl_server:', '$rpl_master_log_file')`
+ if ($_rpl_master_log_file_index)
+ {
+ # Get text from after ':' and before ',', starting at
+ # $_rpl_master_log_file
+ --let $_rpl_master_log_file= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$rpl_master_log_file', $_rpl_master_log_file_index), ',', 1), ':', -1)`
+ }
+ if (!$_rpl_master_log_file_index)
+ {
+ --let $rpl_connection_name= server_$_rpl_master
+ --source include/rpl_connection.inc
+ --let $_rpl_master_log_file= query_get_value(SHOW MASTER STATUS, File, 1)
+ }
+ # Change connection.
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+ # Get MASTER_LOG_POS
+ --let $_rpl_master_log_pos_index= `SELECT LOCATE('$_rpl_server:', '$rpl_master_log_pos')`
+ if ($_rpl_master_log_pos_index)
+ {
+ --let $_rpl_master_log_pos= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$rpl_master_log_pos', $_rpl_master_log_pos_index), ',', 1), ':', -1)`
+ --let $_rpl_master_log_pos= , MASTER_LOG_POS = $_rpl_master_log_pos
+ }
+ if (!$_rpl_master_log_pos_index)
+ {
+ --let $_rpl_master_log_pos=
+ }
+ eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_LOG_FILE = '$_rpl_master_log_file'$_rpl_master_log_pos, MASTER_CONNECT_RETRY = 1;
+ }
+ if (!$_rpl_master)
+ {
+ if (`SELECT '$_rpl_master' = ''`)
+ {
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+ CHANGE MASTER TO MASTER_HOST = '';
+ }
+ }
+ --dec $_rpl_server
+ }
+}
+
+
+--let $rpl_sync_chain_dirty= 1
+
+
+--let $include_filename= rpl_change_topology.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_connect.inc b/mysql-test/include/rpl_connect.inc
new file mode 100644
index 00000000000..a4d18dd5f9c
--- /dev/null
+++ b/mysql-test/include/rpl_connect.inc
@@ -0,0 +1,58 @@
+# ==== Purpose ====
+#
+# Create a connection to a given numbered server.
+#
+# This script is normally used internally by rpl_init.inc and
+# master-slave.inc, but it can also be used in test cases that need to
+# create more connections or re-create connections after disconnect.
+#
+#
+# ==== Usage ====
+#
+# --let $rpl_connection_name= <connection_name>
+# --let $rpl_server_number= <server_number>
+# [--let $rpl_debug= 1]
+# --source include/rpl_connect.inc
+#
+# Parameters:
+# $rpl_connection_name
+# The name of the connection to create.
+#
+# $rpl_server_number
+# The number of the server to connect to.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= rpl_connect.inc [creating $rpl_connection_name]
+--source include/begin_include_file.inc
+
+
+if (!$rpl_server_number)
+{
+ --die ERROR IN TEST: You must set $rpl_server_number before sourcing include/rpl_connect.inc
+}
+if (`SELECT '$rpl_connection_name' = ''`)
+{
+ --die ERROR IN TEST: You must set $rpl_connection_name before sourcing include/rpl_connect.inc
+}
+
+# Get port number
+--let $_rpl_port= \$SERVER_MYPORT_$rpl_server_number
+if (!$_rpl_port)
+{
+ --echo Bug in test case: '\$SERVER_MYPORT_$rpl_server_number' not initialized. Check the test's .cfg file.
+ --die Not all SERVER_MYPORT_* environment variables are setup correctly.
+}
+
+# Create connection.
+if ($rpl_debug)
+{
+ --echo connect ($rpl_connection_name,127.0.0.1,root,,test,$_rpl_port,)
+}
+--connect ($rpl_connection_name,127.0.0.1,root,,test,$_rpl_port,)
+
+
+--let $include_filename= rpl_connect.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_connection.inc b/mysql-test/include/rpl_connection.inc
new file mode 100644
index 00000000000..1988568a4d2
--- /dev/null
+++ b/mysql-test/include/rpl_connection.inc
@@ -0,0 +1,47 @@
+# ==== Purpose ====
+#
+# The same as 'connection $rpl_connection_name', but it can also
+# prints the connection name. The connection is printed if $rpl_debug
+# is set, or if rpl_connection.inc is not called between two
+# invocations of begin_include_file.inc/end_include_file.inc.
+# Otherwise the connection name is not printed.
+#
+#
+# ==== Usage ====
+#
+# --let $rpl_connection_name= master
+# [--let $rpl_debug= 1]
+# --source include/rpl_connection.inc
+#
+# Parameters:
+# $rpl_connection_name
+# Name of the connection to connect to.
+#
+# $rpl_debug
+# By default, the connection name is printed only when this file
+# is sourced from a top-level test script. If $rpl_debug is set,
+# the connection name is also printed whenever auxiliary files
+# like rpl_init.inc change connection.
+
+
+if (!$rpl_connection_name)
+{
+ --die ERROR IN TEST: you must set $rpl_connection_name before sourcing rpl_connection.inc
+}
+
+# This is the same as "if (!$_rpl_include_file_depth || $rpl_debug)",
+# but the mysqltest language doesn't have boolean operations.
+
+if (!$_include_file_depth)
+{
+ --echo [connection $rpl_connection_name]
+}
+if ($_include_file_depth)
+{
+ if ($rpl_debug)
+ {
+ --echo [connection $rpl_connection_name]
+ }
+}
+--connection $rpl_connection_name
+--let $rpl_connection_name=
diff --git a/mysql-test/include/rpl_diff.inc b/mysql-test/include/rpl_diff.inc
new file mode 100644
index 00000000000..bf24b4f2a13
--- /dev/null
+++ b/mysql-test/include/rpl_diff.inc
@@ -0,0 +1,118 @@
+# ==== Purpose ====
+#
+# Diff the output of a statement on all configured servers (usually
+# master and slave).
+#
+#
+# ==== Usage =====
+#
+# --let $rpl_diff_statement= SELECT * FROM t1 WHERE a < 100
+# [--let $rpl_diff_servers= <server1>,<server2>,...<serverN>]
+# --source include/rpl_diff.inc
+#
+# Parameters:
+# $rpl_diff_statement
+# Statement to check. For each compared server, this script will
+# start a new client and pass this statement to the client.
+# Note: This string will be evaluated as a single-quote-escaped
+# SQL string and hence must be quoted as such. In particular, any
+# single quotes in this string must be escaped.
+#
+# $rpl_diff_servers
+# By default, this file compares all servers configured by
+# rpl_init.inc. You can set $diff_servers to a comma-separated
+# list of numbers: only the servers identified by these numbers
+# will be compared.
+#
+# $rpl_diff_database
+# By default, the statement will be executed on the database
+# 'test'. If $rpl_diff_database is set, the statement will be
+# executed on the database named $rpl_diff_database instead.
+
+
+--let $include_filename= rpl_diff.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_diff_statement)
+{
+ --die ERROR IN TEST: you must set $rpl_diff_statement before you source include/rpl_diff.inc
+}
+
+
+# Sync.
+--source include/rpl_sync.inc
+
+
+# Get database name.
+--let $_rpl_diff_database= $rpl_diff_database
+if (`SELECT '$_rpl_diff_database' = ''`)
+{
+ --let $_rpl_diff_database= test
+}
+
+
+# Generate list of servers.
+--let $_rpl_diff_servers= $rpl_diff_servers
+if (!$_rpl_diff_servers)
+{
+ --let $_rpl_server_i= $rpl_server_count
+ --let $_rpl_diff_servers=
+ while ($_rpl_server_i)
+ {
+ --let $_rpl_diff_servers= $_rpl_server_i,$_rpl_diff_servers
+ --dec $_rpl_server_i
+ }
+}
+if ($rpl_debug)
+{
+ --echo \$rpl_diff_servers= '$_rpl_diff_servers'
+}
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+# Generate file containing $rpl_diff_statement. We don't pass the
+# statement on the command line, because it would be subject to shell
+# substitutions.
+--let $write_to_file= GENERATE
+--let $write_var= $rpl_diff_statement
+--source include/write_var_to_file.inc
+--let $_rpl_diff_statement_file= $write_to_file
+
+
+# Compare all servers.
+--let $_rpl_diff_first= 1
+while ($_rpl_diff_servers)
+{
+ # Set $_rpl_diff_server_i to the first number in the list
+ --let $_rpl_diff_server_i= `SELECT SUBSTRING_INDEX('$_rpl_diff_servers', ',', 1)`
+ # Remove $_rpl_diff_server_i from the list
+ --let $_rpl_diff_servers= `SELECT SUBSTRING('$_rpl_diff_servers', LENGTH('$_rpl_diff_server_i') + 2)`
+
+ # Execute statement
+ --let $_rpl_diff_file= $MYSQLTEST_VARDIR/tmp/_rpl_diff_server-$_rpl_diff_server_i.tmp
+ --exec $MYSQL --defaults-group-suffix=.$_rpl_diff_server_i $_rpl_diff_database < $_rpl_diff_statement_file > $_rpl_diff_file
+
+ # Compare
+ if (!$_rpl_diff_first)
+ {
+ if ($rpl_debug)
+ {
+ --echo diffing $_rpl_diff_file and $_rpl_diff_prev_file
+ }
+ --diff_files $_rpl_diff_file $_rpl_diff_prev_file
+ --remove_file $_rpl_diff_prev_file
+ }
+ --let $_rpl_diff_prev_file= $_rpl_diff_file
+ --let $_rpl_diff_first= 0
+}
+--remove_file $_rpl_diff_prev_file
+
+
+--let $include_filename= rpl_diff.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_diff_tables.inc b/mysql-test/include/rpl_diff_tables.inc
deleted file mode 100644
index 7fc68422c40..00000000000
--- a/mysql-test/include/rpl_diff_tables.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-# #############################################################################
-# Check whether the given table is consistent between different master and
-# slaves
-#
-# Usage:
-# --let $diff_table= test.t1
-# --let $diff_server_list= master, slave, slave2
-# --source include/rpl_diff_tables.inc
-# #############################################################################
-
-if (`SELECT "XX$diff_table" = "XX"`)
-{
- --die diff_table is null.
-}
-
---let $_servers= master, slave
-if (`SELECT "XX$diff_server_list" <> "XX"`)
-{
- --let $_servers= $diff_server_list
-}
-
---let $_master= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
---let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_master') + 2))`
-connection $_master;
-while (`SELECT "XX$_servers" <> "XX"`)
-{
- --let $_slave= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
- --let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_slave') + 2))`
-
- --sync_slave_with_master $_slave
- --let $diff_table_1= $_master:$diff_table
- --let $diff_table_2= $_slave:$diff_table
- --source include/diff_tables.inc
- connection $_slave;
-}
-connection $_master;
diff --git a/mysql-test/include/rpl_end.inc b/mysql-test/include/rpl_end.inc
new file mode 100644
index 00000000000..8f1d7f695fc
--- /dev/null
+++ b/mysql-test/include/rpl_end.inc
@@ -0,0 +1,103 @@
+# ==== Purpose ====
+#
+# Shut down replication initialized by include/rpl_init.inc.
+#
+# This syncs all servers, executes STOP SLAVE on all servers, executes
+# CHANGE MASTER on all servers, and disconnects all connections
+# configured by rpl_init.inc.
+#
+# It does not execute RESET MASTER or RESET SLAVE, because that would
+# remove binlogs which are possibly useful debug information in case
+# the test case later fails with a result mismatch. If you need that,
+# source include/rpl_reset.inc before you source this file.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_only_running_threads= 1]
+# [--let $rpl_debug= 1]
+# --source include/rpl_end.inc
+#
+# Parameters:
+# $rpl_only_running_threads
+# If one or both of the IO and SQL threads is stopped, sync and
+# stop only the threads that are running. See
+# include/rpl_sync.inc and include/stop_slave.inc for details.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# Note:
+# This script will fail if Last_SQL_Error or Last_IO_Error is
+# nonempty. If you expect an error in the SQL thread, you should
+# normally call this script as follows:
+#
+# --source include/wait_for_slave_sql_error.inc
+# --source include/stop_slave_io.inc
+# RESET SLAVE;
+# --let $rpl_only_running_threads= 1
+# --source include/rpl_end.inc
+#
+#
+# ==== Side effects ====
+#
+# Changes the current connection to 'default'.
+
+
+--let $include_filename= rpl_end.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_inited)
+{
+ --die ERROR IN TEST: rpl_end.inc was sourced when replication was not configured. Most likely, rpl_end.inc was sourced twice or rpl_init.inc has not been sourced.
+}
+
+
+if ($rpl_debug)
+{
+ --echo ---- Check that no slave thread has an error ----
+}
+
+--let $_rpl_server= $rpl_server_count
+while ($_rpl_server)
+{
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+
+ # Only check slave threads for error on hosts that were at some
+ # point configured as slave.
+ --let $_tmp= query_get_value(SHOW SLAVE STATUS, Master_Host, 1)
+ if (`SELECT '$_tmp' != 'No such row'`)
+ {
+ --source include/check_slave_no_error.inc
+ }
+
+ --dec $_rpl_server
+}
+
+--source include/rpl_sync.inc
+--source include/rpl_stop_slaves.inc
+
+# mtr configures server 2 to be a slave before it runs the test. We
+# have to restore that state now, so we change topology to 1->2.
+--let $rpl_topology= 1->2
+--source include/rpl_change_topology.inc
+
+
+--connection default
+--let $_rpl_server= $rpl_server_count
+--let $_rpl_one= _1
+while ($_rpl_server)
+{
+ --disconnect server_$_rpl_server
+ --disconnect server_$_rpl_server$_rpl_one
+ --dec $_rpl_server
+}
+
+--let $rpl_inited= 0
+
+# Do not restore connection, because we have disconnected it.
+--let $skip_restore_connection= 1
+--let $include_filename= rpl_end.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_for_each_slave.inc b/mysql-test/include/rpl_for_each_slave.inc
new file mode 100644
index 00000000000..65d242cf894
--- /dev/null
+++ b/mysql-test/include/rpl_for_each_slave.inc
@@ -0,0 +1,39 @@
+# ==== Purpose ====
+#
+# Execute a .inc file once for each server that was configured as a
+# slave by rpl_init.inc
+#
+#
+# ==== Usage ====
+#
+# --let $rpl_source_file
+# [--let $rpl_debug= 1]
+# --source include/rpl_for_each_slave.inc
+#
+# Parameters:
+# $rpl_source_file
+# The file that will be sourced.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= rpl_for_each_file.inc [$rpl_source_file]
+--source include/begin_include_file.inc
+
+--let $_rpl_server= $rpl_server_count
+while ($_rpl_server)
+{
+ --let $_rpl_has_master= `SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length) != ''`
+ if ($_rpl_has_master)
+ {
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+ --source $rpl_source_file
+ }
+ --dec $_rpl_server
+}
+
+
+--let $include_filename= rpl_for_each_file.inc [$rpl_source_file]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_generate_sync_chain.inc b/mysql-test/include/rpl_generate_sync_chain.inc
new file mode 100644
index 00000000000..9104c21c3b8
--- /dev/null
+++ b/mysql-test/include/rpl_generate_sync_chain.inc
@@ -0,0 +1,122 @@
+# ==== Purpose ====
+#
+# Setup $rpl_sync_chain, which is used by rpl_sync.inc. You normally
+# don't need to source this file, it should only be sourced by
+# rpl_sync.inc.
+#
+# $rpl_sync_chain is set to a string that specifies in what order
+# servers should be synchronized in include/rpl_sync.inc. This has the
+# form of a sequence of "chains" (with no separator between two
+# chains). Each chain begins with $rpl_server_count_length space
+# characters, followed by a sequence of numbers, each number
+# whitespace-padded to $rpl_server_count_length characters. Each
+# number in the sequence denotes a server, and the N'th server is a
+# master of the (N+1)'th server. For example, if $rpl_topology is
+# '1->2,2->3,3->1,2->4,5->6', then $rpl_sync_chain is ' 56 123124'.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_debug= 1]
+# --source include/rpl_generate_sync_chain.inc
+#
+# Parameters:
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= rpl_generate_sync_chain.inc
+--source include/begin_include_file.inc
+
+
+# Algorithm:
+# 0. Mark all servers as unseen and unsynced.
+# 1. Let S be a server that is marked unseen.
+# 2. Append S to the list of seen servers.
+# 3. Check how S is marked:
+# 3.1. If S has no master: append the list of seen servers (in
+# order from grand-master to grand-slave) to the end of
+# $rpl_sync_chain. Go to 3.
+# 3.2. Elseif S is marked as synced: append the list of seen
+# servers (in order from grand-master to grand-slave) to the
+# end of $rpl_sync_chain. Go to 3.
+# 3.3. Elseif S is marked as unsynced but seen: This means that the
+# graph of visited servers has a "6-shape": it is a loop with
+# a tail, such as 1->2->3->1->4->5. We should first sync the
+# loop, and then the tail. To ensure all servers in the loop
+# are synced, we must sync the loop two turns minus two
+# servers. For example, the loop 1->2->3->4->5->1 is fully
+# synced by this sequence of 1-step synchronizations:
+# 1->2->3->4->5->1->2->3->4. Hence we do this: in the list of
+# traversed servers (in order from grand-master to
+# grand-slave), find the first occurrence of S. Take the
+# sub-list starting at the 3rd server and ending at the first
+# occurrence of S. Append this sub-list it to the end of
+# $rpl_sync_chain. Then append the entire list of traversed
+# servers (in order from grand-master to grand-slave) to
+# $rpl_sync_chain. Go to 3.
+# 3.4. Else (i.e., S has a master and is not marked as seen or
+# synced): Mark S as seen. Set S=master(S) and go back to 2.
+# 4. For each server that is marked as seen, mark it as synced.
+# 5. If there are unseen servers, go back to 1.
+
+# $_rpl_server_marks holds the marks of all servers. The i'th character
+# corresponds to the mark of server i:
+# '0' = unseen & unmarked, '1' = seen & unsynced, '2' = seen & synced.
+--let $_rpl_server_marks= `SELECT REPEAT('0', $rpl_server_count)`
+--let $_rpl_start_server= $rpl_server_count
+--let $rpl_sync_chain=
+while ($_rpl_start_server)
+{
+ --let $_rpl_server= `SELECT RPAD('$_rpl_start_server', $rpl_server_count_length, ' ')`
+ --let $_rpl_seen_list=
+ --let $_rpl_continue_loop= 1
+ while ($_rpl_continue_loop)
+ {
+ --let $_rpl_master= `SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length)`
+ # We need to delimit elements of $_rpl_seen_list with commas, so
+ # that LOCATE() below will not find spurious matches that begin in
+ # the middle of one element and end in the middle of next element.
+ --let $_rpl_seen_list= $_rpl_server,$_rpl_seen_list
+ # If server is marked seen or synced, or has no master
+ if (`SELECT SUBSTRING('$_rpl_server_marks', $_rpl_server, 1) != 0 OR '$_rpl_master' = ''`)
+ {
+ # If server is marked seen but not synced.
+ if (`SELECT SUBSTRING('$_rpl_server_marks', $_rpl_server, 1) = 1`)
+ {
+ # Get sub-list of servers to prepend to server list.
+ # E.g., if topology is 1->2->3->4->1->5, then at this point
+ # $_rpl_seen_list='1,2,3,4,1,5,' and we have to prepend '4,3,'
+ # to it. Hence, the sub-list starts at position
+ # 1+2*($rpl_server_count_length+1) and ends at the first
+ # occurrence of ',1,' in the list.
+ --let $_rpl_extra_list= `SELECT SUBSTRING('$_rpl_seen_list', 1 + 2 * ($rpl_server_count_length + 1), LOCATE(',$_rpl_server,', '$_rpl_seen_list') - 2 * ($rpl_server_count_length + 1))`
+ --let $_rpl_seen_list= $_rpl_extra_list$_rpl_seen_list
+ }
+ # Append the seen servers. Only need to append if the list
+ # contains at least two elements.
+ if (`SELECT LENGTH('$_rpl_seen_list') > $rpl_server_count_length + 1`)
+ {
+ --let $rpl_sync_chain= $rpl_sync_chain$_rpl_no_server$_rpl_seen_list
+ }
+ --let $_rpl_continue_loop= 0
+ }
+ --let $_rpl_server_marks= `SELECT INSERT('$_rpl_server_marks', $_rpl_server, 1, '1')`
+ --let $_rpl_server= $_rpl_master
+ }
+ # Mark seen servers as synced
+ --let $_rpl_server_marks= `SELECT REPLACE('$_rpl_server_marks', '1', '2')`
+ # Get highest-numbered unmarked server.
+ --let $_rpl_start_server= `SELECT IFNULL(NULLIF($rpl_server_count + 1 - LOCATE('0', REVERSE('$_rpl_server_marks')), $rpl_server_count + 1), 0)`
+}
+# Strip commas: they were only needed temporarily.
+--let $rpl_sync_chain= `SELECT REPLACE('$rpl_sync_chain', ',', '')`
+
+if ($rpl_debug)
+{
+ --echo Generated \$rpl_sync_chain = '$rpl_sync_chain'
+}
+
+
+--let $include_filename= rpl_generate_sync_chain.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_init.inc b/mysql-test/include/rpl_init.inc
new file mode 100644
index 00000000000..3cf78dc2979
--- /dev/null
+++ b/mysql-test/include/rpl_init.inc
@@ -0,0 +1,242 @@
+# ==== Purpose ====
+#
+# Set up replication on several servers in a specified topology.
+#
+# By default, this script does the following:
+# - Creates the connections server_1, server_2, ..., server_N, as
+# well as extra connections server_1_1, server_2_1, ...,
+# server_N_1. server_I and server_I_1 are connections to the same
+# server.
+# - Sets up @@auto_increment_increment and @@auto_increment_increment.
+# - Verifies that @@server_id of all servers are different.
+# - Calls RESET MASTER, RESET SLAVE, USE test, CHANGE MASTER, START SLAVE.
+# - Sets the connection to server_1 before exiting.
+#
+# ==== Usage ====
+#
+# 1. If you are going to use more than two servers, create
+# rpl_test.cfg with the following contents:
+#
+# !include ../my.cnf
+# [mysqld.1]
+# log-slave-updates
+# [mysqld.2]
+# log-slave-updates
+# ...
+# [mysqld.N]
+# log-slave-updates
+#
+# [ENV]
+# SERVER_MYPORT_3= @mysqld.3.port
+# SERVER_MYPORT_4= @mysqld.4.port
+# SERVER_MYPORT_5= @mysqld.5.port
+# ...
+# SERVER_MYPORT_N= @mysqld.N.port
+#
+# (It is allowed, but not required, to configure SERVER_MYPORT_1
+# and SERVER_MYPORT_2 too. If these variables are not set, the
+# variables MASTER_MYPORT and SLAVE_MYPORT, configured in the
+# default my.cnf used by the rpl and rpl_ndb suites, are used
+# instead. In addition, in the rpl_ndb suite, SERVER_MYPORT_3 is
+# not needed since MASTER_MYPORT1 can be used instead.)
+#
+# 2. Execute the following near the top of the test:
+#
+# [--let $rpl_server_count= 7]
+# --let $rpl_topology= 1->2->3->1->4, 2->5, 6->7
+# [--let $rpl_check_server_ids= 1]
+# [--let $rpl_skip_change_master= 1]
+# [--let $rpl_skip_start_slave= 1]
+# [--let $rpl_skip_reset_master_and_slave= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/rpl_init.inc
+#
+# Parameters:
+#
+# $rpl_server_count
+# The number of servers to configure. If this is not set, the largest
+# number in $rpl_topology will be used.
+#
+# $rpl_topology
+# A comma-separated list of replication chain
+# specifications. Each replication chain specification has the
+# form S1->S2->...->Sn, where 1 <= S1,...Sn <= $rpl_server_count.
+# This file will configure S(i+1) to be a slave of S(i). If you
+# want to specify the empty topology (no server replicates at
+# all), you have to set $rpl_topology=none.
+#
+# $rpl_check_server_ids
+# If $rpl_check_server_ids is set, this script checks that the
+# @@server_id of all servers are different. This is normally
+# guaranteed by mtr, so it is only useful for debugging.
+#
+# $rpl_skip_reset_master_and_slave
+# By default, this script issues RESET MASTER and RESET SLAVE
+# before CHANGE MASTER and START SLAVE. RESET MASTER and RESET
+# SLAVE are suppressed if $rpl_skip_reset_master_and_slave is
+# set.
+#
+# $rpl_skip_change_master
+# By default, this script issues CHANGE MASTER so that all slaves
+# are ready to run as specified by $rpl_topology. CHANGE MASTER
+# is suppressed if $rpl_skip_change_master is set.
+#
+# $rpl_skip_start_slave
+# By default, this script issues START SLAVE on all slaves
+# specified by $rpl_topology. START SLAVE is suppressed if
+# $rpl_skip_change_master is set.
+#
+# $rpl_debug
+# By default, this script only outputs a static text that says
+# that rpl_init.inc was invoked. If $rpl_debug is set, additional
+# debug info is printed. The debug info may be nondeterministic,
+# so no test case should be checked in with $rpl_debug set.
+#
+# $slave_timeout
+# Timeout used when waiting for the slave threads to start.
+# See include/wait_for_slave_param.inc
+#
+#
+# ==== Side effects ====
+#
+# Changes current connection to server_1.
+
+--source include/have_log_bin.inc
+
+
+--let $include_filename= rpl_init.inc [topology=$rpl_topology]
+--source include/begin_include_file.inc
+
+
+if ($rpl_debug)
+{
+ --echo ---- Check input ----
+ --echo MASTER_MYPORT='$MASTER_MYPORT' SLAVE_MYPORT='$SLAVE_MYPORT' MASTER_MYPORT1='$MASTER_MYPORT1' SLAVE_MYPORT1='$SLAVE_MYPORT1'
+}
+
+# Allow $MASTER_MYPORT as alias for $SERVER_MYPORT_1
+if (`SELECT '$SERVER_MYPORT_1' = ''`)
+{
+ --let SERVER_MYPORT_1= $MASTER_MYPORT
+}
+# Allow $SLAVE_MYPORT as alias for $SERVER_MYPORT_2
+if (`SELECT '$SERVER_MYPORT_2' = ''`)
+{
+ --let SERVER_MYPORT_2= $SLAVE_MYPORT
+}
+# Allow $MASTER_MYPORT1 as alias for $SERVER_MYPORT_3
+# (this alias is used by rpl_ndb tests)
+if (`SELECT '$SERVER_MYPORT_3' = ''`)
+{
+ --let SERVER_MYPORT_3= $MASTER_MYPORT1
+}
+# Allow $SLAVE_MYPORT1 as alias for $SERVER_MYPORT_4
+# (this alias is used by rpl_ndb tests)
+if (`SELECT '$SERVER_MYPORT_4' = ''`)
+{
+ --let SERVER_MYPORT_4= $SLAVE_MYPORT1
+}
+# Check that $rpl_server_count is set
+if (!$rpl_server_count)
+{
+ --let $_compute_rpl_server_count= `SELECT REPLACE('$rpl_topology', '->', ',')`
+ --let $rpl_server_count= `SELECT GREATEST($_compute_rpl_server_count)`
+}
+
+
+if ($rpl_debug)
+{
+ --echo ---- Setup connections and reset each server ----
+}
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+# Create two connections to each server; reset master/slave, select
+# database, set autoinc variables.
+--let $_rpl_server= $rpl_server_count
+--let $_rpl_one= _1
+while ($_rpl_server)
+{
+ # Connect.
+ --let $rpl_server_number= $_rpl_server
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connect.inc
+ --let $rpl_connection_name= server_$_rpl_server$_rpl_one
+ --source include/rpl_connect.inc
+
+ # Configure server.
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+ USE test;
+ if (!$rpl_skip_reset_master_and_slave)
+ {
+ RESET MASTER;
+ RESET SLAVE;
+ }
+ eval SET auto_increment_increment= $rpl_server_count;
+ eval SET auto_increment_offset= $_rpl_server;
+
+ --dec $_rpl_server
+}
+
+
+# Signal that initialization is done and all connections created.
+--let $rpl_inited= 1
+
+# Signal that the server is in a dirty state and needs to be restarted
+# if the test is skipped. If the test is not skipped, it will continue
+# to the end and execute its cleanup section (and check-testcase will
+# report if you forget to clean up).
+--source include/force_restart_if_skipped.inc
+
+
+# Assert that all hosts have different server_ids
+if ($rpl_check_server_ids)
+{
+ if ($rpl_debug)
+ {
+ --echo ---- Check that @@server_id is distinct for all servers ----
+ }
+
+ --let $_rpl_server= $rpl_server_count
+ while ($_rpl_server)
+ {
+ --let $_rpl_server2= $_rpl_server
+ --dec $_rpl_server2
+ while ($_rpl_server2)
+ {
+ --let $assert_text= Servers $_rpl_server and $_rpl_server2 should have different @@server_id
+ --let $assert_condition= [$_rpl_server:SELECT @@server_id AS i, i, 1] != [$_rpl_server2:SELECT @@server_id AS i, i, 1]
+
+ --source include/assert.inc
+ --dec $_rpl_server2
+ }
+ --dec $_rpl_server
+ }
+}
+
+# $rpl_master_list must be set so that include/rpl_change_topology.inc
+# knows which servers are initialized and not.
+--let $rpl_master_list= `SELECT REPEAT('x', $rpl_server_count * LENGTH($rpl_server_count))`
+--source include/rpl_change_topology.inc
+
+
+if (!$rpl_skip_start_slave)
+{
+ --source include/rpl_start_slaves.inc
+}
+
+
+--let $rpl_connection_name= server_1
+--source include/rpl_connection.inc
+
+
+--let $skip_restore_connection= 1
+--let $include_filename= rpl_init.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_reconnect.inc b/mysql-test/include/rpl_reconnect.inc
new file mode 100644
index 00000000000..cdbbd0a1bf1
--- /dev/null
+++ b/mysql-test/include/rpl_reconnect.inc
@@ -0,0 +1,132 @@
+# ==== Purpose ====
+#
+# After a server has restarted, this waits for all clients configured
+# by rpl_init.inc and/or master-slave.inc to reconnect again.
+#
+# For each connection, it issues this:
+# --enable_reconnect
+# --source include/wait_until_connected_again.inc
+# --disable_reconnect
+#
+#
+# ==== Usage ====
+#
+# --let $rpl_server_number= N
+# [--let $rpl_debug= 1]
+# --source include/rpl_reconnect.inc
+#
+# Parameters:
+# $rpl_server_number
+# Number to identify the server that needs to reconnect. 1 is the
+# master server, 2 the slave server, 3 the 3rd server, and so on.
+# Cf. include/rpl_init.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+--let $include_filename= rpl_reconnect.inc
+--source include/begin_include_file.inc
+
+if (!$rpl_server_number)
+{
+ --die ERROR IN TEST: you must set $rpl_server_number before you source rpl_connect.inc
+}
+
+
+if ($rpl_debug)
+{
+ --echo ---- Enable reconnect ----
+}
+
+--let $_rpl_server_number= $rpl_server_number
+
+--dec $_rpl_server_number
+if (!$_rpl_server_number)
+{
+ --let $rpl_connection_name= default
+ --source include/rpl_connection.inc
+ --enable_reconnect
+
+ --let $rpl_connection_name= master
+ --source include/rpl_connection.inc
+ --enable_reconnect
+
+ --let $rpl_connection_name= master1
+ --source include/rpl_connection.inc
+ --enable_reconnect
+}
+
+--dec $_rpl_server_number
+if (!$_rpl_server_number)
+{
+ --let $rpl_connection_name= slave
+ --source include/rpl_connection.inc
+ --enable_reconnect
+
+ --let $rpl_connection_name= slave1
+ --source include/rpl_connection.inc
+ --enable_reconnect
+}
+
+--let $rpl_connection_name= server_$rpl_server_number
+--source include/rpl_connection.inc
+--enable_reconnect
+
+--let $_rpl_one= _1
+--let $rpl_connection_name= server_$rpl_server_number$_rpl_one
+--source include/rpl_connection.inc
+--enable_reconnect
+
+if ($rpl_debug)
+{
+ --echo ---- Wait for reconnect and disable reconnect on all connections ----
+}
+
+--let $_rpl_server_number= $rpl_server_number
+
+--dec $_rpl_server_number
+if (!$_rpl_server_number)
+{
+ --let $rpl_connection_name= default
+ --source include/rpl_connection.inc
+ --source include/wait_until_connected_again.inc
+ --disable_reconnect
+
+ --let $rpl_connection_name= master
+ --source include/rpl_connection.inc
+ --source include/wait_until_connected_again.inc
+ --disable_reconnect
+
+ --let $rpl_connection_name= master1
+ --source include/rpl_connection.inc
+ --source include/wait_until_connected_again.inc
+ --disable_reconnect
+}
+
+--dec $_rpl_server_number
+if (!$_rpl_server_number)
+{
+ --let $rpl_connection_name= slave
+ --source include/rpl_connection.inc
+ --source include/wait_until_connected_again.inc
+ --disable_reconnect
+
+ --let $rpl_connection_name= slave1
+ --source include/rpl_connection.inc
+ --source include/wait_until_connected_again.inc
+ --disable_reconnect
+}
+
+--let $rpl_connection_name= server_$rpl_server_number
+--source include/rpl_connection.inc
+--source include/wait_until_connected_again.inc
+--disable_reconnect
+
+--let $rpl_connection_name= server_$rpl_server_number$_rpl_one
+--source include/rpl_connection.inc
+--source include/wait_until_connected_again.inc
+--disable_reconnect
+
+
+--let $include_filename= rpl_reconnect.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_reset.inc b/mysql-test/include/rpl_reset.inc
new file mode 100644
index 00000000000..a94371c38fc
--- /dev/null
+++ b/mysql-test/include/rpl_reset.inc
@@ -0,0 +1,81 @@
+# ==== Purpose ====
+#
+# Reset all replication servers to a clean state:
+#
+# - sync all slaves,
+# - stop all slaves (STOP SLAVE),
+# - remove all binlogs and relay logs (RESET MASTER and RESET SLAVE),
+# - start all slaves again (START SLAVE).
+#
+# It does not execute CHANGE MASTER, so the replication topology is
+# kept intact.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_only_running_threads= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/rpl_end.inc
+#
+# Parameters:
+# $rpl_only_running_threads
+# If one or both of the IO and SQL threads is stopped, sync and
+# stop only the threads that are running. See
+# include/rpl_sync.inc and include/stop_slave.inc for details.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# $slave_timeout
+# Set the timeout when waiting for slave threads to stop and
+# start, respectively. See include/wait_for_slave_param.inc
+#
+# Note:
+# This script will fail if Last_SQL_Error or Last_IO_Error is
+# nonempty. If you expect an error in the SQL thread, you should
+# normally do this before you source include/rpl_reset.inc:
+#
+# --source include/wait_for_slave_sql_error.inc
+# --source include/stop_slave_io.inc
+# RESET SLAVE;
+
+--let $include_filename= rpl_reset.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+--source include/rpl_sync.inc
+
+
+if ($rpl_debug)
+{
+ --echo ---- Stop and reset all servers ----
+}
+--let $_rpl_server= $rpl_server_count
+while ($_rpl_server)
+{
+ --let $rpl_connection_name= server_$_rpl_server
+ --source include/rpl_connection.inc
+
+ # Check if this server is configured to have a master
+ if (`SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length) != ''`)
+ {
+ --source include/stop_slave.inc
+ RESET SLAVE;
+ }
+ RESET MASTER;
+ --dec $_rpl_server
+}
+
+
+--source include/rpl_start_slaves.inc
+
+
+--let $include_filename= rpl_reset.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_restart_server.inc b/mysql-test/include/rpl_restart_server.inc
new file mode 100644
index 00000000000..5df2c67d3da
--- /dev/null
+++ b/mysql-test/include/rpl_restart_server.inc
@@ -0,0 +1,39 @@
+# ==== Purpose ====
+#
+# Shut down and shut up the server given by $rpl_server_number. This
+# is equivalent to rpl_stop_server.inc followed by rpl_start_server.inc
+#
+# ==== Usage ====
+#
+# --let $rpl_server_number= N
+# [--let $rpl_server_parameters= --flag1 --flag2 ...]
+# [--let $rpl_debug= 1]
+# --source include/rpl_restart_server.inc
+#
+# Parameters:
+#
+# $rpl_server_number, $rpl_server_parameters
+# See include/rpl_start_server.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# ==== See also ====
+#
+# rpl_start_server.inc
+# rpl_stop_server.inc
+
+
+--let $_rpl_restart_server_args= [server_number=$rpl_server_number]
+if ($rpl_server_parameters)
+{
+ --let $_rpl_restart_server_args= [server_number=$rpl_server_number parameters: $rpl_server_parameters]
+}
+--let $include_filename= rpl_restart_server.inc $_rpl_restart_server_args
+--source include/begin_include_file.inc
+
+--source include/rpl_stop_server.inc
+--source include/rpl_start_server.inc
+
+--let $include_filename= rpl_restart_server.inc $_rpl_restart_server_args
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_start_server.inc b/mysql-test/include/rpl_start_server.inc
new file mode 100644
index 00000000000..c59c7759910
--- /dev/null
+++ b/mysql-test/include/rpl_start_server.inc
@@ -0,0 +1,54 @@
+# ==== Purpose ====
+#
+# Start the server given by $rpl_server_number. This should normally
+# be invoked after rpl_stop_server.inc.
+#
+# ==== Usage ====
+#
+# --let $rpl_server_number= N
+# [--let $rpl_server_parameters= --flag1 --flag2 ...]
+# [--let $rpl_debug= 1]
+# --source include/rpl_start_server.inc
+#
+# Parameters:
+#
+# $rpl_server_number
+# Number to identify the server that needs to reconnect. 1 is the
+# master server, 2 the slave server, 3 the 3rd server, and so on.
+# Cf. include/rpl_init.inc
+#
+# $rpl_server_parameters
+# If set, extra parameters given by this variable are passed to
+# mysqld.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# ==== See also ====
+#
+# rpl_stop_server.inc
+# rpl_restart_server.inc
+
+
+--let $_rpl_start_server_command= restart
+--let $_rpl_start_server_args= [server_number=$rpl_server_number]
+if ($rpl_server_parameters)
+{
+ --let $_rpl_start_server_command= restart:$rpl_server_parameters
+ --let $_rpl_start_server_args= [server_number=$rpl_server_number parameters: $rpl_server_parameters]
+}
+
+--let $include_filename= rpl_start_server.inc $_rpl_start_server_args
+--source include/begin_include_file.inc
+
+--let $rpl_connection_name= server_$rpl_server_number
+--source include/rpl_connection.inc
+
+# Write file to make mysql-test-run.pl start up the server again
+--exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+
+--source include/rpl_reconnect.inc
+
+
+--let $include_filename= rpl_start_server.inc $_rpl_start_server_args
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_start_slaves.inc b/mysql-test/include/rpl_start_slaves.inc
new file mode 100644
index 00000000000..fdd90eb12c5
--- /dev/null
+++ b/mysql-test/include/rpl_start_slaves.inc
@@ -0,0 +1,32 @@
+# ==== Purpose ====
+#
+# Start all slaves configured by rpl_init.inc and wait for the slave
+# threads to start.
+#
+# Note that rpl_init.inc calls this file automatically, so you only
+# need to source this file if the slaves have stopped after that.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/rpl_start_slaves.inc
+#
+# Parameters:
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# $slave_timeout
+# Set the timeout when waiting for slave threads to stop and
+# start, respectively. See include/wait_for_slave_param.inc
+
+
+--let $include_filename= rpl_start_slaves.inc
+--source include/begin_include_file.inc
+
+--let $rpl_source_file= include/start_slave.inc
+--source include/rpl_for_each_slave.inc
+
+--let $include_filename= rpl_start_slaves.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_stop_server.inc b/mysql-test/include/rpl_stop_server.inc
new file mode 100644
index 00000000000..e1f8839dd69
--- /dev/null
+++ b/mysql-test/include/rpl_stop_server.inc
@@ -0,0 +1,63 @@
+# ==== Purpose ====
+#
+# Stop the server given by $rpl_server_number.
+#
+# ==== Usage ====
+#
+# --let $rpl_server_number= N
+# [--let $rpl_debug= 1]
+# --source include/rpl_stop_server.inc
+#
+# Parameters:
+#
+# $rpl_server_number
+# Number to identify the server that needs to reconnect. 1 is the
+# master server, 2 the slave server, 3 the 3rd server, and so on.
+# Cf. include/rpl_init.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+# ==== See also ====
+#
+# rpl_start_server.inc
+# rpl_restart_server.inc
+
+
+# Can't use begin_include_file / end_include_file because they require
+# executing on a server and the server will go down after this script.
+if (!$_include_file_depth)
+{
+ --echo include/rpl_stop_server.inc [server_number=$rpl_server_number]
+}
+--inc $_include_file_depth
+--let $_rpl_stop_server_old_connection= $CURRENT_CONNECTION
+if ($rpl_debug)
+{
+ --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR'
+ --echo $_include_file_indent==== BEGIN include/$include_filename ====
+}
+
+
+--let $rpl_connection_name= server_$rpl_server_number
+--source include/rpl_connection.inc
+
+# Write file to make mysql-test-run.pl expect the "crash", but don't start
+# it until it's told to
+--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
+
+# Send shutdown to the connected server and give
+# it 10 seconds to die before zapping it
+shutdown_server 10;
+
+--source include/wait_until_disconnected.inc
+
+
+--let $rpl_connection_name= $_rpl_stop_server_old_connection
+--source include/rpl_connection.inc
+--dec $_include_file_depth
+if ($rpl_debug)
+{
+ --echo $_include_file_indent==== END include/rpl_stop_server.inc [server_number=$rpl_server_number] ====
+ --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR'
+}
diff --git a/mysql-test/include/rpl_stop_slaves.inc b/mysql-test/include/rpl_stop_slaves.inc
new file mode 100644
index 00000000000..2b9199739dd
--- /dev/null
+++ b/mysql-test/include/rpl_stop_slaves.inc
@@ -0,0 +1,33 @@
+# ==== Purpose ====
+#
+# Stop all slaves configured by rpl_init.inc and waits for the slave
+# threads to stop.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_only_running_threads= 1]
+# [--let $rpl_debug= 1]
+# [--let $rpl_timeout= NUMBER]
+# --source include/rpl_stop_slaves.inc
+#
+# Parameters:
+# $rpl_only_running_threads
+# See include/stop_slave.inc
+#
+# $slave_timeout
+# Set the timeout when waiting for slave threads to stop. See
+# include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= rpl_stop_slaves.inc
+--source include/begin_include_file.inc
+
+--let $rpl_source_file= include/stop_slave.inc
+--source include/rpl_for_each_slave.inc
+
+--let $include_filename= rpl_stop_slaves.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/rpl_sync.inc b/mysql-test/include/rpl_sync.inc
new file mode 100644
index 00000000000..a05bee23981
--- /dev/null
+++ b/mysql-test/include/rpl_sync.inc
@@ -0,0 +1,153 @@
+# ==== Purpose ====
+#
+# Sync all servers in an arbitrary replication topology. This works
+# only if the servers have been configured with rpl_init.inc (and
+# possibly rpl_change_topology.inc).
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_only_running_threads= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/rpl_sync.inc
+#
+# Parameters:
+# $rpl_only_running_threads
+# By default, this script assumes that both the IO thread and the
+# SQL thread are running and fails if one of them is stopped. If
+# $rpl_only_running_threads is set, this script first checks
+# which slave threads are running:
+# - If both threads are running, sync both threads with master.
+# - If only IO thread is running, sync IO thread with master.
+# - If only SQL thread is running, sync SQL thread with IO thread.
+# - If no thread is running, don't sync.
+#
+# $slave_timeout
+# Set the timeout when waiting for threads to sync. See
+# include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+#
+#
+# ==== Side effects ====
+#
+# Does not change the current connection (note that this is different
+# from mysqltest's built-in sync_slave_with_master command).
+
+
+--let $include_filename= rpl_sync.inc
+--source include/begin_include_file.inc
+
+
+# Compute $rpl_sync_chain if needed. We could have done this in
+# rpl_change_topology.inc, but instead we do it here because that
+# means we only compute $rpl_sync_chain when it is needed.
+if ($rpl_sync_chain_dirty)
+{
+ --source include/rpl_generate_sync_chain.inc
+ --let $rpl_sync_chain_dirty= 0
+}
+
+
+if ($rpl_debug)
+{
+ --echo \$rpl_sync_chain = '$rpl_sync_chain' \$rpl_only_running_threads= $rpl_only_running_threads
+}
+
+if (!$rpl_server_count_length)
+{
+ --die \$rpl_server_count_length is not set. Did you call rpl_init.inc?
+}
+
+
+--let $_rpl_i= 1
+--let $_rpl_connect= 0
+while ($_rpl_i) {
+ # $rpl_sync_chain consists of a sequence of sync chains. Each sync
+ # chain has the form:
+ #
+ # <space><server1_1><server1_2>...<server1_N>
+ #
+ # So the space character indicates that a new sync chain starts.
+ --let $_rpl_server= `SELECT TRIM(SUBSTR('$rpl_sync_chain', 1 + ($_rpl_i - 1) * $rpl_server_count_length, $rpl_server_count_length))`
+
+ if ($_rpl_server)
+ {
+ if ($rpl_debug)
+ {
+ --echo [sync server_$_rpl_prev_server -> server_$_rpl_server]
+ }
+ if ($rpl_only_running_threads)
+ {
+ --connection server_$_rpl_server
+ --let $_rpl_slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1)
+ --let $_rpl_slave_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1)
+ if ($rpl_debug)
+ {
+ --echo Sync IO: $_rpl_slave_io_running; Sync SQL: $_rpl_slave_sql_running
+ }
+ --let $_rpl_slave_io_running= `SELECT IF('$_rpl_slave_io_running' = 'Yes', 1, '')`
+ --let $_rpl_slave_sql_running= `SELECT IF('$_rpl_slave_sql_running' = 'Yes', 1, '')`
+ if ($_rpl_slave_io_running)
+ {
+ --connection server_$_rpl_prev_server
+ if ($_rpl_slave_sql_running)
+ {
+ if ($rpl_debug)
+ {
+ --let $_rpl_master_file= query_get_value("SHOW MASTER STATUS", File, 1)
+ --let $_rpl_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1)
+ --echo syncing master_file='$_rpl_master_file' master_pos='$_rpl_master_pos'
+ }
+ --sync_slave_with_master server_$_rpl_server
+ }
+ if (!$_rpl_slave_sql_running)
+ {
+ --let $sync_slave_connection= server_$_rpl_server
+ --source include/sync_slave_io_with_master.inc
+ }
+ }
+ if (!$_rpl_slave_io_running)
+ {
+ if ($_rpl_slave_sql_running)
+ {
+ --source include/sync_slave_sql_with_io.inc
+ }
+ }
+ }
+ if (!$rpl_only_running_threads)
+ {
+ --connection server_$_rpl_prev_server
+ if ($rpl_debug)
+ {
+ --let $_rpl_master_file= query_get_value("SHOW MASTER STATUS", File, 1)
+ --let $_rpl_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1)
+ --echo syncing master_file='$_rpl_master_file' master_pos='$_rpl_master_pos'
+ }
+ --sync_slave_with_master server_$_rpl_server
+ }
+ }
+
+ # This happens at the beginning of a new sync subchain and at the
+ # end of the full sync chain.
+ if (!$_rpl_server)
+ {
+ --inc $_rpl_i
+ --let $_rpl_server= `SELECT TRIM(SUBSTR('$rpl_sync_chain', 1 + ($_rpl_i - 1) * $rpl_server_count_length, $rpl_server_count_length))`
+
+ if (!$_rpl_server)
+ {
+ # terminate loop
+ --let $_rpl_i= -1
+ }
+ }
+
+ --let $_rpl_prev_server= $_rpl_server
+ --inc $_rpl_i
+}
+
+
+--let $include_filename= rpl_sync.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/save_master_pos.inc b/mysql-test/include/save_master_pos.inc
new file mode 100644
index 00000000000..2c176d160cc
--- /dev/null
+++ b/mysql-test/include/save_master_pos.inc
@@ -0,0 +1,33 @@
+# ==== Purpose ====
+#
+# Save the current binlog position on the master, just like the
+# built-in mysqltest command save_master_pos. The advantage of this
+# script is that the saved position is available to the test script.
+#
+#
+# ==== Usage ====
+#
+# [--let $rpl_debug= 1]
+# --source include/save_master_pos.inc
+#
+# Typically, you would use this script together with
+# include/sync_io_with_master.inc
+#
+# Parameters:
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= save_master_pos.inc
+--source include/begin_include_file.inc
+
+let $_master_file= query_get_value("SHOW MASTER STATUS", File, 1);
+let $_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1);
+
+if ($rpl_debug)
+{
+ --echo save_master_pos saved file='$_master_file', pos='$_master_pos'
+}
+
+--let $include_filename= save_master_pos.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/setup_fake_relay_log.inc b/mysql-test/include/setup_fake_relay_log.inc
index f881f3bf4e8..6c47752aabd 100644
--- a/mysql-test/include/setup_fake_relay_log.inc
+++ b/mysql-test/include/setup_fake_relay_log.inc
@@ -29,11 +29,15 @@
# Creates a binlog file and a binlog index file, and sets
# @@global.relay_log_purge=1. All this is restored when you call
# cleanup_fake_relay_log.inc.
-#
-# Enables the query log.
---disable_query_log
+--let $include_filename= setup_fake_relay_log.inc
+--source include/begin_include_file.inc
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
# Print message.
let $_fake_relay_log_printable= `SELECT REPLACE('$fake_relay_log', '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`;
@@ -46,22 +50,18 @@ if (`SELECT "$_sql_running" = "Yes" OR "$_io_running" = "Yes"`) {
--echo Error: Slave was running when test case sourced
--echo include/setup_fake_replication.inc
--echo Slave_IO_Running = $_io_running; Slave_SQL_Running = $_sql_running
- --echo Printing some debug info:
- SHOW SLAVE STATUS;
- SHOW MASTER STATUS;
- SHOW BINLOG EVENTS;
- SHOW PROCESSLIST;
+ --source include/show_rpl_debug_info.inc
+ --die
}
# Read server variables.
-let $MYSQLD_DATADIR= `SELECT @@datadir`;
+let $_fake_datadir= `SELECT @@datadir`;
let $_fake_filename= query_get_value(SHOW VARIABLES LIKE 'relay_log', Value, 1);
if (!$_fake_filename) {
- --echo Badly written test case: relay_log variable is empty. Please use the
- --echo server option --relay-log=FILE.
+ --die ERROR IN TEST: relay_log variable is empty. Please use the server option --relay-log=FILE.
}
-let $_fake_relay_log= $MYSQLD_DATADIR/$_fake_filename-fake.000001;
-let $_fake_relay_index= $MYSQLD_DATADIR/$_fake_filename.index;
+let $_fake_relay_log= $_fake_datadir/$_fake_filename-fake.000001;
+let $_fake_relay_index= $_fake_datadir/$_fake_filename.index;
# Need to restore relay_log_purge in cleanup_fake_relay_log.inc, since
# CHANGE MASTER modifies it (see the manual for CHANGE MASTER).
let $_fake_relay_log_purge= `SELECT @@global.relay_log_purge`;
@@ -69,24 +69,16 @@ let $_fake_relay_log_purge= `SELECT @@global.relay_log_purge`;
# Create relay log file.
copy_file $fake_relay_log $_fake_relay_log;
# Create relay log index.
+--let $write_var= $_fake_filename-fake.000001\n
+--let $write_to_file= $_fake_relay_index
+--source include/write_var_to_file.inc
-if (`SELECT LENGTH(@@secure_file_priv) > 0`)
-{
- -- let $_file_priv_dir= `SELECT @@secure_file_priv`
- -- let $_suffix= `SELECT UUID()`
- -- let $_tmp_file= $_file_priv_dir/fake-index.$_suffix
-
- -- eval select '$_fake_filename-fake.000001\n' into dumpfile '$_tmp_file'
- -- copy_file $_tmp_file $_fake_relay_index
- -- remove_file $_tmp_file
-}
-
-if (`SELECT LENGTH(@@secure_file_priv) = 0`)
-{
- -- eval select '$_fake_filename-fake.000001\n' into dumpfile '$_fake_relay_index'
-}
+# Remember old settings.
+--let $_fake_old_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1)
# Setup replication from existing relay log.
eval CHANGE MASTER TO MASTER_HOST='dummy.localdomain', RELAY_LOG_FILE='$_fake_filename-fake.000001', RELAY_LOG_POS=4;
---enable_query_log
+
+--let $include_filename= setup_fake_relay_log.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/show_rpl_debug_info.inc b/mysql-test/include/show_rpl_debug_info.inc
index 9944e6cd25f..0faae59d8d3 100644
--- a/mysql-test/include/show_rpl_debug_info.inc
+++ b/mysql-test/include/show_rpl_debug_info.inc
@@ -3,87 +3,104 @@
# Print status information for replication, typically used to debug
# test failures.
#
-# First, the following is printed on slave:
+# The following is printed on the current connection:
#
+# SELECT NOW()
# SHOW SLAVE STATUS
+# SHOW MASTER STATUS
# SHOW PROCESSLIST
# SHOW BINLOG EVENTS IN <binlog_name>
#
# Where <binlog_name> is the currently active binlog.
#
-# Then, the following is printed on master:
-#
-# SHOW MASTER STATUS
-# SHOW PROCESSLIST
-# SHOW BINLOG EVENTS IN <sql_binlog_name>
-# SHOW BINLOG EVENTS IN <io_binlog_name>
+# Then, the same is printed from all connections configured by
+# rpl_init.inc - i.e., on connection server_N, where
+# 1 <= N <= $rpl_server_count
#
-# Where <sql_binlog_name> is the binlog name that the slave sql thread
-# is currently reading from and <io_binlog_name> is the binlog that
-# the slave IO thread is currently reading from.
#
# ==== Usage ====
#
-# [let $master_connection= <connection>;]
-# source include/show_rpl_debug_info.inc;
+# [--let $rpl_only_current_connection= 1]
+# --source include/show_rpl_debug_info.inc
+#
+# Parameters:
+# $rpl_only_current_connection
+# By default, debug info is printed from all connections, starting
+# with the current connection. If this variable is set, debug
+# info is printed only for the current connection.
+#
+#
+# ==== Side effects ====
+#
+# Turns on enable_query_log, enable_result_log, enable_warnings,
+# horizontal_results, and enable_abort_on_error.
#
-# If $master_connection is set, debug info will be retrieved from the
-# connection named $master_connection. Otherwise, it will be
-# retrieved from the 'master' connection if the current connection is
-# 'slave'.
+# Prints non-deterministic output to the query log. This file should
+# never be called in a test that does not fail.
-let $_con= $CURRENT_CONNECTION;
---echo
---echo [on $_con]
---echo
-SELECT NOW();
---echo **** SHOW SLAVE STATUS on $_con ****
-query_vertical SHOW SLAVE STATUS;
---echo
---echo **** SHOW PROCESSLIST on $_con ****
-SHOW PROCESSLIST;
---echo
---echo **** SHOW BINLOG EVENTS on $_con ****
-let $binlog_name= query_get_value("SHOW MASTER STATUS", File, 1);
-eval SHOW BINLOG EVENTS IN '$binlog_name';
-let $_master_con= $master_connection;
-if (!$_master_con)
+--enable_query_log
+--enable_result_log
+--enable_warnings
+--disable_abort_on_error
+--horizontal_results
+
+
+--let $_rpl_old_con= $CURRENT_CONNECTION
+--let $_rpl_is_first_server= 1
+--let $_rpl_server= $rpl_server_count
+--inc $_rpl_server
+
+
+while ($_rpl_server)
{
- if (`SELECT '$_con' = 'slave'`)
- {
- let $_master_con= master;
- }
- if (!$_master_con)
+ if (!$_rpl_is_first_server)
{
- --echo Unable to determine master connection. No debug info printed for master.
- --echo Please fix the test case by setting $master_connection before sourcing
- --echo show_rpl_debug_info.inc.
+ --connection server_$_rpl_server
}
-}
-
-if ($_master_con)
-{
- let $master_binlog_name_io= query_get_value("SHOW SLAVE STATUS", Master_Log_File, 1);
- let $master_binlog_name_sql= query_get_value("SHOW SLAVE STATUS", Relay_Master_Log_File, 1);
--echo
- --echo [on $_master_con]
- connection $_master_con;
+ --echo ############################## $CURRENT_CONNECTION ##############################
+ --echo
+ --echo **** SHOW WARNINGS on $CURRENT_CONNECTION ****
+ SHOW WARNINGS;
+ --echo
+ --echo **** SELECT replication-related variables on $CURRENT_CONNECTION ****
+ SELECT NOW(), @@SERVER_ID;
+ --echo
+ --echo **** SHOW SLAVE STATUS on $CURRENT_CONNECTION ****
+ query_vertical SHOW SLAVE STATUS;
--echo
- SELECT NOW();
- --echo **** SHOW MASTER STATUS on $_master_con ****
+ --echo **** SHOW MASTER STATUS on $CURRENT_CONNECTION ****
query_vertical SHOW MASTER STATUS;
--echo
- --echo **** SHOW PROCESSLIST on $_master_con ****
+ --echo **** SHOW SLAVE HOSTS on $CURRENT_CONNECTION ****
+ query_vertical SHOW SLAVE HOSTS;
+ --echo
+ --echo **** SHOW PROCESSLIST on $CURRENT_CONNECTION ****
SHOW PROCESSLIST;
--echo
- --echo **** SHOW BINLOG EVENTS on $_master_con ****
- eval SHOW BINLOG EVENTS IN '$master_binlog_name_sql';
- if (`SELECT '$master_binlog_name_io' != '$master_binlog_name_sql'`)
+ --echo **** SHOW BINARY LOGS on $CURRENT_CONNECTION ****
+ SHOW BINARY LOGS;
+ --echo
+ --echo **** SHOW BINLOG EVENTS on $CURRENT_CONNECTION ****
+ let $binlog_name= query_get_value("SHOW MASTER STATUS", File, 1);
+ --echo binlog_name = '$binlog_name'
+ eval SHOW BINLOG EVENTS IN '$binlog_name';
+
+
+ --let $_rpl_is_first_server= 0
+ --dec $_rpl_server
+ # Don't use same connection twice.
+ if (`SELECT 'server_$_rpl_server' = '$_rpl_old_con'`)
{
- eval SHOW BINLOG EVENTS IN '$master_binlog_name_io';
+ --dec $_rpl_server
+ if ($rpl_only_current_connection)
+ {
+ --let $_rpl_server= 0
+ }
}
-
- connection $_con;
}
+
+--connection $_rpl_old_con
+--enable_abort_on_error
diff --git a/mysql-test/include/show_slave_status.inc b/mysql-test/include/show_slave_status.inc
index d66c068e19b..779de5a37f5 100644
--- a/mysql-test/include/show_slave_status.inc
+++ b/mysql-test/include/show_slave_status.inc
@@ -1,25 +1,75 @@
-# Include file to show the slave status, masking out some information
-# that varies depending on where the test is executed.
+# ==== Purpose ====
+#
+# Show selected columns of output from SHOW SLAVE STATUS.
+#
+# Note: test cases should never call SHOW SLAVE STATUS directly,
+# because that outputs more information to the query log than what is
+# needed for the property that is being tested. That would cause
+# maintenance problems, because (1) it is hard for a human to
+# understand what property is being tested; (2) the output of many of
+# the fields is non-deterministic (e.g., Slave_IO_State) or changes
+# frequently (e.g., binlog positions).
+#
+# Instead, what you want most of the time is to source one of the
+# following scripts:
+#
+# include/check_slave_no_error.inc
+# Assert that Slave_SQL_Errno = Slave_IO_Errno = 0.
+#
+# include/check_slave_is_running.inc
+# Assert that Slave_IO_Running = Slave_SQL_Running = 'Yes'.
+#
+# include/wait_for_slave_sql_error.inc
+# Wait for the SQL thread to get a given error (and assert that
+# it has this error).
+#
+# include/wait_for_slave_io_error.inc
+# Wait for the IO thread to get a given error (and assert that
+# it has this error).
+#
+# include/wait_for_slave_sql_to_stop.inc
+# include/wait_for_slave_io_to_stop.inc
+# include/wait_for_slave_to_stop.inc
+# Wait for the SQL thread, the IO thread, or both to stop (and
+# assert they stop).
+#
+# When none of the above applies, you may use this script instead.
+# However, take care so that the test never contains explicit binlog
+# coordinates. Usually you can read the binlog coordinates into a
+# variable and compare it to some other coordinates.
+#
+#
+# ==== Usage ====
+#
+# --let $status_items= Column_Name[, Column_Name[, ...]]
+# --source include/show_slave_status.inc
+#
+# Parameters:
+# $status_items
+# Set to the name of the column in the output of SHOW SLAVE STATUS
+# that you want to display. Example:
+#
+# --let $status_items= Master_SSL_Allowed
+#
+# You can show multiple columns by setting $status_items to a
+# comma-separated list. Example:
+#
+# --let $status_items= Master_Log_File, Relay_Master_Log_File
---let $_items=$status_items
+
+--let $_show_slave_status_items=$status_items
if (`SELECT "XX$status_items" = "XX"`)
{
- --die 'Variable status_items is NULL'
+ --die Bug in test case: The mysqltest variable $status_items is not set.
}
---disable_query_log
---vertical_results
-while (`SELECT "XX$_items" <> "XX"`)
+while (`SELECT "XX$_show_slave_status_items" <> "XX"`)
{
- --let $_name= `SELECT SUBSTRING_INDEX('$_items', ',', 1)`
- --let $_items= `SELECT LTRIM(SUBSTRING('$_items', LENGTH('$_name') + 2))`
-
- --let $_value= query_get_value(SHOW SLAVE STATUS, $_name, 1)
+ --let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)`
+ --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))`
- --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
- --eval SELECT "$_value" AS $_name
+ --let $_show_slave_status_value= query_get_value(SHOW SLAVE STATUS, $_show_slave_status_name, 1)
+ --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
+ --echo $_show_slave_status_name = '$_show_slave_status_value'
}
-
---horizontal_results
---enable_query_log
diff --git a/mysql-test/include/start_slave.inc b/mysql-test/include/start_slave.inc
index 78a02736de8..d01978037b4 100644
--- a/mysql-test/include/start_slave.inc
+++ b/mysql-test/include/start_slave.inc
@@ -6,16 +6,34 @@
# Please use this instead of 'START SLAVE', to reduce the risk of test
# case bugs.
#
+#
# ==== Usage ====
#
-# source include/wait_for_slave_to_start.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/start_slave.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= start_slave.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
---disable_query_log
START SLAVE;
---enable_query_log
---echo include/start_slave.inc
source include/wait_for_slave_to_start.inc;
+
+
+--let $include_filename= start_slave.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/stop_slave.inc b/mysql-test/include/stop_slave.inc
index 7161e6fe739..64cc0d5b322 100644
--- a/mysql-test/include/stop_slave.inc
+++ b/mysql-test/include/stop_slave.inc
@@ -3,19 +3,86 @@
# Issues STOP SLAVE on the current connection. Then waits until both
# the IO and SQL threads have stopped, or until a timeout is reached.
#
-# Please use this instead of 'STOP SLAVE', to reduce the risk of test
-# case bugs.
+# Please use this instead of 'STOP SLAVE', to reduce the risk of races
+# in test cases.
+#
+# This will fail if the slave IO or SQL thread has an error. If you
+# expect an error in the IO thread, use
+# include/wait_for_slave_io_error.inc and include/stop_slave_sql.inc.
+#
#
# ==== Usage ====
#
-# source include/wait_for_slave_to_start.inc;
+# [--let $rpl_only_running_threads= 1]
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/stop_slave.inc
+#
+# Parameters:
+# $rpl_only_running_threads
+# By default, this script executes STOP SLAVE unconditionally.
+# This generates a warnings if one or both slave threads are
+# already stopped. If $rpl_only_running_threads is set, this
+# script checks which slave threads are running, and issues either
+# STOP SLAVE, STOP SLAVE SQL_THREAD, STOP SLAVE IO_THREAD, or
+# nothing.
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= stop_slave.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+if ($rpl_only_running_threads)
+{
+ --let $_slave_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1)
+ --let $_slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1)
+ if ($rpl_debug)
+ {
+ --echo Stop SQL: $_slave_sql_running; Stop IO: $_slave_io_running
+ }
+
+ --let $_slave_running_bits= `SELECT IF('$_slave_io_running' = 'Yes', 1, 0) + IF('$_slave_sql_running' = 'Yes', 2, 0)`
+ if ($_slave_running_bits)
+ {
+ --dec $_slave_running_bits
+ # $_slave_running_bits=1: io thread running
+ if (!$_slave_running_bits)
+ {
+ --source include/stop_slave_io.inc
+ }
+ --dec $_slave_running_bits
+ # $_slave_running_bits=2: sql thread running
+ if (!$_slave_running_bits)
+ {
+ --source include/stop_slave_sql.inc
+ }
+ --dec $_slave_running_bits
+ # $_slave_running_bits=2: both threads running
+ if (!$_slave_running_bits)
+ {
+ STOP SLAVE;
+ --source include/wait_for_slave_to_stop.inc
+ }
+ }
+}
+if (!$rpl_only_running_threads)
+{
+ STOP SLAVE;
+ --source include/wait_for_slave_to_stop.inc
+}
+
---disable_query_log
-STOP SLAVE;
---enable_query_log
---echo include/stop_slave.inc
-source include/wait_for_slave_to_stop.inc;
+--let $include_filename= stop_slave.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/stop_slave_io.inc b/mysql-test/include/stop_slave_io.inc
new file mode 100644
index 00000000000..ddc83782311
--- /dev/null
+++ b/mysql-test/include/stop_slave_io.inc
@@ -0,0 +1,43 @@
+# ==== Purpose ====
+#
+# Issues STOP SLAVE IO_THREAD on the current connection. Then waits
+# until the IO thread has stopped, or until a timeout is reached.
+#
+# This will fail if the slave IO thread has an error. If you expect an
+# error in the IO thread, use include/wait_for_slave_io_error.inc
+# instead.
+#
+# Please use this instead of 'STOP SLAVE IO_THREAD', to reduce the
+# risk of races in test cases.
+#
+#
+# ==== Usage ====
+#
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/stop_slave_io.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= stop_slave_io.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+STOP SLAVE IO_THREAD;
+--source include/wait_for_slave_io_to_stop.inc
+
+
+--let $include_filename= stop_slave_io.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/stop_slave_sql.inc b/mysql-test/include/stop_slave_sql.inc
new file mode 100644
index 00000000000..f5075b32fda
--- /dev/null
+++ b/mysql-test/include/stop_slave_sql.inc
@@ -0,0 +1,41 @@
+# ==== Purpose ====
+#
+# Issues STOP SLAVE SQL_THREAD on the current connection. Then waits
+# until the SQL thread has stopped, or until a timeout is reached.
+#
+# Please use this instead of 'STOP SLAVE SQL_THREAD', to reduce the
+# risk of races in test cases.
+#
+# This will fail if the SQL thread has an error.
+#
+#
+# ==== Usage ====
+#
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/stop_slave_sql.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= stop_slave_sql.inc
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
+
+STOP SLAVE SQL_THREAD;
+--source include/wait_for_slave_sql_to_stop.inc
+
+
+--let $include_filename= stop_slave_sql.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/sync_io_with_master.inc b/mysql-test/include/sync_io_with_master.inc
new file mode 100644
index 00000000000..34906c416f5
--- /dev/null
+++ b/mysql-test/include/sync_io_with_master.inc
@@ -0,0 +1,46 @@
+# ==== Purpose ====
+#
+# Waits until the slave IO thread on the current connection has been
+# synced up to the point saved by the last call to
+# include/save_master_pos.inc (i.e., until the IO thead has copied up
+# to the saved position). Does not wait for the SQL thread.
+#
+#
+# ==== Usage ====
+#
+# On master:
+# --source include/save_master_pos.inc
+#
+# On slave:
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/sync_slave_io_with_master.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= sync_io_with_master.inc
+--source include/begin_include_file.inc
+
+
+--let $_old_slave_error_param= $slave_error_param
+--let $slave_error_param= Last_IO_Errno
+
+--let $slave_param= Master_Log_File
+--let $slave_param_value= $_master_file
+source include/wait_for_slave_param.inc;
+
+let $slave_param= Read_Master_Log_Pos;
+let $slave_param_value= $_master_pos;
+source include/wait_for_slave_param.inc;
+
+--let $slave_error_param= $_old_slave_error_param
+
+
+--let $include_filename= sync_io_with_master.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/sync_slave_io_with_master.inc b/mysql-test/include/sync_slave_io_with_master.inc
index f7dd563039c..b1b81371c97 100644
--- a/mysql-test/include/sync_slave_io_with_master.inc
+++ b/mysql-test/include/sync_slave_io_with_master.inc
@@ -2,35 +2,49 @@
#
# Waits until the slave IO thread has been synced, i.e., all events
# have been copied over to slave. Does not care if the SQL thread is
-# in sync.
+# in sync (or even running).
#
#
# ==== Usage ====
#
-# source include/sync_slave_io_with_master.inc;
+# [--let $sync_slave_connection= <connection_name>]
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/sync_slave_io_with_master.inc
#
-# Syncs to the current position on master, as found by SHOW MASTER
-# STATUS.
+# Syncs slave to the current position on master, as found by SHOW
+# MASTER STATUS.
#
# Must be called on the master. Will change connection to the slave.
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# Parameters:
+# $sync_slave_connection
+# By default, this script switches connection to 'slave'. If
+# $sync_slave_connection is set, then '$sync_slave_connection' is
+# used instead of 'slave'.
+#
+# $slave_timeout
+# See include/wait_for_slave_param.inc.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+--let $include_filename= sync_slave_io_with_master.inc
+--source include/begin_include_file.inc
-let $_master_file= query_get_value("SHOW MASTER STATUS", File, 1);
-let $_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1);
-connection slave;
+--source include/save_master_pos.inc
-let $slave_error_message= Failed while waiting for slave IO thread to sync;
+--let $rpl_connection_name= slave
+if (`SELECT '$sync_slave_connection' != ''`)
+{
+ --let $rpl_connection_name= $sync_slave_connection
+}
+--source include/rpl_connection.inc
-let $slave_param= Master_Log_File;
-let $slave_param_value= $_master_file;
-source include/wait_for_slave_param.inc;
+--source include/sync_io_with_master.inc
-let $slave_param= Read_Master_Log_Pos;
-let $slave_param_value= $_master_pos;
-source include/wait_for_slave_param.inc;
-let $slave_error_message= ;
+--let $include_filename= sync_slave_io_with_master.inc
+--let $skip_restore_connection= 1
+--source include/end_include_file.inc
diff --git a/mysql-test/include/sync_slave_sql_with_io.inc b/mysql-test/include/sync_slave_sql_with_io.inc
new file mode 100644
index 00000000000..8048f7a177c
--- /dev/null
+++ b/mysql-test/include/sync_slave_sql_with_io.inc
@@ -0,0 +1,50 @@
+# ==== Purpose ====
+#
+# Sync the slave SQL thread with the IO thread.
+#
+# ==== Usage ====
+#
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/sync_slave_sql_with_io.inc
+#
+# Parameters:
+# $slave_timeout
+# By default, the synchronization timeouts after 300 seconds. If
+# $slave_timeout is set, the synchronization timeouts after
+# $slave_timeout seconds.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= sync_slave_sql_with_io.inc
+--source include/begin_include_file.inc
+
+
+let $_slave_timeout= $slave_timeout;
+if (!$_slave_timeout)
+{
+ let $_slave_timeout= 300;
+}
+
+--let $_master_log_file= query_get_value(SHOW SLAVE STATUS, Master_Log_File, 1)
+--let $_master_log_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1)
+
+if ($rpl_debug)
+{
+ --echo Master_Log_File='$_master_log_file' Read_Master_Log_Pos='$_master_log_pos' \$slave_timeout='$_slave_timeout'
+}
+
+--let $_sync_slave_sql_with_io_errno= `SELECT MASTER_POS_WAIT('$_master_log_file', $_master_log_pos, $_slave_timeout)`
+if (`SELECT IFNULL($_sync_slave_sql_with_io_errno, -1) < 0`)
+{
+ --echo #### Failed to sync slave SQL thread with slave IO thread. ####
+ --echo MASTER_POS_WAIT('$_master_log_file', $_master_log_pos, $_slave_timeout) returned $_sync_slave_sql_with_io_errno
+ --source include/show_rpl_debug_info.inc
+ --die Failed to sync slave SQL thread with slave IO thread.
+}
+
+
+--let $include_filename= sync_slave_sql_with_io.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_query_to_fail.inc b/mysql-test/include/wait_for_query_to_fail.inc
new file mode 100644
index 00000000000..471813026ee
--- /dev/null
+++ b/mysql-test/include/wait_for_query_to_fail.inc
@@ -0,0 +1,25 @@
+#
+# Run a query over and over until it fails or timeout occurs
+#
+
+
+let $counter= 100;
+
+disable_abort_on_error;
+disable_query_log;
+disable_result_log;
+eval $query;
+while (!$mysql_errno)
+{
+ eval $query;
+ sleep 0.1;
+ dec $counter;
+
+ if (!$counter)
+ {
+ --die "Waited too long for query to fail";
+ }
+}
+enable_abort_on_error;
+enable_query_log;
+enable_result_log;
diff --git a/mysql-test/include/wait_for_slave_io_error.inc b/mysql-test/include/wait_for_slave_io_error.inc
index ffdcf752873..bd3468eebb6 100644
--- a/mysql-test/include/wait_for_slave_io_error.inc
+++ b/mysql-test/include/wait_for_slave_io_error.inc
@@ -4,56 +4,86 @@
# error, or until a timeout is reached. Also waits until the IO
# thread has completely stopped.
#
-# ==== Usage ====
#
-# # Wait several errors.
-# let $slave_io_errno= 1, 2, 3;
-# source include/wait_for_slave_io_error.inc;
+# ==== Usage ====
#
-# # Print error message
-# let $slave_io_errno= 1;
-# let $show_slave_io_error= 1;
-# source include/wait_for_slave_io_error.inc;
+# --let $slave_io_errno= NUMBER [, NUMBER ...]
+# [--let $show_slave_io_error= 1]
+# [--let $slave_io_error_is_nonfatal= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/wait_for_slave_io_error.inc
#
# Parameters:
+# $slave_io_errno
+# The expected IO error numbers. This can be either a single
+# number, or a comma-separated list of numbers. Examples:
+# --let $slave_io_errno= 1040, 1053, 2002, 2003, 2006, 2013
+# --let $slave_io_errno= 1045
+# (After BUG#41956 has been fixed, this will be required to be
+# symbolic names instead of numbers.)
#
-# $slave_io_errno
-# The expected IO error numbers. This is required.
-# (After BUG#41956 has been fixed, this will be required to be a
-# symbolic name instead of a numbers.)
+# $show_slave_io_error
+# If set, will print the error to the query log.
#
-# $show_slave_io_error
-# If set, will print the error to the query log.
+# $slave_io_error_is_nonfatal
+# By default, we wait for the slave IO thread to stop completely
+# (i.e., until Slave_IO_State is empty). If this variable is set,
+# then we don't wait. This is useful if the error is non-fatal
+# (e.g., temporary connection error) and does not cause the slave
+# IO thread to stop.
#
-# $slave_timeout
-# See wait_for_slave_param.inc for description.
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
-# $master_connection
-# See wait_for_slave_param.inc for description.
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_io_error.inc [errno=$slave_io_errno]
+--source include/begin_include_file.inc
-if (!$slave_io_errno) {
- --die !!!ERROR IN TEST: you must set \$slave_io_errno before sourcing wait_for_slave_io_error.inc
-}
let $old_slave_param_comparison= $slave_param_comparison;
let $slave_param= Last_IO_Errno;
let $slave_param_comparison= !=;
let $slave_param_value= 0;
-let $slave_error_message= Failed while waiting for slave to produce an error in its sql thread;
source include/wait_for_slave_param.inc;
-let $slave_error_message= ;
let $slave_param_comparison= $old_slave_param_comparison;
-let $_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1);
-if (`SELECT $_error NOT IN ($slave_io_errno)`) {
- --echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) ****
+let $_wfsie_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1);
+
+if (!$slave_io_errno) {
+ --echo !!!ERROR IN TEST: you must set \$slave_io_errno before you source
+ --echo !!!wait_for_slave_sql_error.inc. The error we got this time was '$_wfsie_errno',
+ --echo !!!so you probably want to add the following line to your test case:
+ --echo !!! --let \$slave_io_errno= $_wfsie_errno
+ --die !!!ERROR IN TEST: you must set \$slave_io_errno before sourcing wait_for_slave_io_error.inc
+}
+
+if (`SELECT $_wfsie_errno NOT IN ($slave_io_errno)`) {
+ --echo **** Slave stopped with wrong error code: $_wfsie_errno (expected $slave_io_errno) ****
source include/show_rpl_debug_info.inc;
- --echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) ****
+ --echo **** Slave stopped with wrong error code: $_wfsie_errno (expected $slave_io_errno) ****
--die Slave stopped with wrong error code
}
if ($show_slave_io_error)
{
- let $error= query_get_value("SHOW SLAVE STATUS", Last_IO_Error, 1);
- echo Last_IO_Error = $error;
+ --let $_wait_for_slave_io_error_old_status_items= $status_items
+ --let $status_items= Last_IO_Error
+ --source include/show_slave_status.inc
+ --let $status_items= $_wait_for_slave_io_error_old_status_items
+}
+
+if (!$slave_io_error_is_nonfatal)
+{
+ --let $slave_param= Slave_IO_State
+ --let $slave_param_value=
+ --source include/wait_for_slave_param.inc
}
+--let $slave_io_error_is_nonfatal= 0
+
+
+--let $include_filename= wait_for_slave_io_error.inc [errno=$slave_io_errno]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_io_to_start.inc b/mysql-test/include/wait_for_slave_io_to_start.inc
index abdc8339290..ab2ccb45007 100644
--- a/mysql-test/include/wait_for_slave_io_to_start.inc
+++ b/mysql-test/include/wait_for_slave_io_to_start.inc
@@ -4,16 +4,31 @@
# connected to the master (i.e., until SHOW SLAVE STATUS returns Yes
# in the Slave_IO_Running field), or until a timeout is reached.
#
+#
# ==== Usage ====
#
-# source include/wait_for_slave_io_to_start.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_io_to_start.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_io_to_start.inc
+--source include/begin_include_file.inc
+
let $slave_param= Slave_IO_Running;
let $slave_param_value= Yes;
-let $slave_error_message= Failed while waiting for slave IO thread to start;
+--let $slave_error_param= Last_IO_Errno
source include/wait_for_slave_param.inc;
-let $slave_error_message= ;
+--let $slave_error_param=
+
+
+--let $include_filename= wait_for_slave_io_to_start.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_io_to_stop.inc b/mysql-test/include/wait_for_slave_io_to_stop.inc
index f61b0db1ed7..d25c2ac071d 100644
--- a/mysql-test/include/wait_for_slave_io_to_stop.inc
+++ b/mysql-test/include/wait_for_slave_io_to_stop.inc
@@ -1,24 +1,40 @@
# ==== Purpose ====
#
-# Waits until the IO thread of the current connection has stopped, or
-# until a timeout is reached.
+# Waits until the IO thread of the current connection has stopped
+# gracefully.
+#
+# Note: this script will fail if the IO thread stops with an error.
+# If you expect an error in the IO thread, use
+# include/wait_for_slave_io_error.inc instead.
+#
+# This script also fails if a timeout is reached (default 300
+# seconds).
+#
#
# ==== Usage ====
#
-# source include/wait_for_slave_io_to_stop.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_io_to_stop.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc.
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_io_to_stop.inc
+--source include/begin_include_file.inc
+
+
+--let $slave_param= Slave_IO_Running
+--let $slave_param_value= No
+--let $slave_error_param= Last_IO_Errno
+--source include/wait_for_slave_param.inc
+--let $slave_error_param=
+
-# if server has not used CHANGE MASTER to initiate slave, SHOW SLAVE
-# STATUS will return an empty set.
-let $_slave_io_running= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1);
-if (`SELECT '$_slave_io_running' != 'No such row'`)
-{
- let $slave_param= Slave_IO_Running;
- let $slave_param_value= No;
- let $slave_error_message= Failed while waiting for slave IO thread to stop;
- source include/wait_for_slave_param.inc;
- let $slave_error_message= ;
-}
+--let $include_filename= wait_for_slave_io_to_stop.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_param.inc b/mysql-test/include/wait_for_slave_param.inc
index 98cd426fa11..c9660b0679d 100644
--- a/mysql-test/include/wait_for_slave_param.inc
+++ b/mysql-test/include/wait_for_slave_param.inc
@@ -3,11 +3,16 @@
# Waits until SHOW SLAVE STATUS has returned a specified value, or
# until a timeout is reached.
#
+#
# ==== Usage ====
#
-# let $slave_param= Slave_SQL_Running;
-# let $slave_param_value= No;
-# source include/slave_wait_param.inc;
+# --let $slave_param= Slave_SQL_Running
+# --let $slave_param_value= No
+# [--let $slave_param_comparison= [ < | <= | >= | > | = | != ]]
+# [--let $slave_timeout= NUMBER]
+# [--let $slave_error_param= [Slave_SQL_Errno | Slave_IO_Errno]]
+# [--let $rpl_debug= 1]
+# --source include/slave_wait_param.inc
#
# Parameters:
#
@@ -21,33 +26,35 @@
# $slave_param_value. If you want to wait until $slave_param
# becomes *unequal* to $slave_param_value, set this parameter to the
# string '!=', like this:
-# let $slave_param_comparison= !=;
+# --let $slave_param_comparison= !=
#
# $slave_timeout
# The default timeout is 5 minutes. You can change the timeout by
-# setting $slave_timeout. The unit is tenths of seconds.
+# setting $slave_timeout. The unit is seconds.
#
-# $master_connection
-# If the timeout is reached, debug info is given by calling SHOW
-# SLAVE STATUS, SHOW PROCESSLIST, and SHOW BINLOG EVENTS. Then, a
-# 'connection master' is then issued, and more debug info is given
-# by calling SHOW MASTER STATUS, SHOW PROCESSLIST, and SHOW BINLOG
-# EVENTS. If $master_connection is set, the latter three commands
-# will be issued on $master_connection instead of on the host named
-# 'master'. See also show_rpl_debug_info.inc
+# $slave_error_param
+# If set, this script will check if the column of the output from
+# SHOW SLAVE STATUS named $slave_error_param is nonzero. If it is,
+# this script will faile immediately. Typically, this should be set
+# to Last_IO_Errno or Last_SQL_Errno.
#
-# $slave_error_message
-# If set, this is printed when a timeout occurs. This is primarily
-# intended to be used by other wait_for_slave_* macros, to indicate
-# what the purpose of the wait was. (A very similar error message is
-# given by default, but the wait_for_slave_* macros use this to give
-# an error message identical to that in previous versions, so that
-# errors are easier searchable in the pushbuild history.)
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_param.inc [$slave_param]
+--source include/begin_include_file.inc
+
+
+let $_slave_timeout= $slave_timeout;
+if (!$_slave_timeout)
+{
+ let $_slave_timeout= 300;
+}
-let $_slave_timeout_counter= $slave_timeout;
-if (!$_slave_timeout_counter)
+if (`SELECT '$slave_error_param' = ''`)
{
- let $_slave_timeout_counter= 3000;
+ --let $slave_error_param= 1
}
let $_slave_param_comparison= $slave_param_comparison;
@@ -56,27 +63,57 @@ if (!$_slave_param_comparison)
let $_slave_param_comparison= =;
}
-let $_show_slave_status_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1);
-while (`SELECT NOT('$_show_slave_status_value' $_slave_param_comparison '$slave_param_value') AND $_slave_timeout_counter > 0`)
+if ($rpl_debug)
{
- dec $_slave_timeout_counter;
- if ($_slave_timeout_counter)
- {
- sleep 0.1;
- let $_show_slave_status_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1);
- }
+ --echo Waiting until '$slave_param' $_slave_param_comparison '$slave_param_value' [timeout='$_slave_timeout', \$slave_error_param='$slave_error_param']
+}
+
+--let $_slave_check_configured= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1)
+
+if (`SELECT '$_slave_check_configured' = 'No such row'`)
+{
+ --echo **** ERROR: SHOW SLAVE STATUS returned empty result set. Slave not configured. ****
+ --source include/show_rpl_debug_info.inc
+ --die SHOW SLAVE STATUS returned empty result set. Slave not configured.
}
-# This has to be outside the loop until BUG#41913 has been fixed
-if (!$_slave_timeout_counter)
+# mysqltest doesn't provide any better way to multiply by 10
+--let $_wait_for_slave_param_zero= 0
+--let $_slave_timeout_counter= $_slave_timeout$zero
+--let $_slave_continue= 1
+while ($_slave_continue)
{
- --echo **** ERROR: timeout after $slave_timeout seconds while waiting for slave parameter $slave_param $_slave_param_comparison $slave_param_value ****
- if ($slave_error_message)
+ --let $_show_slave_status_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1)
+
+ # Check if an error condition is reached.
+ if (!$slave_error_param)
+ {
+ --let $_show_slave_status_error_value= query_get_value("SHOW SLAVE STATUS", $slave_error_param, 1)
+ if ($_show_slave_status_error_value)
+ {
+ --echo **** ERROR: $slave_error_param = '$_show_slave_status_error_value' while waiting for slave parameter $slave_param $_slave_param_comparison $slave_param_value ****
+ --source include/show_rpl_debug_info.inc
+ --die Error condition reached in include/wait_for_slave_param.inc
+ }
+ }
+
+ # Check if the termination condition is reached.
+ --let $_slave_continue= `SELECT NOT('$_show_slave_status_value' $_slave_param_comparison '$slave_param_value')`
+
+ # Decrease timer, and check if the timeout is reached.
+ if ($_slave_continue)
{
- --echo Message: $slave_error_message
+ --dec $_slave_timeout_counter
+ if (!$_slave_timeout_counter)
+ {
+ --echo **** ERROR: timeout after $_slave_timeout seconds while waiting for slave parameter $slave_param $_slave_param_comparison $slave_param_value ****
+ --source include/show_rpl_debug_info.inc
+ --die Timeout in include/wait_for_slave_param.inc
+ }
+ --sleep 0.1
}
- --echo Current connection is '$CURRENT_CONNECTION'
- echo Note: the following output may have changed since the failure was detected;
- source include/show_rpl_debug_info.inc;
- die;
}
+
+
+--let $include_filename= wait_for_slave_param.inc [$slave_param]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_sql_error.inc b/mysql-test/include/wait_for_slave_sql_error.inc
index 80836f908c6..80c532d6a20 100644
--- a/mysql-test/include/wait_for_slave_sql_error.inc
+++ b/mysql-test/include/wait_for_slave_sql_error.inc
@@ -6,43 +6,65 @@
#
# ==== Usage ====
#
-# source include/wait_for_slave_sql_error.inc;
+# --let $slave_sql_errno= NUMBER
+# [--let $show_slave_sql_error= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/wait_for_slave_sql_error.inc
#
# Parameters:
+# $slave_sql_errno
+# The expected SQL error number. This is required.
+# (After BUG#41956 has been fixed, this will be required to be a
+# symbolic name instead of a number.)
#
-# $slave_sql_errno
-# The expected SQL error number. This is required.
-# (After BUG#41956 has been fixed, this will be required to be a
-# symbolic name instead of a number.)
-#
-# $show_slave_sql_error
-# If set, will print the error to the query log.
+# $show_slave_sql_error
+# If set, will print the error to the query log.
#
-# $slave_timeout
-# See wait_for_slave_param.inc for description.
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
-# $master_connection
-# See wait_for_slave_param.inc for description.
+# $rpl_debug
+# See include/rpl_init.inc
-if (!$slave_sql_errno) {
- --die !!!ERROR IN TEST: you must set \$slave_sql_errno before sourcing wait_for_slave_sql_error.inc
-}
+--let $include_filename= wait_for_slave_sql_error.inc [errno=$slave_sql_errno]
+--source include/begin_include_file.inc
+
+
+# Note: here, we should not wait for Slave_SQL_Errno!=0.
+# Slave_SQL_Errno and Slave_SQL_Running are not set atomically.
+# Slave_SQL_Errno is set first, then Slave_SQL_Running. So we wait
+# until Slave_SQL_Running=No to be sure that both conditions hold.
let $slave_param= Slave_SQL_Running;
let $slave_param_value= No;
-let $slave_error_message= Failed while waiting for slave to stop the SQL thread (expecting error in the SQL thread);
source include/wait_for_slave_param.inc;
-let $_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
-if (`SELECT '$_error' != '$slave_sql_errno'`) {
- --echo **** Slave stopped with wrong error code: $_error (expected $slave_sql_errno) ****
+let $_wfsse_errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1);
+
+if (!$slave_sql_errno) {
+ --echo !!!ERROR IN TEST: you must set \$slave_sql_errno before you source
+ --echo !!!wait_for_slave_sql_error.inc. The error we got this time was '$_wfsse_errno',
+ --echo !!!so you probably want to add the following line to your test case:
+ --echo !!! --let \$slave_sql_errno= $_wfsse_errno
+ --die !!!ERROR IN TEST: you must set \$slave_sql_errno before sourcing wait_for_slave_sql_error.inc
+}
+
+if (`SELECT $_wfsse_errno NOT IN ($slave_sql_errno)`) {
+ --echo **** Slave stopped with wrong error code: $_wfsse_errno (expected $slave_sql_errno) ****
source include/show_rpl_debug_info.inc;
- --echo **** Slave stopped with wrong error code: $_error (expected $slave_sql_errno) ****
+ --echo **** Slave stopped with wrong error code: $_wfsse_errno (expected $slave_sql_errno) ****
--die Slave stopped with wrong error code
}
if ($show_slave_sql_error)
{
- let $error= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
- echo Last_SQL_Error = $error;
+ --let $_wait_for_slave_sql_error_old_status_items= $status_items
+ --let $status_items= Last_SQL_Error
+ --source include/show_slave_status.inc
+ --let $status_items= $_wait_for_slave_sql_error_old_status_items
}
+
+
+--let $include_filename= wait_for_slave_sql_error.inc [errno=$slave_sql_errno]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_sql_error_and_skip.inc b/mysql-test/include/wait_for_slave_sql_error_and_skip.inc
index 11c02c0b490..9246c1839af 100644
--- a/mysql-test/include/wait_for_slave_sql_error_and_skip.inc
+++ b/mysql-test/include/wait_for_slave_sql_error_and_skip.inc
@@ -5,38 +5,58 @@
#
# ==== Usage ====
#
-# let $slave_sql_error= <ERRNO>;
-# source include/wait_for_slave_sql_error_and_skip.inc;
+# --let $slave_sql_error= NUMBER
+# [--let $show_sql_error= 1]
+# [--let $slave_skip_counter= 1]
+# [--let $not_switch_connection= 1]
+# [--let $rpl_debug= 1]
+# [--let $slave_timeout= NUMBER]
+# --source include/wait_for_slave_sql_error_and_skip.inc
#
# Parameters:
#
-# $slave_sql_errno
-# The error number to wait for. This is required. (See
-# wait_for_slave_sql_error.inc)
+# $slave_sql_errno
+# The error number to wait for. This is required. (See
+# wait_for_slave_sql_error.inc)
#
-# $show_sql_error
-# If set, will print the error to the query log.
-#
-# $slave_timeout
-# See wait_for_slave_param.inc for description.
+# $show_sql_error
+# If set, will print the error to the query log.
#
-# $master_connection
-# See wait_for_slave_param.inc for description.
+# $slave_skip_counter
+# If set, skip this number of events. If not set, skip one event.
#
-# $slave_skip_counter
-# If set, skip this number of events. If not set, skip one event.
+# $not_switch_connection
+# By default, this script executes on the connection 'slave'. If
+# $not_switch_connection is set, this script executes on the current
+# connection. In any case, the original connection is restored.
#
-# $not_switch_connection If set, don't switch to slave and don't switch back
-# master.
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_sql_error_and_skip.inc [errno=$slave_sql_errno]
+--source include/begin_include_file.inc
+
+
+if (!$rpl_debug)
+{
+ --disable_query_log
+}
+
-echo --source include/wait_for_slave_sql_error_and_skip.inc;
if (!$not_switch_connection)
{
- connection slave;
+ --let $rpl_connection_name= slave
+ --source include/rpl_connection.inc
}
+
+
source include/wait_for_slave_sql_error.inc;
+
# skip the erroneous statement
if ($slave_skip_counter) {
eval SET GLOBAL SQL_SLAVE_SKIP_COUNTER= $slave_skip_counter;
@@ -45,7 +65,7 @@ if (!$slave_skip_counter) {
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
}
source include/start_slave.inc;
-if (!$not_switch_connection)
-{
- connection master;
-}
+
+
+--let $include_filename= wait_for_slave_sql_error_and_skip.inc [errno=$slave_sql_errno]
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_sql_to_start.inc b/mysql-test/include/wait_for_slave_sql_to_start.inc
index 48744f5dd13..4aea9fba569 100644
--- a/mysql-test/include/wait_for_slave_sql_to_start.inc
+++ b/mysql-test/include/wait_for_slave_sql_to_start.inc
@@ -5,13 +5,33 @@
#
# ==== Usage ====
#
-# source include/wait_for_slave_sql_to_start.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_sql_to_start.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_sql_to_start.inc
+--source include/begin_include_file.inc
+
let $slave_param= Slave_SQL_Running;
let $slave_param_value= Yes;
-let $slave_error_message= Failed while waiting for slave SQL to start;
+
+# Unfortunately, the slave sql thread sets Slave_SQL_Running=Yes
+# *before* it clears Last_SQL_Errno. So we have to allow errors in
+# the SQL thread here.
+
+#--let $slave_error_param= Last_SQL_Errno
source include/wait_for_slave_param.inc;
+#--let $slave_error_param=
+
+
+--let $include_filename= wait_for_slave_sql_to_start.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_sql_to_stop.inc b/mysql-test/include/wait_for_slave_sql_to_stop.inc
index 6992613b646..492b3237be5 100644
--- a/mysql-test/include/wait_for_slave_sql_to_stop.inc
+++ b/mysql-test/include/wait_for_slave_sql_to_stop.inc
@@ -1,24 +1,40 @@
# ==== Purpose ====
#
-# Waits the SQL thread of the current connection has stopped, or until
-# a timeout is reached.
+# Waits until the SQL thread of the current connection has stopped
+# gracefully.
+#
+# Note: this script will fail if the SQL thread stops with an error.
+# If you expect an error in the SQL thread, use
+# include/wait_for_slave_io_error.inc instead.
+#
+# This script also fails if a timeout is reached (default 300
+# seconds).
+#
#
# ==== Usage ====
#
-# source include/wait_for_slave_sql_to_stop.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_sql_to_stop.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_sql_to_stop.inc
+--source include/begin_include_file.inc
+
+
+--let $slave_param= Slave_SQL_Running
+--let $slave_param_value= No
+--let $slave_error_param= Last_SQL_Errno
+--source include/wait_for_slave_param.inc
+--let $slave_error_param=
+
-# if server has not used CHANGE MASTER to initiate slave, SHOW SLAVE
-# STATUS will return an empty set.
-let $_slave_io_running= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1);
-if (`SELECT '$_slave_io_running' != 'No such row'`)
-{
- let $slave_param= Slave_SQL_Running;
- let $slave_param_value= No;
- let $slave_error_message= Failed while waiting for slave SQL thread to stop;
- source include/wait_for_slave_param.inc;
- let $slave_error_message= ;
-}
+--let $include_filename= wait_for_slave_sql_to_stop.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_to_start.inc b/mysql-test/include/wait_for_slave_to_start.inc
index 567950cc6d7..a916e2ea615 100644
--- a/mysql-test/include/wait_for_slave_to_start.inc
+++ b/mysql-test/include/wait_for_slave_to_start.inc
@@ -3,22 +3,28 @@
# Waits until both the IO and SQL threads of the current connection
# have started, or until a timeout is reached.
#
+#
# ==== Usage ====
#
-# source include/wait_for_slave_to_start.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_to_start.inc
+#
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_to_start.inc
+--source include/begin_include_file.inc
-let $slave_error_message= Failed while waiting for slave to start;
-let $slave_param= Slave_IO_Running;
-let $slave_param_value= Yes;
-source include/wait_for_slave_param.inc;
+--source include/wait_for_slave_io_to_start.inc
+--source include/wait_for_slave_sql_to_start.inc
-let $slave_param= Slave_SQL_Running;
-let $slave_param_value= Yes;
-source include/wait_for_slave_param.inc;
-let $slave_error_message= ;
+--let $include_filename= wait_for_slave_to_start.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/wait_for_slave_to_stop.inc b/mysql-test/include/wait_for_slave_to_stop.inc
index 56d0e7b0c91..1bfd16067c5 100644
--- a/mysql-test/include/wait_for_slave_to_stop.inc
+++ b/mysql-test/include/wait_for_slave_to_stop.inc
@@ -1,30 +1,38 @@
# ==== Purpose ====
#
# Waits until both the IO and SQL threads of the current connection
-# have stopped, or until a timeout is reached.
+# have stopped gracefully.
+#
+# Note: this script will fail if one of the threads stops with an
+# error. If you expect an error in one of the threads, use
+# include/wait_for_slave_io_error.inc or
+# include/wait_for_slave_sql_error.inc instead.
+#
+# This script also fails if a timeout is reached (default 300
+# seconds).
+#
#
# ==== Usage ====
#
-# source include/wait_for_slave_to_stop.inc;
+# [--let $slave_timeout= NUMBER]
+# [--let $rpl_debug= 1]
+# --source include/wait_for_slave_to_stop.inc
#
-# Parameters to this macro are $slave_timeout and
-# $master_connection. See wait_for_slave_param.inc for
-# descriptions.
+# Parameters:
+# $slave_timeout
+# See include/wait_for_slave_param.inc
+#
+# $rpl_debug
+# See include/rpl_init.inc
+
+
+--let $include_filename= wait_for_slave_to_stop.inc
+--source include/begin_include_file.inc
-# if server has not used CHANGE MASTER to initiate slave, SHOW SLAVE
-# STATUS will return an empty set.
-let $_slave_io_running= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1);
-if (`SELECT '$_slave_io_running' != 'No such row'`)
-{
- let $slave_error_message= Failed while waiting for slave to stop;
- let $slave_param= Slave_IO_Running;
- let $slave_param_value= No;
- source include/wait_for_slave_param.inc;
+--source include/wait_for_slave_sql_to_stop.inc
+--source include/wait_for_slave_io_to_stop.inc
- let $slave_param= Slave_SQL_Running;
- let $slave_param_value= No;
- source include/wait_for_slave_param.inc;
- let $slave_error_message= ;
-}
+--let $include_filename= wait_for_slave_to_stop.inc
+--source include/end_include_file.inc
diff --git a/mysql-test/include/write_var_to_file.inc b/mysql-test/include/write_var_to_file.inc
new file mode 100644
index 00000000000..e70667634a3
--- /dev/null
+++ b/mysql-test/include/write_var_to_file.inc
@@ -0,0 +1,57 @@
+# ==== Purpose ====
+#
+# Write the contents of $write_var to file $write_to_file.
+#
+#
+# ==== Usage ====
+#
+# --let $write_var = <value>
+# --let $write_to_file = [<file>|GENERATE]
+# --source include/write_var_to_file.inc
+#
+# $write_var is evaluated in sql 'string' context, so escapes like \n
+# are interpolated.
+#
+# $write_to_file can be either a filename, or the special string
+# GENERATE. If it is GENERATE, a unique filename is generated (based
+# on UUID()). The filename is saved in $write_to_file so that it can
+# be retrieved later.
+#
+#
+# ==== Implementation ====
+#
+# We can't use mysqltest's write_file because it does not evaluate
+# variables. We can't use '--exec echo $write_var > $write_file'
+# because it will use \n\r line terminator under windows. So the only
+# working way is mysql's SELECT INTO DUMPFILE, which is subject to
+# @@secure_file_priv. That makes this more complex than you might
+# expect.
+
+if (`SELECT '$write_to_file' = ''`)
+{
+ --die You must set the mysqltest variable \$write_to_file before you source include/write_var_to_file.inc
+}
+
+if (`SELECT '$write_to_file' = 'GENERATE'`)
+{
+ --let $_wvtf_suffix= `SELECT UUID()`
+ --let $write_to_file= $MYSQLTEST_VARDIR/tmp/_var_file_$_wvtf_suffix.inc
+}
+
+--error 0,1
+--remove_file $write_to_file
+
+if (`SELECT LENGTH(@@secure_file_priv) > 0`)
+{
+ --let $_wvtf_secure_file_priv= `SELECT @@secure_file_priv`
+ --let $_wvtf_suffix= `SELECT UUID()`
+ --let $_wvtf_tmp_file= $_wvtf_secure_file_priv/_wvtf_$_wvtf_suffix
+
+ --eval SELECT '$write_var' INTO DUMPFILE '$_wvtf_tmp_file'
+ --copy_file $_wvtf_tmp_file $write_to_file
+ --remove_file $_wvtf_tmp_file
+}
+if (`SELECT LENGTH(@@secure_file_priv) = 0`)
+{
+ --eval SELECT '$write_var' INTO DUMPFILE '$write_to_file'
+}
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 6e8f12ceec1..a32c647e3a4 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -3360,13 +3360,14 @@ sub find_analyze_request
# The test can leave a file in var/tmp/ to signal
# that all servers should be restarted
-sub restart_forced_by_test
+sub restart_forced_by_test($)
{
+ my $file = shift;
my $restart = 0;
foreach my $mysqld ( mysqlds() )
{
my $datadir = $mysqld->value('datadir');
- my $force_restart_file = "$datadir/mtr/force_restart";
+ my $force_restart_file = "$datadir/mtr/$file";
if ( -f $force_restart_file )
{
mtr_verbose("Restart of servers forced by test");
@@ -3606,7 +3607,7 @@ sub run_testcase ($) {
if ( $res == 0 )
{
my $check_res;
- if ( restart_forced_by_test() )
+ if ( restart_forced_by_test('force_restart') )
{
stop_all_servers($opt_shutdown_timeout);
}
@@ -3634,8 +3635,11 @@ sub run_testcase ($) {
find_testcase_skipped_reason($tinfo);
mtr_report_test_skipped($tinfo);
# Restart if skipped due to missing perl, it may have had side effects
- stop_all_servers($opt_shutdown_timeout)
- if ($tinfo->{'comment'} =~ /^perl not found/);
+ if ( restart_forced_by_test('force_restart_if_skipped') ||
+ $tinfo->{'comment'} =~ /^perl not found/ )
+ {
+ stop_all_servers($opt_shutdown_timeout);
+ }
}
elsif ( $res == 65 )
{
diff --git a/mysql-test/r/init_file.result b/mysql-test/r/init_file.result
index 43ed908ad01..6394014f3e5 100644
--- a/mysql-test/r/init_file.result
+++ b/mysql-test/r/init_file.result
@@ -21,4 +21,3 @@ y
11
13
drop table t1, t2;
-call mtr.force_restart();
diff --git a/mysql-test/r/mysqldump_restore.result b/mysql-test/r/mysqldump_restore.result
index 16698251913..9eac8b253de 100644
--- a/mysql-test/r/mysqldump_restore.result
+++ b/mysql-test/r/mysqldump_restore.result
@@ -20,7 +20,7 @@ ALTER TABLE test.t1 RENAME to test.t1_orig;
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
-Comparing tables test.t1 and test.t1_orig
+include/diff_tables.inc [test.t1, test.t1_orig]
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
@@ -45,7 +45,7 @@ ALTER TABLE test.t1 RENAME to test.t1_orig;
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
-Comparing tables test.t1 and test.t1_orig
+include/diff_tables.inc [test.t1, test.t1_orig]
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
@@ -63,7 +63,7 @@ ALTER TABLE test.t1 RENAME to test.t1_orig;
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
-Comparing tables test.t1 and test.t1_orig
+include/diff_tables.inc [test.t1, test.t1_orig]
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
@@ -82,7 +82,7 @@ ALTER TABLE test.t2 RENAME to test.t2_orig;
# Compare original and recreated tables
# Recreated table: test.t2
# Original table: test.t2_orig
-Comparing tables test.t2 and test.t2_orig
+include/diff_tables.inc [test.t2, test.t2_orig]
# Cleanup
DROP TABLE test.t2, test.t2_orig;
DROP TABLE t1;
@@ -100,7 +100,7 @@ ALTER TABLE test.t1 RENAME to test.t1_orig;
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
-Comparing tables test.t1 and test.t1_orig
+include/diff_tables.inc [test.t1, test.t1_orig]
# Cleanup
DROP TABLE test.t1, test.t1_orig;
# End tests
diff --git a/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result b/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
deleted file mode 100644
index 8226469fcf7..00000000000
--- a/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
+++ /dev/null
@@ -1,42 +0,0 @@
-SET @old_relay_log_purge= @@global.relay_log_purge;
-change master to
-MASTER_HOST='dummy.localdomain',
-RELAY_LOG_FILE='slave-relay-bin.000001',
-RELAY_LOG_POS=4;
-start slave sql_thread;
-select MASTER_POS_WAIT('master-bin.000001', 3776);
-# Result on slave
-SELECT * FROM t1;
-id
-5
-6
-7
-8
-9
-10
-11
-SELECT * FROM t2;
-id
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-DROP TABLE IF EXISTS t1, t2;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP FUNCTION IF EXISTS f1;
-DROP TRIGGER IF EXISTS tr1;
-stop slave sql_thread;
-reset slave;
-SET @@global.relay_log_purge= @old_relay_log_purge;
diff --git a/mysql-test/suite/rpl/r/rpl_drop_if_exists.result b/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
index e2d4c727c98..e2d4c727c98 100644
--- a/mysql-test/suite/rpl/r/rpl_drop_if_exists.result
+++ b/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
diff --git a/mysql-test/suite/binlog/r/binlog_old_versions.result b/mysql-test/suite/binlog/r/binlog_old_versions.result
index 77289252b4c..a4850b835c8 100644
--- a/mysql-test/suite/binlog/r/binlog_old_versions.result
+++ b/mysql-test/suite/binlog/r/binlog_old_versions.result
@@ -1,4 +1,3 @@
-DROP TABLE IF EXISTS t1, t2, t3;
==== Read modern binlog (version 5.1.23) ====
SELECT * FROM t1 ORDER BY a;
a b
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_query_filter_rules.result b/mysql-test/suite/binlog/r/binlog_query_filter_rules.result
index 520d500ed7c..520d500ed7c 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_query_filter_rules.result
+++ b/mysql-test/suite/binlog/r/binlog_query_filter_rules.result
diff --git a/mysql-test/suite/rpl/r/rpl_server_id.result b/mysql-test/suite/binlog/r/binlog_server_id.result
index 1e74394c122..1e74394c122 100644
--- a/mysql-test/suite/rpl/r/rpl_server_id.result
+++ b/mysql-test/suite/binlog/r/binlog_server_id.result
diff --git a/mysql-test/suite/rpl/r/rpl_sf.result b/mysql-test/suite/binlog/r/binlog_sf.result
index 085ba1ebb8a..085ba1ebb8a 100644
--- a/mysql-test/suite/rpl/r/rpl_sf.result
+++ b/mysql-test/suite/binlog/r/binlog_sf.result
diff --git a/mysql-test/suite/binlog/r/binlog_sql_mode.result b/mysql-test/suite/binlog/r/binlog_sql_mode.result
index e306040502d..4477c94a95e 100644
--- a/mysql-test/suite/binlog/r/binlog_sql_mode.result
+++ b/mysql-test/suite/binlog/r/binlog_sql_mode.result
@@ -1,9 +1,3 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
SET @old_sql_mode= @@global.sql_mode;
SET @old_binlog_format=@@session.binlog_format;
SET SESSION sql_mode=8;
@@ -27,7 +21,7 @@ DO
BEGIN
UPDATE t1 SET id = id +1;
END;|
-Chceck Result
+Check Result
select
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
is not null;
diff --git a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt b/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt
deleted file mode 100644
index 74e71a8e558..00000000000
--- a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---replicate-same-server-id --relay-log=slave-relay-bin --skip-slave-start
diff --git a/mysql-test/suite/rpl/t/rpl_drop_if_exists.test b/mysql-test/suite/binlog/t/binlog_drop_if_exists.test
index 6b2b37ae791..6b2b37ae791 100644
--- a/mysql-test/suite/rpl/t/rpl_drop_if_exists.test
+++ b/mysql-test/suite/binlog/t/binlog_drop_if_exists.test
diff --git a/mysql-test/suite/binlog/t/binlog_old_versions.test b/mysql-test/suite/binlog/t/binlog_old_versions.test
index 0ccea406a82..b294adbc69d 100644
--- a/mysql-test/suite/binlog/t/binlog_old_versions.test
+++ b/mysql-test/suite/binlog/t/binlog_old_versions.test
@@ -24,9 +24,6 @@
source include/not_embedded.inc;
---disable_warnings
-DROP TABLE IF EXISTS t1, t2, t3;
-
--echo ==== Read modern binlog (version 5.1.23) ====
@@ -161,3 +158,4 @@ DROP TABLE t1, t2, t3;
#SELECT * FROM t1 ORDER BY a;
#SELECT * FROM t2 ORDER BY a;
#SELECT COUNT(*) FROM t3;
+#--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules-master.opt b/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt
index 33632bf98e8..33632bf98e8 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules-master.opt
+++ b/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules.test b/mysql-test/suite/binlog/t/binlog_query_filter_rules.test
index d56a32ce2bd..d56a32ce2bd 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_query_filter_rules.test
+++ b/mysql-test/suite/binlog/t/binlog_query_filter_rules.test
diff --git a/mysql-test/suite/rpl/t/rpl_server_id.test b/mysql-test/suite/binlog/t/binlog_server_id.test
index 6e98ec6ee6d..6e98ec6ee6d 100644
--- a/mysql-test/suite/rpl/t/rpl_server_id.test
+++ b/mysql-test/suite/binlog/t/binlog_server_id.test
diff --git a/mysql-test/suite/rpl/t/rpl_sf.test b/mysql-test/suite/binlog/t/binlog_sf.test
index 4d12f3839a2..05b31afcb58 100644
--- a/mysql-test/suite/rpl/t/rpl_sf.test
+++ b/mysql-test/suite/binlog/t/binlog_sf.test
@@ -1,5 +1,9 @@
-- source include/have_log_bin.inc
+# We change binlog format inside the test, so no need to re-run with
+# more than one binlog_format.
+-- source include/have_binlog_format_statement.inc
+
# Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
# BUG#41166 stored function requires "deterministic" if binlog_format is "statement"
diff --git a/mysql-test/suite/binlog/t/binlog_sql_mode.test b/mysql-test/suite/binlog/t/binlog_sql_mode.test
index 1777f8cb561..ab4f6450543 100644
--- a/mysql-test/suite/binlog/t/binlog_sql_mode.test
+++ b/mysql-test/suite/binlog/t/binlog_sql_mode.test
@@ -8,7 +8,6 @@
# Scan binlog file to check if the sql_mode is still set to 0 before generating binlog event
#
--- source include/master-slave.inc
-- source include/have_log_bin.inc
# BUG#39526 sql_mode not retained in binary log for CREATE PROCEDURE
@@ -50,10 +49,10 @@ CREATE EVENT testEvent ON SCHEDULE
END;|
DELIMITER ;|
---echo Chceck Result
+--echo Check Result
let $MYSQLD_DATADIR= `select @@datadir`;
---exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog
+--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval select
(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
diff --git a/mysql-test/suite/bugs/t/rpl_bug12691.test b/mysql-test/suite/bugs/t/rpl_bug12691.test
index 28d7f16935e..038f3e57b75 100644
--- a/mysql-test/suite/bugs/t/rpl_bug12691.test
+++ b/mysql-test/suite/bugs/t/rpl_bug12691.test
@@ -1,6 +1,4 @@
# Bug#12691: Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER
-# Date: 01/31/2008
-# Added: Serge Kozlov <skozlov@mysql.com>
--source include/master-slave.inc
--connection master
@@ -47,5 +45,5 @@ SELECT COUNT(*) FROM t1;
--echo
--echo **** On Master ****
DROP TABLE t1;
---sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug23533.test b/mysql-test/suite/bugs/t/rpl_bug23533.test
index 397f1102f0e..337dddcef3d 100644
--- a/mysql-test/suite/bugs/t/rpl_bug23533.test
+++ b/mysql-test/suite/bugs/t/rpl_bug23533.test
@@ -1,7 +1,4 @@
#############################################################
-# Author: Serge Kozlov <skozlov@mysql.com>
-# Date: 02/26/2008
-# Purpose: testing bug report
# Bug#23533: CREATE SELECT max_binlog_cache_size test
# case needed
#############################################################
@@ -10,11 +7,6 @@
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
-
---disable_warnings
-DROP TABLE IF EXISTS t1,t2;
---enable_warnings
-
SET AUTOCOMMIT=0;
SET GLOBAL max_binlog_cache_size=4096;
SHOW VARIABLES LIKE 'max_binlog_cache_size';
@@ -41,3 +33,4 @@ SHOW TABLES LIKE 't%';
# 5.1 End of Test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug31582.test b/mysql-test/suite/bugs/t/rpl_bug31582.test
index 7ba15eec8ce..6bff8ef4172 100644
--- a/mysql-test/suite/bugs/t/rpl_bug31582.test
+++ b/mysql-test/suite/bugs/t/rpl_bug31582.test
@@ -21,5 +21,5 @@ SELECT * FROM t1 ORDER BY a;
connection master;
DROP TABLE t1;
-sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug31583.test b/mysql-test/suite/bugs/t/rpl_bug31583.test
index 657e4984b77..ee5b7698016 100644
--- a/mysql-test/suite/bugs/t/rpl_bug31583.test
+++ b/mysql-test/suite/bugs/t/rpl_bug31583.test
@@ -21,5 +21,5 @@ SELECT * FROM t1 ORDER BY a;
connection master;
DROP TABLE t1;
-sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug33029.test b/mysql-test/suite/bugs/t/rpl_bug33029.test
index 494cef42ce0..f5aad4de8df 100644
--- a/mysql-test/suite/bugs/t/rpl_bug33029.test
+++ b/mysql-test/suite/bugs/t/rpl_bug33029.test
@@ -23,3 +23,4 @@ insert into `t1` values ();
sync_slave_with_master;
select * from t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug36391.test b/mysql-test/suite/bugs/t/rpl_bug36391.test
index 8bca9a46c5a..3961082273d 100644
--- a/mysql-test/suite/bugs/t/rpl_bug36391.test
+++ b/mysql-test/suite/bugs/t/rpl_bug36391.test
@@ -15,8 +15,6 @@
--source include/master-slave.inc
-drop table if exists t1;
-
create table t1(id int);
show tables;
@@ -28,3 +26,4 @@ flush logs;
--exec $MYSQL_BINLOG $MYSQL_TEST_DIR/var/log/master-bin.000001 | $MYSQL test
drop table t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug37426.test b/mysql-test/suite/bugs/t/rpl_bug37426.test
index d2bad0fa0c1..4c7729ab837 100644
--- a/mysql-test/suite/bugs/t/rpl_bug37426.test
+++ b/mysql-test/suite/bugs/t/rpl_bug37426.test
@@ -1,6 +1,4 @@
#############################################################
-# Author: Mats Kindahl <mats@mysql.com>
-# Date: 2008-06-18
# Purpose: Test for BUG#37426
# RBR breaks for CHAR() UTF8 fields > 85 chars
#############################################################
@@ -20,3 +18,4 @@ SELECT * FROM char128_utf8;
sync_slave_with_master;
SELECT * FROM char128_utf8;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/bugs/t/rpl_bug38205.test b/mysql-test/suite/bugs/t/rpl_bug38205.test
index 52b36636e79..550746719f4 100644
--- a/mysql-test/suite/bugs/t/rpl_bug38205.test
+++ b/mysql-test/suite/bugs/t/rpl_bug38205.test
@@ -163,4 +163,4 @@ start slave sql_thread;
connection master;
drop table t1i, t2m;
-sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/manual/t/rpl_replication_delay.test b/mysql-test/suite/manual/t/rpl_replication_delay.test
index fc1db9bfe18..f2b2da6f53c 100644
--- a/mysql-test/suite/manual/t/rpl_replication_delay.test
+++ b/mysql-test/suite/manual/t/rpl_replication_delay.test
@@ -7,9 +7,8 @@
source include/master-slave.inc;
-connection master;
-#connection slave;
-sync_slave_with_master;
+connection slave;
+
--echo # Second_behind reports 0
let $status_items= Seconds_Behind_Master;
source include/show_slave_status.inc;
@@ -61,9 +60,4 @@ unlock tables;
connection master;
drop table t1;
-#connection slave;
-sync_slave_with_master;
-
-
-# End of tests
-
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test b/mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test
index e08b1b6f701..5d6c915307a 100644
--- a/mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test
+++ b/mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test
@@ -1,6 +1,4 @@
###############################################
-# Author: JBM #
-# Date: 2006-03-07 #
# Purpose: To test advance DD and replication #
###############################################
@@ -11,11 +9,6 @@
--source include/not_embedded.inc
--source include/ndb_master-slave.inc
-#### Test start cleanup section #####
---disable_warnings
-DROP TABLE IF EXISTS t1, t2, t3;
---enable_warnings
-
######################################################
# Requirment: Cluster DD and replication must be able#
# to handle ALTER tables and indexes and must rpl #
@@ -408,3 +401,4 @@ remove_file $MYSQLTEST_VARDIR/tmp/RPL_DD_ADV_M.sql;
remove_file $MYSQLTEST_VARDIR/tmp/RPL_DD_ADV_S.sql;
# End 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test b/mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test
index d78eda7eef1..f5625f841b0 100644
--- a/mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test
+++ b/mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test
@@ -12,3 +12,5 @@ set binlog_format=row;
set binlog_format=mixed;
-- source extra/rpl_tests/rpl_extraMaster_Col.test
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test b/mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test
index b730bcc08e0..87bd1aecd30 100644
--- a/mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test
+++ b/mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test
@@ -1,6 +1,4 @@
#############################################
-#Authors: TU and Jeb
-#Date: 2007/04
#Purpose: Generic replication to cluster
# and ensuring that the ndb_apply_status
# table is updated.
@@ -34,3 +32,4 @@ let $off_set = 9;
let $rpl_format = 'MIX';
--source extra/rpl_tests/rpl_ndb_apply_status.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/parts/r/rpl_partition.result b/mysql-test/suite/parts/r/rpl_partition.result
index 9c5ac34b1b0..00247f218e4 100644
--- a/mysql-test/suite/parts/r/rpl_partition.result
+++ b/mysql-test/suite/parts/r/rpl_partition.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set @old_global_binlog_format= @@global.binlog_format;
set @old_session_binlog_format= @@session.binlog_format;
SET GLOBAL binlog_format = 'ROW';
@@ -11,10 +7,6 @@ SET SESSION binlog_format = 'ROW';
select @@global.binlog_format, @@session.binlog_format;
@@global.binlog_format ROW
@@session.binlog_format ROW
-DROP TABLE IF EXISTS t1, t2, t3;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP PROCEDURE IF EXISTS p3;
CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
fkid MEDIUMINT, filler VARCHAR(255),
@@ -138,7 +130,7 @@ SUBPARTITIONS 2
PARTITION pa9 VALUES LESS THAN (90) ENGINE = InnoDB,
PARTITION pa10 VALUES LESS THAN (100) ENGINE = InnoDB,
PARTITION pa11 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT count(*) "Slave norm" FROM t1;
Slave norm 500
SELECT count(*) "Slave bykey" FROM t2;
@@ -148,6 +140,7 @@ Slave byrange 500
set @@global.binlog_format= @old_global_binlog_format;
set @@session.binlog_format= @old_session_binlog_format;
DROP TABLE t1, t2, t3;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP PROCEDURE IF EXISTS p3;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/parts/t/rpl_partition.test b/mysql-test/suite/parts/t/rpl_partition.test
index 15cd85463b1..32a3d8ee346 100644
--- a/mysql-test/suite/parts/t/rpl_partition.test
+++ b/mysql-test/suite/parts/t/rpl_partition.test
@@ -12,13 +12,6 @@ SET GLOBAL binlog_format = 'ROW';
SET SESSION binlog_format = 'ROW';
select @@global.binlog_format, @@session.binlog_format;
---disable_warnings
-DROP TABLE IF EXISTS t1, t2, t3;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP PROCEDURE IF EXISTS p3;
---enable_warnings
-
eval CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
fkid MEDIUMINT, filler VARCHAR(255),
@@ -140,7 +133,6 @@ SELECT count(*) as "Master bykey" FROM t2;
CALL p3();
SELECT count(*) as "Master byrange" FROM t3;
-#--source include/master-slave-end.inc
--sync_slave_with_master
connection slave;
show create table t3;
@@ -153,11 +145,9 @@ connection master;
set @@global.binlog_format= @old_global_binlog_format;
set @@session.binlog_format= @old_session_binlog_format;
DROP TABLE t1, t2, t3;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP PROCEDURE IF EXISTS p3;
-save_master_pos;
-connection slave;
-sync_with_master;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
# End of 5.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/include/rpl_mixed_ddl.inc b/mysql-test/suite/rpl/include/rpl_mixed_ddl.inc
index 79825016448..89db1c3545d 100644
--- a/mysql-test/suite/rpl/include/rpl_mixed_ddl.inc
+++ b/mysql-test/suite/rpl/include/rpl_mixed_ddl.inc
@@ -1,6 +1,4 @@
#########################################
-# Author: Serge Kozlov skozlov@mysql.com
-# Date: 07/10/2006
# Purpose: testing the replication in mixed mode
# Requirements: define binlog format for mysqld as in example below:
# ./mysql-test-run.pl --mysqld=--binlog-format=mixed
@@ -82,3 +80,4 @@ sync_slave_with_master;
# the files your self to see what is not matching
--diff_files $MYSQLTEST_VARDIR/tmp/rpl_switch_stm_row_mixed_master.sql $MYSQLTEST_VARDIR/tmp/rpl_switch_stm_row_mixed_slave.sql
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/include/rpl_mixed_dml.inc b/mysql-test/suite/rpl/include/rpl_mixed_dml.inc
index d953397c0cb..dc245b8d38c 100644
--- a/mysql-test/suite/rpl/include/rpl_mixed_dml.inc
+++ b/mysql-test/suite/rpl/include/rpl_mixed_dml.inc
@@ -1,6 +1,4 @@
#########################################
-# Author: Serge Kozlov skozlov@mysql.com
-# Date: 07/10/2006
# Purpose: testing the replication in mixed mode
# Requirements: define binlog format for mysqld as in example below:
# ./mysql-test-run.pl --mysqld=--binlog-format=mixed
@@ -342,3 +340,4 @@ sync_slave_with_master;
# the files your self to see what is not matching
--diff_files $MYSQLTEST_VARDIR/tmp/rpl_switch_stm_row_mixed_master.sql $MYSQLTEST_VARDIR/tmp/rpl_switch_stm_row_mixed_slave.sql
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl000011.result b/mysql-test/suite/rpl/r/rpl000011.result
deleted file mode 100644
index dd0fa2fbe74..00000000000
--- a/mysql-test/suite/rpl/r/rpl000011.result
+++ /dev/null
@@ -1,16 +0,0 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-create table t1 (n int);
-insert into t1 values(1);
-stop slave;
-start slave;
-insert into t1 values(2);
-select * from t1;
-n
-1
-2
-drop table t1;
diff --git a/mysql-test/suite/rpl/r/rpl000010.result b/mysql-test/suite/rpl/r/rpl_000010.result
index 65191ea411f..4bb87a765cd 100644
--- a/mysql-test/suite/rpl/r/rpl000010.result
+++ b/mysql-test/suite/rpl/r/rpl_000010.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (n int not null auto_increment primary key);
insert into t1 values(NULL);
insert into t1 values(2);
@@ -12,3 +8,4 @@ n
1
2
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_000011.result b/mysql-test/suite/rpl/r/rpl_000011.result
new file mode 100644
index 00000000000..9160d1952c2
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_000011.result
@@ -0,0 +1,13 @@
+include/master-slave.inc
+[connection master]
+create table t1 (n int);
+insert into t1 values(1);
+stop slave;
+start slave;
+insert into t1 values(2);
+select * from t1;
+n
+1
+2
+drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl000013.result b/mysql-test/suite/rpl/r/rpl_000013.result
index 37838bb88e0..e94a469e970 100644
--- a/mysql-test/suite/rpl/r/rpl000013.result
+++ b/mysql-test/suite/rpl/r/rpl_000013.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t2(n int);
create temporary table t1 (n int);
insert into t1 values(1),(2),(3);
@@ -26,3 +22,4 @@ Slave_open_temp_tables 0
drop table if exists t1,t2;
Warnings:
Note 1051 Unknown table 't1'
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl000017.result b/mysql-test/suite/rpl/r/rpl_000017.result
index 1c611357e64..1b4f9f1e8a3 100644
--- a/mysql-test/suite/rpl/r/rpl000017.result
+++ b/mysql-test/suite/rpl/r/rpl_000017.result
@@ -1,14 +1,8 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-stop slave;
+include/master-slave.inc
+[connection master]
grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
-start slave;
-drop table if exists t1;
+include/start_slave.inc
create table t1(n int);
insert into t1 values(24);
select * from t1;
@@ -16,3 +10,4 @@ n
24
drop table t1;
delete from mysql.user where user="replicate";
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_EE_err.result b/mysql-test/suite/rpl/r/rpl_EE_err.result
index 16fa931e303..3795deedee3 100644
--- a/mysql-test/suite/rpl/r/rpl_EE_err.result
+++ b/mysql-test/suite/rpl/r/rpl_EE_err.result
@@ -1,11 +1,8 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int) engine=myisam;
flush tables;
drop table if exists t1;
Warnings:
Error 2 Can't find file: 't1' (errno: 2)
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_LD_INFILE.result b/mysql-test/suite/rpl/r/rpl_LD_INFILE.result
index b092dd9e088..3280d4bbaf7 100644
--- a/mysql-test/suite/rpl/r/rpl_LD_INFILE.result
+++ b/mysql-test/suite/rpl/r/rpl_LD_INFILE.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (a VARCHAR(255), PRIMARY KEY(a));
LOAD DATA INFILE '../../std_data/words2.dat' INTO TABLE test.t1;
@@ -115,3 +111,4 @@ abasement
abased
abase
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_alter.result b/mysql-test/suite/rpl/r/rpl_alter.result
index cedb6854239..d60f1b68082 100644
--- a/mysql-test/suite/rpl/r/rpl_alter.result
+++ b/mysql-test/suite/rpl/r/rpl_alter.result
@@ -1,10 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-drop database if exists mysqltest;
+include/master-slave.inc
+[connection master]
create database mysqltest;
create table mysqltest.t1 ( n int);
alter table mysqltest.t1 add m int;
@@ -35,7 +30,8 @@ ALTER TABLE t1 CHANGE b c INT;
ALTER TABLE t2 CHANGE b c VARCHAR(255);
INSERT INTO t1 (a) VALUES(2);
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_alter_db.result b/mysql-test/suite/rpl/r/rpl_alter_db.result
index 60c07d0dede..55adbfeda79 100644
--- a/mysql-test/suite/rpl/r/rpl_alter_db.result
+++ b/mysql-test/suite/rpl/r/rpl_alter_db.result
@@ -1,12 +1,9 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Verify that alter database does not stop replication ====
create database temp_db;
use temp_db;
alter database collate latin1_bin;
==== Clean up ====
drop database temp_db;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment.result b/mysql-test/suite/rpl/r/rpl_auto_increment.result
index fdd94264041..2ab515c8d93 100644
--- a/mysql-test/suite/rpl/r/rpl_auto_increment.result
+++ b/mysql-test/suite/rpl/r/rpl_auto_increment.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam auto_increment=3;
insert into t1 values (NULL,1),(NULL,2),(NULL,3);
select * from t1;
@@ -244,12 +240,7 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
drop table t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb;
@@ -303,12 +294,13 @@ id
INSERT INTO t1 VALUES(4);
INSERT INTO t2 VALUES(4);
FLUSH LOGS;
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1;
DROP TABLE t2;
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1;
DROP TABLE t2;
SET SQL_MODE='';
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result b/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result
index 25eda6ee454..62ff28e7159 100644
--- a/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result
+++ b/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists test1;
create database test1;
use test1;
@@ -44,4 +40,4 @@ id fname
1 testtest 1
2 test
drop database test1;
-drop database test1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result b/mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result
new file mode 100644
index 00000000000..71c6ff57f80
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result
@@ -0,0 +1,45 @@
+include/master-slave.inc
+[connection master]
+==== Initialize ====
+SET @old_relay_log_purge= @@global.relay_log_purge;
+include/setup_fake_relay_log.inc
+Setting up fake replication from MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001
+==== Test ====
+start slave sql_thread;
+include/wait_for_slave_param.inc [Exec_Master_Log_Pos]
+# Result on slave
+SELECT * FROM t1;
+id
+5
+6
+7
+8
+9
+10
+11
+SELECT * FROM t2;
+id
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+==== Clean up ====
+stop slave sql_thread;
+include/cleanup_fake_relay_log.inc
+DROP TABLE t1, t2;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
+SET @@global.relay_log_purge= @old_relay_log_purge;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result b/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result
index b2cc92491c3..af84978dc80 100644
--- a/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result
+++ b/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
# Test case1: INVOKES A TRIGGER with after insert action
create table t1(a int, b int) engine=innodb;
create table t2(i1 int not null auto_increment, a int, primary key(i1)) engine=innodb;
@@ -110,9 +106,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with after insert action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -226,9 +222,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with before insert action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -342,9 +338,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with after update action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -458,9 +454,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with before update action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -574,9 +570,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with after delete action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -690,9 +686,9 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'INVOKES A TRIGGER with before delete action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t4 and slave:test.t4
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t4, slave:t4]
+include/diff_tables.inc [master:t6, slave:t6]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -761,8 +757,8 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'CALLS A FUNCTION which INVOKES A TRIGGER with after insert action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t3 and slave:test.t3
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t3, slave:t3]
drop table t1;
drop table t2;
drop table t3;
@@ -828,8 +824,8 @@ master-bin.000001 # Xid # # COMMIT /* XID */
commit;
#Test if the results are consistent on master and slave
#for 'CALLS A FUNCTION which INVOKES A TRIGGER with before insert action'
-Comparing tables master:test.t2 and slave:test.t2
-Comparing tables master:test.t3 and slave:test.t3
+include/diff_tables.inc [master:t2, slave:t2]
+include/diff_tables.inc [master:t3, slave:t3]
drop table t1;
drop table t2;
drop table t3;
@@ -853,7 +849,7 @@ INSERT INTO v16(c1) VALUES (25), (26);
commit;
#Test if the results are consistent on master and slave
#for 'INSERT DATA INTO VIEW WHICH INVOKES TRIGGERS'
-Comparing tables master:test.t3 and slave:test.t3
+include/diff_tables.inc [master:t3, slave:t3]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -877,7 +873,7 @@ INSERT INTO v16(c1) VALUES (25), (26);
commit;
#Test if the results are consistent on master and slave
#for 'INSERT DATA INTO VIEW WHICH INVOKES TRIGGERS'
-Comparing tables master:test.t3 and slave:test.t3
+include/diff_tables.inc [master:t3, slave:t3]
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
@@ -980,8 +976,8 @@ master-bin.000001 # Query # # use `test`; insert into t2(a,b) values(3,3)
master-bin.000001 # Xid # # COMMIT /* XID */
#Test if the results are consistent on master and slave
#for 'UPDATE MORE THAN ONE TABLES ON TOP-STATEMENT'
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
drop table t1;
drop table t2;
# Test case14: INSERT DATA INTO VIEW WHICH INVOLVED MORE THAN ONE TABLES
@@ -1034,8 +1030,9 @@ master-bin.000001 # Query # # use `test`; INSERT INTO v15(c2) VALUES (25), (26)
master-bin.000001 # Xid # # COMMIT /* XID */
#Test if the results are consistent on master and slave
#for 'INSERT DATA INTO VIEW WHICH INVOLVED MORE THAN ONE TABLES'
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
drop table t1;
drop table t2;
drop view v15;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
index f826136e81e..1fdbb5a7786 100644
--- a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
+++ b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS db1;
DROP DATABASE IF EXISTS db2;
CREATE DATABASE db1;
@@ -49,6 +45,7 @@ before call db1.p1()
after call db1.p1()
[on slave]
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_POS;
+include/wait_for_slave_sql_to_stop.inc
#
# If we got non-zero here, then we're suffering BUG#43263
#
@@ -87,6 +84,7 @@ executed db1.p2()
after call db1.p2()
[on slave]
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_POS;
+include/wait_for_slave_sql_to_stop.inc
#
# If we got non-zero here, then we're suffering BUG#43263
#
@@ -105,6 +103,7 @@ s
before call db1.p1()
executed db1.p2()
START SLAVE;
+include/wait_for_slave_sql_to_start.inc
#
# SAVEPOINT and ROLLBACK TO have the same problem in BUG#43263
# This was reported by BUG#50407
@@ -167,3 +166,4 @@ a
#
DROP DATABASE db1;
DROP DATABASE db2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_corruption.result b/mysql-test/suite/rpl/r/rpl_binlog_corruption.result
index f94d2833603..4f1eca42e1a 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_corruption.result
+++ b/mysql-test/suite/rpl/r/rpl_binlog_corruption.result
@@ -1,8 +1,15 @@
+include/master-slave.inc
+[connection master]
call mtr.add_suppression('Found invalid event in binary log');
==== Initialize ====
+include/stop_slave.inc
+RESET SLAVE;
+include/setup_fake_relay_log.inc
Setting up fake replication from MYSQL_TEST_DIR/std_data/bug40482-bin.000001
==== Test ====
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_error.inc [errno=1594]
Last_SQL_Error = Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
==== Clean up ====
-Cleaning up after setup_fake_relay_log.inc
+include/cleanup_fake_relay_log.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result
index 6c8c750bc79..be1b3b150bc 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result
+++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
#######################################################################
####################### PART 1: MASTER TESTS ##########################
#######################################################################
@@ -192,6 +188,7 @@ DELETE FROM t4;
DELETE FROM t2;
DROP TABLE t5;
###################### TEST #11
+include/rpl_restart_server.inc [server_number=1]
SET GLOBAL debug="+d,fault_injection_openning_index";
FLUSH LOGS;
ERROR HY000: Can't open file: 'master-bin.index' (errno: 1)
@@ -204,6 +201,7 @@ INSERT INTO t2 VALUES ('aaaaa');
DELETE FROM t4;
DELETE FROM t2;
DROP TABLE t5;
+include/rpl_restart_server.inc [server_number=1]
###################### TEST #12
SET GLOBAL debug="+d,fault_injection_new_file_rotate_event";
FLUSH LOGS;
@@ -217,6 +215,7 @@ INSERT INTO t2 VALUES ('aaaaa');
DELETE FROM t4;
DELETE FROM t2;
DROP TABLE t5;
+include/rpl_restart_server.inc [server_number=1]
SET GLOBAL debug= @old_debug;
DROP TABLE t1, t2, t4;
RESET MASTER;
@@ -224,12 +223,7 @@ include/start_slave.inc
#######################################################################
####################### PART 2: SLAVE TESTS ###########################
#######################################################################
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
call mtr.add_suppression("Slave I/O: Relay log write failure: could not queue event from master.*");
call mtr.add_suppression("Error writing file .*");
call mtr.add_suppression("Could not open .*");
@@ -240,35 +234,45 @@ SET @old_debug=@@global.debug;
include/stop_slave.inc
SET GLOBAL debug="+d,error_unique_log_filename";
START SLAVE io_thread;
-Last_IO_Error = Relay log write failure: could not queue event from master
+include/wait_for_slave_io_error.inc [errno=1595]
+Last_IO_Error = 'Relay log write failure: could not queue event from master'
SET GLOBAL debug="-d,error_unique_log_filename";
SET GLOBAL debug=@old_debug;
+include/rpl_restart_server.inc [server_number=2]
###################### TEST #14
SET @old_debug=@@global.debug;
include/stop_slave.inc
SET GLOBAL debug="+d,fault_injection_new_file_rotate_event";
START SLAVE io_thread;
-Last_IO_Error = Relay log write failure: could not queue event from master
+include/wait_for_slave_io_error.inc [errno=1595]
+Last_IO_Error = 'Relay log write failure: could not queue event from master'
SET GLOBAL debug="-d,fault_injection_new_file_rotate_event";
SET GLOBAL debug=@old_debug;
+include/rpl_restart_server.inc [server_number=2]
###################### TEST #15
SET @old_debug=@@global.debug;
include/stop_slave.inc
SET GLOBAL debug="+d,fault_injection_registering_index";
START SLAVE io_thread;
-Last_IO_Error = Relay log write failure: could not queue event from master
+include/wait_for_slave_io_error.inc [errno=1595]
+Last_IO_Error = 'Relay log write failure: could not queue event from master'
SET GLOBAL debug="-d,fault_injection_registering_index";
SET GLOBAL debug=@old_debug;
+include/rpl_restart_server.inc [server_number=2]
###################### TEST #16
SET @old_debug=@@global.debug;
include/stop_slave.inc
SET GLOBAL debug="+d,fault_injection_openning_index";
START SLAVE io_thread;
-Last_IO_Error = Relay log write failure: could not queue event from master
+include/wait_for_slave_io_error.inc [errno=1595]
+Last_IO_Error = 'Relay log write failure: could not queue event from master'
SET GLOBAL debug="-d,fault_injection_openning_index";
SET GLOBAL debug=@old_debug;
-include/stop_slave.inc
+include/rpl_restart_server.inc [server_number=2]
+include/stop_slave_sql.inc
+Warnings:
+Note 1255 Slave already has been stopped
SET GLOBAL debug=@old_debug;
RESET SLAVE;
RESET MASTER;
-include/start_slave.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_grant.result b/mysql-test/suite/rpl/r/rpl_binlog_grant.result
index 7a2e3183d5b..93138fa5b43 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_grant.result
+++ b/mysql-test/suite/rpl/r/rpl_binlog_grant.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists d1;
create database d1;
use d1;
@@ -30,3 +26,4 @@ Grants for x@y
GRANT USAGE ON *.* TO 'x'@'y'
drop user x@y;
drop database d1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result b/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result
index f9e492db6bc..a7e8b86ac79 100644
--- a/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result
+++ b/mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET GLOBAL max_binlog_cache_size = 4096;
SET GLOBAL binlog_cache_size = 4096;
CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb;
@@ -17,14 +13,11 @@ Got one of the listed errors
*** Single statement on non-transactional table ***
*** After WL#2687 the difference between STATEMENT/MIXED and ROW will not exist. ***
Got one of the listed errors
---source include/wait_for_slave_sql_error_and_skip.inc
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1590]
*** Single statement on both transactional and non-transactional tables. ***
*** After WL#2687 we will be able to change the order of the tables. ***
Got one of the listed errors
---source include/wait_for_slave_sql_error_and_skip.inc
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1590]
TRUNCATE TABLE t1;
TRUNCATE TABLE t2;
TRUNCATE TABLE t3;
@@ -39,7 +32,7 @@ Got one of the listed errors
BEGIN;
Got one of the listed errors
Got one of the listed errors
-source include/diff_master_slave.inc;
+include/diff_tables.inc [master:t1,slave:t1]
########################################################################################
# 3 - BEGIN - COMMIT
########################################################################################
@@ -51,7 +44,7 @@ Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
COMMIT;
-source include/diff_master_slave.inc;
+include/diff_tables.inc [master:t1,slave:t1]
########################################################################################
# 4 - BEGIN - ROLLBACK
########################################################################################
@@ -65,7 +58,7 @@ Got one of the listed errors
ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
-source include/diff_master_slave.inc;
+include/diff_tables.inc [master:t1,slave:t1]
########################################################################################
# 5 - PROCEDURE
########################################################################################
@@ -89,7 +82,7 @@ TRUNCATE TABLE t1;
BEGIN;
Got one of the listed errors
ROLLBACK;
-source include/diff_master_slave.inc;
+include/diff_tables.inc [master:t1,slave:t1]
########################################################################################
# 6 - XID
########################################################################################
@@ -104,7 +97,7 @@ ROLLBACK TO sv;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
COMMIT;
-source include/diff_master_slave.inc;
+include/diff_tables.inc [master:t1,slave:t1]
########################################################################################
# 7 - NON-TRANS TABLE
########################################################################################
@@ -121,9 +114,7 @@ COMMIT;
BEGIN;
Got one of the listed errors
COMMIT;
---source include/wait_for_slave_sql_error_and_skip.inc
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1590]
########################################################################
# 8 - Bug#55375(Regression Bug) Transaction bigger than
# max_binlog_cache_size crashes slave
@@ -140,6 +131,7 @@ SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
BEGIN;
Repeat statement 'INSERT INTO t1 VALUES($n, repeat("a", 32))' 128 times
COMMIT;
+include/wait_for_slave_sql_error.inc [errno=1197]
SELECT count(*) FROM t1;
count(*)
0
@@ -159,6 +151,6 @@ DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
DROP TABLE IF EXISTS t4;
-DROP TABLE IF EXISTS t5;
-DROP TABLE IF EXISTS t6;
+DROP TABLE t5;
DROP PROCEDURE p1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bit.result b/mysql-test/suite/rpl/r/rpl_bit.result
index 924de8a65f8..fa935cd9e56 100644
--- a/mysql-test/suite/rpl/r/rpl_bit.result
+++ b/mysql-test/suite/rpl/r/rpl_bit.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (
dummyKey INTEGER NOT NULL,
@@ -136,3 +132,4 @@ hex(bit3)
24
35
DROP TABLE IF EXISTS test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bit_npk.result b/mysql-test/suite/rpl/r/rpl_bit_npk.result
index 9599660f18f..13c9985614e 100644
--- a/mysql-test/suite/rpl/r/rpl_bit_npk.result
+++ b/mysql-test/suite/rpl/r/rpl_bit_npk.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (
dummyKey INTEGER NOT NULL,
@@ -167,3 +163,4 @@ a b
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
DROP TABLE IF EXISTS test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_blackhole.result b/mysql-test/suite/rpl/r/rpl_blackhole.result
index 954589267c5..566fb828fc7 100644
--- a/mysql-test/suite/rpl/r/rpl_blackhole.result
+++ b/mysql-test/suite/rpl/r/rpl_blackhole.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT, b INT, c INT);
CREATE TABLE t2 (a INT, b INT, c INT);
ALTER TABLE t1 ENGINE=BLACKHOLE;
@@ -99,3 +95,4 @@ COUNT(*)
0
>>> Something was written to binary log <<<
DROP TABLE t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bug26395.result b/mysql-test/suite/rpl/r/rpl_bug26395.result
index c6dd2d01ed3..a3725f34a55 100644
--- a/mysql-test/suite/rpl/r/rpl_bug26395.result
+++ b/mysql-test/suite/rpl/r/rpl_bug26395.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialize ====
[on master]
CREATE TABLE tinnodb (a INT) ENGINE = INNODB;
@@ -20,6 +16,7 @@ SELECT * FROM tinnodb ORDER BY a;
a
1
[on slave]
+include/sync_slave_io_with_master.inc
==== Verify results on slave ====
include/stop_slave.inc
SELECT "" AS Slave_IO_State;
@@ -39,3 +36,4 @@ DROP TABLE tinnodb;
set @@debug= @old_debug;
[on slave]
DROP TABLE tinnodb;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bug31076.result b/mysql-test/suite/rpl/r/rpl_bug31076.result
index fd66ca85d57..09330b35fbd 100644
--- a/mysql-test/suite/rpl/r/rpl_bug31076.result
+++ b/mysql-test/suite/rpl/r/rpl_bug31076.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE DATABASE track;
USE track;
CREATE TABLE `visits` (
@@ -67,3 +63,4 @@ event_id visit_id timestamp src data visits_events_id
20000 21231038 2007-09-18 03:59:02 Downloads/MySQL-4.1/mysql-4.1.12a-win32.zip 33712207
DROP DATABASE track;
End of 5.1 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bug33931.result b/mysql-test/suite/rpl/r/rpl_bug33931.result
index 292922a1afd..d27308db1d5 100644
--- a/mysql-test/suite/rpl/r/rpl_bug33931.result
+++ b/mysql-test/suite/rpl/r/rpl_bug33931.result
@@ -1,8 +1,12 @@
-reset master;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Failed during slave I/O thread initialization");
-stop slave;
+include/stop_slave.inc
reset slave;
SET GLOBAL debug="d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init";
start slave;
-Last_SQL_Error = Failed during slave thread initialization
+include/wait_for_slave_sql_error.inc [errno=1593]
+Last_SQL_Error = 'Failed during slave thread initialization'
SET GLOBAL debug="";
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_bug38694.result b/mysql-test/suite/rpl/r/rpl_bug38694.result
index 711c4a91c03..b666d9a9155 100644
--- a/mysql-test/suite/rpl/r/rpl_bug38694.result
+++ b/mysql-test/suite/rpl/r/rpl_bug38694.result
@@ -1,6 +1,3 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_change_master.result b/mysql-test/suite/rpl/r/rpl_change_master.result
index 883feb42b3f..6674ab168ef 100644
--- a/mysql-test/suite/rpl/r/rpl_change_master.result
+++ b/mysql-test/suite/rpl/r/rpl_change_master.result
@@ -1,15 +1,12 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(n int);
select * from t1;
n
stop slave sql_thread;
insert into t1 values(1);
insert into t1 values(2);
+include/wait_for_slave_param.inc [Read_Master_Log_Pos]
include/stop_slave.inc
change master to master_user='root';
start slave;
@@ -18,3 +15,4 @@ n
1
2
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_charset.result b/mysql-test/suite/rpl/r/rpl_charset.result
index ae5cf3b0fd1..fff11542f6b 100644
--- a/mysql-test/suite/rpl/r/rpl_charset.result
+++ b/mysql-test/suite/rpl/r/rpl_charset.result
@@ -1,12 +1,6 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set timestamp=1000000000;
-drop database if exists mysqltest2;
-drop database if exists mysqltest3;
create database mysqltest2 character set latin2;
set @@character_set_server=latin5;
create database mysqltest3;
@@ -142,3 +136,4 @@ primary key (`pk`)
set @p=_latin1 'test';
update t1 set pk='test' where pk=@p;
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_charset_sjis.result b/mysql-test/suite/rpl/r/rpl_charset_sjis.result
index 770ad0588d1..b31bad28a59 100644
--- a/mysql-test/suite/rpl/r/rpl_charset_sjis.result
+++ b/mysql-test/suite/rpl/r/rpl_charset_sjis.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1;
drop procedure if exists p1;
create table t1 (a varchar(255) character set sjis);
@@ -24,3 +20,4 @@ hex(a)
965C
drop table t1;
drop procedure p1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result b/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result
index c3ccc76d1bc..fb1d3f8258e 100644
--- a/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result
+++ b/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result
@@ -1,60 +1,10 @@
-*** Set up circular ring by schema A->B->C->D->A ***
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-STOP SLAVE;
-RESET SLAVE;
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 1;
-RESET MASTER;
-RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_A_PORT,master_user='root',MASTER_LOG_FILE='MASTER_A_LOG_FILE';
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 2;
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_B_PORT,master_user='root',MASTER_LOG_FILE='MASTER_B_LOG_FILE';
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 3;
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_C_PORT,master_user='root',MASTER_LOG_FILE='MASTER_C_LOG_FILE';
-SET auto_increment_increment = 4;
-SET auto_increment_offset = 4;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_D_PORT,master_user='root',MASTER_LOG_FILE='MASTER_D_LOG_FILE';
-SHOW VARIABLES LIKE 'auto_increment_%';
-Variable_name Value
-auto_increment_increment 4
-auto_increment_offset 1
-SHOW VARIABLES LIKE 'auto_increment_%';
-Variable_name Value
-auto_increment_increment 4
-auto_increment_offset 2
-SHOW VARIABLES LIKE 'auto_increment_%';
-Variable_name Value
-auto_increment_increment 4
-auto_increment_offset 3
-SHOW VARIABLES LIKE 'auto_increment_%';
-Variable_name Value
-auto_increment_increment 4
-auto_increment_offset 4
-1
-START SLAVE;
-START SLAVE;
-START SLAVE;
-START SLAVE;
+*** Set up circular replication on four servers ***
+include/rpl_init.inc [topology=1->2->3->4->1]
*** Preparing data ***
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=MyISAM;
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB;
+include/rpl_sync.inc
*** Testing schema A->B->C->D->A ***
@@ -62,6 +12,7 @@ INSERT INTO t1(b,c) VALUES('A',1);
INSERT INTO t1(b,c) VALUES('B',1);
INSERT INTO t1(b,c) VALUES('C',1);
INSERT INTO t1(b,c) VALUES('D',1);
+include/rpl_sync.inc
SELECT 'Master A',a,b FROM t1 WHERE c = 1 ORDER BY a,b;
Master A a b
Master A 1 A
@@ -95,6 +46,7 @@ SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
include/start_slave.inc
INSERT INTO t1 VALUES(6,'C',2);
INSERT INTO t1(b,c) VALUES('B',2);
+include/wait_for_slave_sql_error.inc [errno=1062]
INSERT INTO t1(b,c) VALUES('A',2);
INSERT INTO t1(b,c) VALUES('D',2);
@@ -116,9 +68,9 @@ Master D a b
Master D 8 D
* Reconfigure replication to schema A->B->D->A *
-STOP SLAVE;
-STOP SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_B_PORT,master_user='root',master_log_file='LOG_FILE',master_log_pos=LOG_POS;
+include/stop_slave_io.inc
+include/stop_slave.inc
+include/rpl_change_topology.inc [new topology=1->2->4->1,2->3]
include/start_slave.inc
* Check data inserted before failure *
@@ -145,6 +97,7 @@ Master D 8 D
INSERT INTO t1(b,c) VALUES('A',3);
INSERT INTO t1(b,c) VALUES('B',3);
INSERT INTO t1(b,c) VALUES('D',3);
+include/rpl_sync.inc
SELECT 'Master A',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
Master A a b
Master A 9 A
@@ -171,8 +124,9 @@ DELETE FROM t1 WHERE a = 6;
START SLAVE;
RESET MASTER;
RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_C_PORT,master_user='root',master_log_file='LOG_FILE',master_log_pos=LOG_POS;
+include/rpl_change_topology.inc [new topology=1->2->3->4->1]
START SLAVE;
+include/rpl_sync.inc
* Check data inserted before restoring schema A->B->C->D->A *
SELECT 'Master A',a,b FROM t1 WHERE c IN (2,3) ORDER BY a,b;
@@ -213,6 +167,7 @@ INSERT INTO t1(b,c) VALUES('A',4);
INSERT INTO t1(b,c) VALUES('B',4);
INSERT INTO t1(b,c) VALUES('C',4);
INSERT INTO t1(b,c) VALUES('D',4);
+include/rpl_sync.inc
SELECT 'Master A',a,b FROM t1 WHERE c = 4 ORDER BY a,b;
Master A a b
Master A 13 A
@@ -241,6 +196,7 @@ Master D 16 D
* Transactions with commits *
BEGIN;
BEGIN;
+include/rpl_sync.inc
SELECT 'Master A',b,COUNT(*) FROM t2 WHERE c = 1 GROUP BY b ORDER BY b;
Master A b COUNT(*)
Master A A 100
@@ -269,6 +225,7 @@ Master D D 100
* Transactions with rollbacks *
BEGIN;
BEGIN;
+include/rpl_sync.inc
SELECT 'Master A',b,COUNT(*) FROM t2 WHERE c = 2 GROUP BY b ORDER BY b;
Master A b COUNT(*)
Master A B 100
@@ -288,11 +245,4 @@ Master D D 100
*** Clean up ***
DROP TABLE t1,t2;
-STOP SLAVE;
-RESET SLAVE;
-STOP SLAVE;
-RESET SLAVE;
-STOP SLAVE;
-RESET SLAVE;
-STOP SLAVE;
-RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_colSize.result b/mysql-test/suite/rpl/r/rpl_colSize.result
index 91456742833..8147ab2db37 100644
--- a/mysql-test/suite/rpl/r/rpl_colSize.result
+++ b/mysql-test/suite/rpl/r/rpl_colSize.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
**** Testing WL#3228 changes. ****
*** Create "wider" table on slave ***
@@ -177,3 +173,4 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
*** Cleanup ***
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_commit_after_flush.result b/mysql-test/suite/rpl/r/rpl_commit_after_flush.result
index eaddda63b6a..b91b273e64e 100644
--- a/mysql-test/suite/rpl/r/rpl_commit_after_flush.result
+++ b/mysql-test/suite/rpl/r/rpl_commit_after_flush.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT) ENGINE=innodb;
begin;
insert into t1 values(1);
@@ -11,3 +7,4 @@ flush tables with read lock;
commit;
unlock tables;
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_concurrency_error.result b/mysql-test/suite/rpl/r/rpl_concurrency_error.result
index 83e5f66a9c4..c6bd8dc6062 100644
--- a/mysql-test/suite/rpl/r/rpl_concurrency_error.result
+++ b/mysql-test/suite/rpl/r/rpl_concurrency_error.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
########################################################################
# Environment
########################################################################
@@ -101,11 +97,12 @@ master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'dark blue 1' WHERE f
master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown")
master-bin.000001 # Query # # use `test`; INSERT INTO n VALUES (now(),"brown")
master-bin.000001 # Xid # # COMMIT /* XID */
-source include/diff_master_slave.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
+include/rpl_diff.inc
########################################################################
# Cleanup
########################################################################
DROP TRIGGER tr;
DROP TABLE t;
DROP TABLE n;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_conditional_comments.result b/mysql-test/suite/rpl/r/rpl_conditional_comments.result
index 105d3bc59f3..f520ac04bb4 100644
--- a/mysql-test/suite/rpl/r/rpl_conditional_comments.result
+++ b/mysql-test/suite/rpl/r/rpl_conditional_comments.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1(c1 INT);
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
@@ -17,7 +13,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE t1(c1 INT)
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; /* 99999 --- */INSERT /*!INTO*/ /*!10000 t1 */ VALUES(10) /* 99999 ,(11)*/
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Case 2:
# -----------------------------------------------------------------
@@ -28,7 +24,7 @@ EXECUTE stmt;
DROP TABLE t1;
CREATE TABLE t1(c1 INT);
EXECUTE stmt;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
SET @value=62;
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla */ t1 VALUES(?) /*!99999 ,(63)*/';
@@ -46,7 +42,7 @@ master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla */ t1 VALU
master-bin.000001 # Query # # use `test`; DROP TABLE t1
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(c1 INT)
master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla */ t1 VALUES(62) /* 99999 ,(63)*/
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Case 3:
# -----------------------------------------------------------------
@@ -55,3 +51,4 @@ Comparing tables master:test.t1 and slave:test.t1
SELECT c1 FROM /*!99999 t1 WHEREN;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*!99999 t1 WHEREN' at line 1
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_create_database.result b/mysql-test/suite/rpl/r/rpl_create_database.result
index 9780b65f334..6bb950483ed 100644
--- a/mysql-test/suite/rpl/r/rpl_create_database.result
+++ b/mysql-test/suite/rpl/r/rpl_create_database.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS mysqltest_prometheus;
DROP DATABASE IF EXISTS mysqltest_sisyfos;
DROP DATABASE IF EXISTS mysqltest_bob;
@@ -60,3 +56,4 @@ t2
DROP DATABASE IF EXISTS mysqltest_prometheus;
DROP DATABASE IF EXISTS mysqltest_sisyfos;
DROP DATABASE IF EXISTS mysqltest_bob;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_create_if_not_exists.result b/mysql-test/suite/rpl/r/rpl_create_if_not_exists.result
index e3cddf4c606..dbb48f734b8 100644
--- a/mysql-test/suite/rpl/r/rpl_create_if_not_exists.result
+++ b/mysql-test/suite/rpl/r/rpl_create_if_not_exists.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS mysqltest;
CREATE DATABASE IF NOT EXISTS mysqltest;
USE mysqltest;
@@ -74,3 +70,4 @@ CREATE TABLE IF NOT EXISTS t1
AS SELECT SLEEP(3);
KILL QUERY master1;
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result b/mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result
index de44a1e5d2a..b31a6d399e2 100644
--- a/mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result
+++ b/mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS mysqltest;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int);
@@ -25,3 +21,4 @@ master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS `
)
master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`tmp2` (`c1`) SELECT * FROM tmp
master-bin.000001 # Query # # COMMIT
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_cross_version.result b/mysql-test/suite/rpl/r/rpl_cross_version.result
index de5dd134516..ddb97ffa8c5 100644
--- a/mysql-test/suite/rpl/r/rpl_cross_version.result
+++ b/mysql-test/suite/rpl/r/rpl_cross_version.result
@@ -1,12 +1,19 @@
+include/master-slave.inc
+[connection master]
==== Initialize ====
+include/stop_slave.inc
+RESET SLAVE;
+include/setup_fake_relay_log.inc
Setting up fake replication from MYSQL_TEST_DIR/suite/binlog/std_data/binlog_old_version_4_1.000001
==== Test ====
start slave sql_thread;
+include/wait_for_slave_param.inc [Exec_Master_Log_Pos]
==== a prove that the fake has been processed successfully ====
SELECT COUNT(*) - 17920 as zero FROM t3;
zero
0
==== Clean up ====
-stop slave sql_thread;
-Cleaning up after setup_fake_relay_log.inc
+include/stop_slave_sql.inc
+include/cleanup_fake_relay_log.inc
drop table t1, t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_current_user.result b/mysql-test/suite/rpl/r/rpl_current_user.result
index 85490c2571c..7d8fc4e492e 100644
--- a/mysql-test/suite/rpl/r/rpl_current_user.result
+++ b/mysql-test/suite/rpl/r/rpl_current_user.result
@@ -1,25 +1,6 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-
-# On slave2
-# Connect slave2 to slave
-CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=SLAVE_MYPORT;,
-MASTER_LOG_FILE='slave-bin.000001', MASTER_USER='root';
-START SLAVE;
-
-# [On master]
-DROP VIEW IF EXISTS v_user;
-DROP VIEW IF EXISTS v_tables_priv;
-DROP VIEW IF EXISTS v_procs_priv;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS my_grant;
-DROP PROCEDURE IF EXISTS my_revoke;
-DROP FUNCTION IF EXISTS my_user;
-DROP EVENT IF EXISTS e1;
+include/rpl_init.inc [topology=1->2->3]
+include/rpl_connect.inc [creating master]
+include/rpl_connect.inc [creating slave]
CREATE TABLE t1(c1 char(100));
CREATE VIEW test.v_user AS SELECT * FROM mysql.user WHERE User LIKE 'bug48321%';
CREATE VIEW test.v_tables_priv AS SELECT * FROM mysql.tables_priv WHERE User LIKE 'bug48321%';
@@ -41,76 +22,76 @@ ERROR HY000: String '01234567890123456789012345678901234567890123456789012345678
# [On conn1]
# Verify 'REVOKE ALL' statement
REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_USER();
-Comparing tables master:test.v_user and slave:test.v_user
-Comparing tables master:test.v_user and slave2:test.v_user
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_user, server_2:v_user, server_3:v_user]
# Verify 'GRANT ... ON TABLE ...' statement
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
-Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
-Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv]
# Verify 'GRANT ... ON PROCEDURE...' statement
GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO CURRENT_USER();
-Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
-Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv]
# Verify 'GRANT ... ON *.* ...' statement
GRANT ALL PRIVILEGES ON *.* TO CURRENT_USER() WITH GRANT OPTION;
-Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
-Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv]
# Verify 'REVOKE ... ON TABLE ...' statement
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
-Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
-Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv]
# Verify 'REVOKE ... ON PROCEDURE...' statement
REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM CURRENT_USER();
-Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
-Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv]
# Verify 'REVOKE ... ON *.* ...' statement
REVOKE ALL PRIVILEGES ON *.* FROM CURRENT_USER();
-Comparing tables master:test.v_user and slave:test.v_user
-Comparing tables master:test.v_user and slave2:test.v_user
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_user, server_2:v_user, server_3:v_user]
# Verify 'GRANT ...' statement in the procedure
CREATE PROCEDURE my_grant()
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
call my_grant;
-Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
-Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv]
# Verify 'REVOKE ... ON TABLE ...' statement in the procedure
CREATE PROCEDURE my_revoke()
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
call my_revoke;
-Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
-Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv]
# Verify 'RENAME USER ...' statement
RENAME USER CURRENT_USER TO 'bug48321_2'@'localhost';
-Comparing tables master:test.v_user and slave:test.v_user
-Comparing tables master:test.v_user and slave2:test.v_user
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_user, server_2:v_user, server_3:v_user]
# Verify 'DROP USER ...' statement
GRANT CREATE USER ON *.* TO 'bug48321_2'@'localhost';
DROP USER CURRENT_USER();
-Comparing tables master:test.v_user and slave:test.v_user
-Comparing tables master:test.v_user and slave2:test.v_user
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_user, server_2:v_user, server_3:v_user]
# Verify 'ALTER EVENT...' statement
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT * FROM t1;
# Explicitly assign CURRENT_USER() to definer
ALTER DEFINER=CURRENT_USER() EVENT e1 ENABLE;
-Comparing tables master:test.v_event and slave:test.v_event
-Comparing tables master:test.v_event and slave2:test.v_event
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_event, server_2:v_event, server_3:v_event]
# Session user will be set as definer, if the statement does not assign
# a definer
ALTER EVENT e1 ENABLE;
-Comparing tables master:test.v_event and slave:test.v_event
-Comparing tables master:test.v_event and slave2:test.v_event
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:v_event, server_2:v_event, server_3:v_event]
# Verify that this patch does not affect the calling of CURRENT_USER()
# in the other statements
@@ -127,7 +108,7 @@ SELECT * FROM t1;
c1
@
1234
-# [On slave2]
+# [On server_3]
SELECT * FROM t1;
c1
@
@@ -145,7 +126,7 @@ SELECT * FROM t1;
c1
@
@
-# [On slave2]
+# [On server_3]
SELECT * FROM t1;
c1
@
@@ -159,7 +140,7 @@ c1
# [On slave]
SELECT * FROM t1;
c1
-# [On slave2]
+# [On server_3]
SELECT * FROM t1;
c1
# [On master]
@@ -187,7 +168,7 @@ c1
SELECT * FROM t2;
c1
@
-# [On slave2]
+# [On server_3]
SELECT * FROM t1;
c1
@
@@ -203,3 +184,4 @@ DROP PROCEDURE my_grant;
DROP PROCEDURE my_revoke;
DROP FUNCTION my_user;
DROP EVENT e1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_deadlock_innodb.result b/mysql-test/suite/rpl/r/rpl_deadlock_innodb.result
index 1485389204b..c399b408d5c 100644
--- a/mysql-test/suite/rpl/r/rpl_deadlock_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_deadlock_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
*** Prepare tables and data ***
CREATE TABLE t1 (a INT NOT NULL, KEY(a)) ENGINE=innodb;
CREATE TABLE t2 (a INT) ENGINE=innodb;
@@ -50,7 +46,7 @@ a
SELECT * FROM t3;
a
3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
*** Test lock wait timeout ***
include/stop_slave.inc
@@ -61,6 +57,7 @@ SELECT * FROM t1 FOR UPDATE;
a
1
START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1205]
SELECT COUNT(*) FROM t2;
COUNT(*)
0
@@ -74,7 +71,7 @@ SELECT * FROM t3;
a
3
3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
*** Test lock wait timeout and purged relay logs ***
SET @my_max_relay_log_size= @@global.max_relay_log_size;
@@ -88,6 +85,7 @@ a
1
1
START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1205]
SELECT COUNT(*) FROM t2;
COUNT(*)
0
@@ -103,9 +101,10 @@ a
3
3
3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
*** Clean up ***
DROP TABLE t1,t2,t3;
SET global max_relay_log_size= @my_max_relay_log_size;
End of 5.1 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_delete_no_where.result b/mysql-test/suite/rpl/r/rpl_delete_no_where.result
index 78edf4bf3fa..923cd428aec 100644
--- a/mysql-test/suite/rpl/r/rpl_delete_no_where.result
+++ b/mysql-test/suite/rpl/r/rpl_delete_no_where.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int, b int) engine=myisam;
insert into t1 values(1,1);
select * from t1;
@@ -13,3 +9,4 @@ delete from t1;
select * from t1;
a b
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_do_grant.result b/mysql-test/suite/rpl/r/rpl_do_grant.result
index 6472294fe9d..dea58316287 100644
--- a/mysql-test/suite/rpl/r/rpl_do_grant.result
+++ b/mysql-test/suite/rpl/r/rpl_do_grant.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges;
@@ -167,20 +163,10 @@ DROP FUNCTION upgrade_del_func;
DROP FUNCTION upgrade_alter_func;
DROP DATABASE bug42217_db;
DROP USER 'create_rout_db'@'localhost';
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
+USE test;
######## BUG#49119 #######
### i) test case from the 'how to repeat section'
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
CREATE TABLE t1(c1 INT);
CREATE PROCEDURE p1() SELECT * FROM t1 |
REVOKE EXECUTE ON PROCEDURE p1 FROM 'root'@'localhost';
@@ -188,12 +174,7 @@ ERROR 42000: There is no such grant defined for user 'root' on host 'localhost'
DROP TABLE t1;
DROP PROCEDURE p1;
### ii) Test case in which REVOKE partially succeeds
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1(c1 INT);
CREATE PROCEDURE p1() SELECT * FROM t1 |
CREATE USER 'user49119'@'localhost';
@@ -246,12 +227,7 @@ GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
DROP TABLE t1;
DROP PROCEDURE p1;
DROP USER 'user49119'@'localhost';
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
grant all on *.* to foo@"1.2.3.4";
revoke all privileges, grant option from "foo";
ERROR HY000: Can't revoke all privileges for one or more of the requested users
@@ -259,15 +235,11 @@ show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; grant all on *.* to foo@"1.2.3.4"
master-bin.000001 # Query # # use `test`; revoke all privileges, grant option from "foo"
+include/check_slave_no_error.inc
DROP USER foo@"1.2.3.4";
# Bug#27606 GRANT statement should be replicated with DEFINER information
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
GRANT SELECT, INSERT ON mysql.user TO user_bug27606@localhost;
SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
Grantor
@@ -284,3 +256,4 @@ Grantor
root@localhost
DROP USER user_bug27606@localhost;
"End of test"
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_drop.result b/mysql-test/suite/rpl/r/rpl_drop.result
index 5ebbc4f9ce7..a32d3fd5fc7 100644
--- a/mysql-test/suite/rpl/r/rpl_drop.result
+++ b/mysql-test/suite/rpl/r/rpl_drop.result
@@ -1,10 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-drop table if exists t1, t2;
+include/master-slave.inc
+[connection master]
create table t1 (a int);
drop table t1, t2;
ERROR 42S02: Unknown table 't2'
@@ -32,3 +27,4 @@ DROP FUNCTION f1;
DROP TABLE t2, t3;
SET @@global.binlog_format= @old_binlog_format;
SET @@global.binlog_format= @old_binlog_format;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_drop_db.result b/mysql-test/suite/rpl/r/rpl_drop_db.result
index 8825797f80d..8a88f01a444 100644
--- a/mysql-test/suite/rpl/r/rpl_drop_db.result
+++ b/mysql-test/suite/rpl/r/rpl_drop_db.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1;
create table mysqltest1.t1 (n int);
@@ -34,4 +30,4 @@ n
use test;
drop table t1;
drop database mysqltest1;
-include/stop_slave.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_drop_temp.result b/mysql-test/suite/rpl/r/rpl_drop_temp.result
index 03fbaa2256f..4aa0ba0bc0d 100644
--- a/mysql-test/suite/rpl/r/rpl_drop_temp.result
+++ b/mysql-test/suite/rpl/r/rpl_drop_temp.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create database if not exists mysqltest;
use mysqltest;
create temporary table mysqltest.t1 (n int)ENGINE=MyISAM;
@@ -26,3 +22,4 @@ CREATE TEMPORARY TABLE tmp3 (a int);
DROP TEMPORARY TABLE tmp3;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_drop_view.result b/mysql-test/suite/rpl/r/rpl_drop_view.result
index c359011612a..0688ce42bc2 100644
--- a/mysql-test/suite/rpl/r/rpl_drop_view.result
+++ b/mysql-test/suite/rpl/r/rpl_drop_view.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1, t2;
drop view if exists v1, v2, v3, not_exist_view;
create table t1 (a int);
@@ -27,3 +23,4 @@ select * from v3;
ERROR 42S02: Table 'test.v3' doesn't exist
==== clean up ====
drop table t1, t2, t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result b/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
index aa1a573d052..3a3bed1a6fd 100644
--- a/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
+++ b/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
@@ -1,12 +1,4 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-reset master;
-change master to master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root";
-include/start_slave.inc
+include/rpl_init.inc [topology=1->2->1]
create table t1 (n int);
include/stop_slave.inc
create table t2 (n int);
@@ -25,6 +17,7 @@ insert into t3 values(4);
start slave until master_log_file="MASTER_LOG_FILE",master_log_pos=MASTER_LOG_POS;
Warnings:
Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+include/wait_for_slave_sql_to_stop.inc
show tables;
Tables_in_test
t1
@@ -32,12 +25,14 @@ t2
start slave until master_log_file="MASTER_LOG_FILE",master_log_pos=MASTER_LOG_POS;
Warnings:
Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+include/wait_for_slave_sql_to_stop.inc
select * from t3;
n
1
start slave until master_log_file="MASTER_LOG_FILE",master_log_pos=MASTER_LOG_POS;
Warnings:
Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+include/wait_for_slave_sql_to_stop.inc
select * from t3;
n
1
@@ -55,6 +50,5 @@ t3
t4
t5
t6
-include/stop_slave.inc
-reset slave;
-drop table t1,t2,t3,t4,t5,t6;
+drop table t1, t2, t3, t4, t5, t6;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_empty_master_crash.result b/mysql-test/suite/rpl/r/rpl_empty_master_crash.result
index f71411c68dd..34281bc33d7 100644
--- a/mysql-test/suite/rpl/r/rpl_empty_master_crash.result
+++ b/mysql-test/suite/rpl/r/rpl_empty_master_crash.result
@@ -1,10 +1,7 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
load table t1 from master;
ERROR 08S01: Error connecting to master: Master is not configured
load table t1 from master;
ERROR HY000: Error from master: 'Table 'test.t1' doesn't exist'
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_err_ignoredtable.result b/mysql-test/suite/rpl/r/rpl_err_ignoredtable.result
index 75fefdad2a2..6d00774ef87 100644
--- a/mysql-test/suite/rpl/r/rpl_err_ignoredtable.result
+++ b/mysql-test/suite/rpl/r/rpl_err_ignoredtable.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
create table t1 (a int primary key);
create table t4 (a int primary key);
@@ -41,3 +37,4 @@ a
3
4
DROP TABLE test.t4;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_events.result b/mysql-test/suite/rpl/r/rpl_events.result
index b724d284bfa..30ba1bb3828 100644
--- a/mysql-test/suite/rpl/r/rpl_events.result
+++ b/mysql-test/suite/rpl/r/rpl_events.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET @old_event_scheduler = @@global.event_scheduler;
set global event_scheduler=1;
set binlog_format=row;
@@ -257,3 +253,4 @@ DROP EVENT event44331_1;
DROP EVENT event44331_2;
DROP EVENT event44331_3;
DROP EVENT event44331_4;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
index e8535a0bc5e..affb179d50e 100644
--- a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set binlog_format=row;
***********************************************************
@@ -91,7 +87,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -428,7 +424,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -464,10 +460,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -502,10 +496,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -616,7 +608,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -664,7 +657,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -712,7 +706,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -876,7 +871,6 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
set binlog_format=statement;
***********************************************************
@@ -964,7 +958,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -1301,7 +1295,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -1337,10 +1331,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -1375,10 +1367,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -1489,7 +1479,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -1537,7 +1528,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -1585,7 +1577,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -1749,7 +1742,6 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
set binlog_format=mixed;
***********************************************************
@@ -1837,7 +1829,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -2174,7 +2166,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -2210,10 +2202,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -2248,10 +2238,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -2362,7 +2350,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -2410,7 +2399,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -2458,7 +2448,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -2622,4 +2613,4 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
index f360a8847eb..8aeb5bdc1c9 100644
--- a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set binlog_format=row;
***********************************************************
@@ -91,7 +87,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -428,7 +424,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -464,10 +460,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -502,10 +496,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -616,7 +608,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -664,7 +657,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -712,7 +706,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -876,7 +871,6 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
set binlog_format=statement;
***********************************************************
@@ -964,7 +958,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -1301,7 +1295,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -1337,10 +1331,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -1375,10 +1367,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -1489,7 +1479,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -1537,7 +1528,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -1585,7 +1577,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -1749,7 +1742,6 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
set binlog_format=mixed;
***********************************************************
@@ -1837,7 +1829,7 @@ f1 f2 f3 f4
27 27 27 next
29 29 29 second
30 30 30 next
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
***** Testing Altering table def scenario *****
@@ -2174,7 +2166,7 @@ f1 f2 f3 f4
** Check slave status **
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
****************************************
* columns in master at middle of table *
@@ -2210,10 +2202,8 @@ INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254'
*** Drop t10 ***
DROP TABLE t10;
@@ -2248,10 +2238,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15'
*** Drop t11 ***
DROP TABLE t11;
@@ -2362,7 +2350,8 @@ c1 c3 hex(c4) c5 c6
************
* Bug30415 *
************
-Last_SQL_Error = Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+include/wait_for_slave_sql_error.inc [errno=1091]
+Last_SQL_Error = 'Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7''
STOP SLAVE;
RESET SLAVE;
@@ -2410,7 +2399,8 @@ c1 hex(c4) c5 c6 c7 c2
*** Expect slave to fail with Error 1054 ***
********************************************
-Last_SQL_Error = Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+include/wait_for_slave_sql_error.inc [errno=1054]
+Last_SQL_Error = 'Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7''
STOP SLAVE;
RESET SLAVE;
@@ -2458,7 +2448,8 @@ c1 hex(c4) c5 c6 c7
*** BUG 30434 ***
*****************
-Last_SQL_Error = Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+include/wait_for_slave_sql_error.inc [errno=1072]
+Last_SQL_Error = 'Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)''
STOP SLAVE;
RESET SLAVE;
@@ -2622,4 +2613,4 @@ c1 hex(c4) c5
2 6231623162316231 JOE
3 6231623162316231 QA
DROP TABLE t5;
-
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result b/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result
index 48fd0366c26..9ea319379c0 100644
--- a/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
**** Diff Table Def Start ****
*** On Slave ***
@@ -54,7 +50,8 @@ a b c
3 4 QA TESTING
*** Start Slave ***
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.'
STOP SLAVE;
RESET SLAVE;
SELECT * FROM t2 ORDER BY a;
@@ -83,10 +80,8 @@ INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TEST
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3'
*** Drop t3 ***
DROP TABLE t3;
*** Create t4 on slave ***
@@ -108,10 +103,8 @@ INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3'
*** Drop t4 ***
DROP TABLE t4;
*** Create t5 on slave ***
@@ -133,10 +126,8 @@ INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246'
*** Drop t5 ***
DROP TABLE t5;
*** Create t6 on slave ***
@@ -157,7 +148,8 @@ INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
-Last_SQL_Error = Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3'
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
*** Drop t6 ***
DROP TABLE t6;
@@ -237,6 +229,7 @@ a b c d e f g h i
1 b1b1b1b1b1b1b1b1 Kyle 0000-00-00 00:00:00 0 NULL NULL
2 b1b1b1b1b1b1b1b1 JOE 0000-00-00 00:00:00 0 NULL NULL
3 b1b1b1b1b1b1b1b1 QA 0000-00-00 00:00:00 0 NULL NULL
+DROP TABLE t9;
*** Create t10 on slave ***
STOP SLAVE;
RESET SLAVE;
@@ -255,10 +248,8 @@ INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5'
*** Drop t10 ***
DROP TABLE t10;
*** Create t11 on slave ***
@@ -279,10 +270,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252'
*** Drop t11 ***
DROP TABLE t11;
*** Create t12 on slave ***
@@ -439,6 +428,7 @@ c1 c4 c5 c6 c7
4 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
5 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
6 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
+DROP TABLE t14a;
*** connect to master and drop columns ***
ALTER TABLE t14 DROP COLUMN c2;
ALTER TABLE t14 DROP COLUMN c4;
@@ -492,10 +482,8 @@ ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
********************************************
*** Expect slave to fail with Error 1060 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1060]
+Last_SQL_Error = 'Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5''
*** Try to insert in master ****
INSERT INTO t15 () VALUES(5,2.00,'Replication Testing',@b1,'Buda',2);
SELECT * FROM t15 ORDER BY c1;
@@ -595,9 +583,8 @@ INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2'
** DROP table t17 ***
DROP TABLE t17;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result b/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result
index 80b18ee4bd7..716a35b3464 100644
--- a/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
**** Diff Table Def Start ****
*** On Slave ***
@@ -54,7 +50,8 @@ a b c
3 4 QA TESTING
*** Start Slave ***
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.'
STOP SLAVE;
RESET SLAVE;
SELECT * FROM t2 ORDER BY a;
@@ -83,10 +80,8 @@ INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TEST
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3'
*** Drop t3 ***
DROP TABLE t3;
*** Create t4 on slave ***
@@ -108,10 +103,8 @@ INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3'
*** Drop t4 ***
DROP TABLE t4;
*** Create t5 on slave ***
@@ -133,10 +126,8 @@ INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246'
*** Drop t5 ***
DROP TABLE t5;
*** Create t6 on slave ***
@@ -157,7 +148,8 @@ INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
-Last_SQL_Error = Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3'
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
*** Drop t6 ***
DROP TABLE t6;
@@ -237,6 +229,7 @@ a b c d e f g h i
1 b1b1b1b1b1b1b1b1 Kyle 0000-00-00 00:00:00 0 NULL NULL
2 b1b1b1b1b1b1b1b1 JOE 0000-00-00 00:00:00 0 NULL NULL
3 b1b1b1b1b1b1b1b1 QA 0000-00-00 00:00:00 0 NULL NULL
+DROP TABLE t9;
*** Create t10 on slave ***
STOP SLAVE;
RESET SLAVE;
@@ -255,10 +248,8 @@ INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5'
*** Drop t10 ***
DROP TABLE t10;
*** Create t11 on slave ***
@@ -279,10 +270,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252'
*** Drop t11 ***
DROP TABLE t11;
*** Create t12 on slave ***
@@ -439,6 +428,7 @@ c1 c4 c5 c6 c7
4 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
5 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
6 b1b1b1b1b1b1b1b1 NULL 1 CURRENT_TIMESTAMP
+DROP TABLE t14a;
*** connect to master and drop columns ***
ALTER TABLE t14 DROP COLUMN c2;
ALTER TABLE t14 DROP COLUMN c4;
@@ -492,10 +482,8 @@ ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
********************************************
*** Expect slave to fail with Error 1060 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1060]
+Last_SQL_Error = 'Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5''
*** Try to insert in master ****
INSERT INTO t15 () VALUES(5,2.00,'Replication Testing',@b1,'Buda',2);
SELECT * FROM t15 ORDER BY c1;
@@ -595,9 +583,8 @@ INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2'
** DROP table t17 ***
DROP TABLE t17;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_failed_optimize.result b/mysql-test/suite/rpl/r/rpl_failed_optimize.result
index 7210898d521..b0c331fa557 100644
--- a/mysql-test/suite/rpl/r/rpl_failed_optimize.result
+++ b/mysql-test/suite/rpl/r/rpl_failed_optimize.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 ( a int ) ENGINE=InnoDB;
BEGIN;
INSERT INTO t1 VALUES (1);
@@ -23,3 +19,4 @@ a
1
commit;
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result b/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
index 5f1f72a9a3a..4eaf61e5f9e 100644
--- a/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
+++ b/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (id int, a int);
CREATE TABLE t2 (id int, b int);
CREATE TABLE t3 (id int, c int);
@@ -47,85 +43,53 @@ UPDATE t4 LEFT JOIN (t1, t6, t7) ON (t4.id=t1.id and t4.id=t6.id and t4.id=t7.id
UPDATE t7 LEFT JOIN (t4, t1, t2) ON (t7.id=t4.id and t7.id=t1.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1;
UPDATE t7 LEFT JOIN (t8, t4, t1) ON (t7.id=t8.id and t7.id=t4.id and t7.id=t1.id) SET a=0, d=0, g=0, h=0 where t7.id=1;
UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t4, t7) ON (t1.id=t4.id and t1.id=t7.id) SET a=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t7) ON (t1.id=t4.id and t1.id=t7.id) SET a=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t7) ON (t1.id=t4.id and t1.id=t7.id) SET a=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t2, t4, t7) ON (t1.id=t2.id and t1.id=t4.id and t1.id=t7.id) SET a=0, b=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t2, t4, t7) ON (t1.id=t2.id and t1.id=t4.id and t1.id=t7.id) SET a=0, b=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t2, t4, t7) ON (t1.id=t2.id and t1.id=t4.id and t1.id=t7.id) SET a=0, b=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t2, t3, t7) ON (t1.id=t2.id and t1.id=t3.id and t1.id=t7.id) SET a=0, b=0, c=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t2, t3, t7) ON (t1.id=t2.id and t1.id=t3.id and t1.id=t7.id) SET a=0, b=0, c=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t2, t3, t7) ON (t1.id=t2.id and t1.id=t3.id and t1.id=t7.id) SET a=0, b=0, c=0 where t1.id=1''
UPDATE t1 LEFT JOIN t7 ON (t1.id=t7.id) SET a=0, g=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t7 ON (t1.id=t7.id) SET a=0, g=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t7 ON (t1.id=t7.id) SET a=0, g=0 where t1.id=1''
UPDATE t7 LEFT JOIN t1 ON (t1.id=t7.id) SET a=0, g=0 where t7.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN t1 ON (t1.id=t7.id) SET a=0, g=0 where t7.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN t1 ON (t1.id=t7.id) SET a=0, g=0 where t7.id=1''
UPDATE t1 LEFT JOIN (t4, t5, t7) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t7.id) SET a=0, g=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t5, t7) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t7.id) SET a=0, g=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t5, t7) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t7.id) SET a=0, g=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t4, t7, t8) ON (t1.id=t4.id and t1.id=t7.id and t1.id=t8.id) SET a=0, g=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t7, t8) ON (t1.id=t4.id and t1.id=t7.id and t1.id=t8.id) SET a=0, g=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t7, t8) ON (t1.id=t4.id and t1.id=t7.id and t1.id=t8.id) SET a=0, g=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t7, t8, t9) ON (t1.id=t7.id and t1.id=t8.id and t1.id=t9.id) SET a=0, g=0, h=0, i=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t7, t8, t9) ON (t1.id=t7.id and t1.id=t8.id and t1.id=t9.id) SET a=0, g=0, h=0, i=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t7, t8, t9) ON (t1.id=t7.id and t1.id=t8.id and t1.id=t9.id) SET a=0, g=0, h=0, i=0 where t1.id=1''
UPDATE t7 LEFT JOIN (t1, t2, t3) ON (t7.id=t1.id and t7.id=t2.id and t7.id=t3.id) SET g=0, a=0, b=0, c=0 where t7.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t1, t2, t3) ON (t7.id=t1.id and t7.id=t2.id and t7.id=t3.id) SET g=0, a=0, b=0, c=0 where t7.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t1, t2, t3) ON (t7.id=t1.id and t7.id=t2.id and t7.id=t3.id) SET g=0, a=0, b=0, c=0 where t7.id=1''
UPDATE t7 LEFT JOIN (t4, t5, t3) ON (t7.id=t4.id and t7.id=t5.id and t7.id=t3.id) SET g=0, c=0 where t7.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t4, t5, t3) ON (t7.id=t4.id and t7.id=t5.id and t7.id=t3.id) SET g=0, c=0 where t7.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t4, t5, t3) ON (t7.id=t4.id and t7.id=t5.id and t7.id=t3.id) SET g=0, c=0 where t7.id=1''
UPDATE t7 LEFT JOIN (t8, t9, t3) ON (t7.id=t8.id and t7.id=t9.id and t7.id=t3.id) SET g=0, h=0, i=0, c=0 where t7.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t8, t9, t3) ON (t7.id=t8.id and t7.id=t9.id and t7.id=t3.id) SET g=0, h=0, i=0, c=0 where t7.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t8, t9, t3) ON (t7.id=t8.id and t7.id=t9.id and t7.id=t3.id) SET g=0, h=0, i=0, c=0 where t7.id=1''
UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0, d=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0, d=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN t4 ON (t1.id=t4.id) SET a=0, d=0 where t1.id=1''
UPDATE t1 LEFT JOIN (t4, t5, t6) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t6.id) SET a=0, d=0, e=0, f=0 where t1.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t5, t6) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t6.id) SET a=0, d=0, e=0, f=0 where t1.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t1 LEFT JOIN (t4, t5, t6) ON (t1.id=t4.id and t1.id=t5.id and t1.id=t6.id) SET a=0, d=0, e=0, f=0 where t1.id=1''
UPDATE t4 LEFT JOIN (t1, t5, t6) ON (t4.id=t1.id and t4.id=t5.id and t4.id=t6.id) SET a=0, e=0, f=0 where t4.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t4 LEFT JOIN (t1, t5, t6) ON (t4.id=t1.id and t4.id=t5.id and t4.id=t6.id) SET a=0, e=0, f=0 where t4.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t4' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t4 LEFT JOIN (t1, t5, t6) ON (t4.id=t1.id and t4.id=t5.id and t4.id=t6.id) SET a=0, e=0, f=0 where t4.id=1''
UPDATE t7 LEFT JOIN (t1, t4, t2) ON (t7.id=t1.id and t7.id=t4.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t1, t4, t2) ON (t7.id=t1.id and t7.id=t4.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1146]
+Last_SQL_Error = 'Error 'Table 'test.t7' doesn't exist' on query. Default database: 'test'. Query: 'UPDATE t7 LEFT JOIN (t1, t4, t2) ON (t7.id=t1.id and t7.id=t4.id and t7.id=t2.id) SET a=0, b=0, d=0, g=0 where t7.id=1''
[on slave]
show tables like 't%';
Tables_in_test (t%)
@@ -149,3 +113,4 @@ id c
3 3
[on master]
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
index 3bb96b669d7..b6dbe9f5b48 100644
--- a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
+++ b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
@@ -1,27 +1,15 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_init.inc [topology=1->2->1]
show variables like 'relay_log%';
Variable_name Value
-relay_log MYSQLD_DATADIR/relay-log
+relay_log
relay_log_index
relay_log_info_file relay-log.info
relay_log_purge ON
relay_log_space_limit 0
-stop slave;
-change master to master_host='127.0.0.1',master_user='root',
-master_password='',master_port=MASTER_PORT;
-start slave;
-stop slave;
-change master to master_host='127.0.0.1',master_user='root',
-master_password='',master_port=SLAVE_PORT;
-include/start_slave.inc
CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
INSERT INTO t1 VALUE(1);
FLUSH LOGS;
INSERT INTO t1 VALUE(2);
-Checking that both slave threads are running.
-Relay_Log_File relay-log.000003
+include/check_slave_is_running.inc
+Relay_Log_File = 'mysqld-relay-bin.000003'
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result b/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result
index e7a912b75fa..038a29c12e2 100644
--- a/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT AUTO_INCREMENT KEY) ENGINE=INNODB;
CREATE TABLE t2 (b INT AUTO_INCREMENT KEY, c INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE=INNODB;
SET FOREIGN_KEY_CHECKS=0;
@@ -53,3 +49,4 @@ select count(*) from t1 /* must be zero */;
count(*)
0
drop table t2,t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_found_rows.result b/mysql-test/suite/rpl/r/rpl_found_rows.result
index 45a931872cf..f1f8cc6d32d 100644
--- a/mysql-test/suite/rpl/r/rpl_found_rows.result
+++ b/mysql-test/suite/rpl/r/rpl_found_rows.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== 0. Setting it all up ====
SET BINLOG_FORMAT=STATEMENT;
**** On Master ****
@@ -102,11 +98,7 @@ DELETE FROM logtbl;
DROP PROCEDURE just_log;
DROP PROCEDURE calc_and_log;
DROP FUNCTION log_rows;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
#### 2. Using mixed mode ####
==== 2.1. Checking a procedure ====
**** On Master ****
@@ -231,3 +223,4 @@ DROP PROCEDURE just_log;
DROP PROCEDURE log_me;
DROP PROCEDURE log_me_inner;
DROP FUNCTION log_rows;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_free_items.result b/mysql-test/suite/rpl/r/rpl_free_items.result
index 91c1e2aa6e5..416f597aebc 100644
--- a/mysql-test/suite/rpl/r/rpl_free_items.result
+++ b/mysql-test/suite/rpl/r/rpl_free_items.result
@@ -1,10 +1,7 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int);
create table t2 (a int);
drop table t1;
drop table t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_geometry.result b/mysql-test/suite/rpl/r/rpl_geometry.result
index 9b48dba4f22..7ec119c9ae8 100644
--- a/mysql-test/suite/rpl/r/rpl_geometry.result
+++ b/mysql-test/suite/rpl/r/rpl_geometry.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a varchar(100),
b multipoint not null,
c varchar(256));
@@ -16,3 +12,4 @@ b geometrycollection default null,
c decimal(10,0));
insert into t2(c) values (null);
drop table t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_get_lock.result b/mysql-test/suite/rpl/r/rpl_get_lock.result
index cbad759b17f..8250ca348e6 100644
--- a/mysql-test/suite/rpl/r/rpl_get_lock.result
+++ b/mysql-test/suite/rpl/r/rpl_get_lock.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
create table t1(n int);
insert into t1 values(get_lock("lock",2));
@@ -34,3 +30,4 @@ select is_free_lock(NULL);
is_free_lock(NULL)
NULL
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
index 432bcfcc94d..32d24e5867a 100644
--- a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
+++ b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
@@ -1,33 +1,32 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*");
call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*");
call mtr.add_suppression("Slave I/O thread .* register on master");
-stop slave;
+include/stop_slave.inc
SET @@global.debug= "+d,'debug_lock.before_get_UNIX_TIMESTAMP'";
-start slave;
+include/start_slave.inc
slave is going to hang in get_master_version_and_clock
+include/rpl_stop_server.inc [server_number=1]
slave is unblocked
SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp';
Check network error happened here
+include/wait_for_slave_io_error.inc [errno=1040, 1053, 2002, 2003, 2006, 2013]
set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'";
-stop slave;
+include/rpl_start_server.inc [server_number=1]
+include/wait_for_slave_param.inc [Slave_IO_Running]
+include/stop_slave.inc
SET @@global.debug= "+d,'debug_lock.before_get_SERVER_ID'";
-start slave;
+include/start_slave.inc
slave is going to hang in get_master_version_and_clock
+include/rpl_stop_server.inc [server_number=1]
slave is unblocked
SET DEBUG_SYNC='now SIGNAL signal.get_server_id';
Check network error happened here
+include/wait_for_slave_io_error.inc [errno=1040, 1053, 2002, 2003, 2006, 2013]
set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'";
+include/rpl_start_server.inc [server_number=1]
+include/wait_for_slave_param.inc [Slave_IO_Running]
set global debug= '';
-reset master;
-include/stop_slave.inc
-change master to master_port=SLAVE_PORT;
-start slave;
-*** must be having the replicate-same-server-id IO thread error ***
-Last_IO_Error = Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
SET DEBUG_SYNC= 'RESET';
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_grant.result b/mysql-test/suite/rpl/r/rpl_grant.result
index 285d52b7678..4ec8c51a5dc 100644
--- a/mysql-test/suite/rpl/r/rpl_grant.result
+++ b/mysql-test/suite/rpl/r/rpl_grant.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** On Master ****
CREATE USER dummy@localhost;
CREATE USER dummy1@localhost, dummy2@localhost;
@@ -41,3 +37,4 @@ user host
SELECT COUNT(*) FROM mysql.user WHERE user like 'dummy%';
COUNT(*)
0
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_idempotency.result b/mysql-test/suite/rpl/r/rpl_idempotency.result
index bfdcbc6fa23..1ae2d0b9ee5 100644
--- a/mysql-test/suite/rpl/r/rpl_idempotency.result
+++ b/mysql-test/suite/rpl/r/rpl_idempotency.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032");
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
@@ -32,8 +28,7 @@ SELECT * FROM t2 ORDER BY a;
a
-3
-1
-Last_SQL_Error
-0
+include/check_slave_no_error.inc
INSERT IGNORE INTO t1 VALUES (-2);
INSERT IGNORE INTO t1 VALUES (-2);
SELECT * FROM t1 ORDER BY a;
@@ -46,8 +41,7 @@ a
-3
-2
-1
-Last_SQL_Error
-0
+include/check_slave_no_error.inc
UPDATE t1 SET a = 1 WHERE a = -1;
UPDATE t2 SET a = 1 WHERE a = -1;
UPDATE t1 SET a = 1 WHERE a = -1;
@@ -70,8 +64,7 @@ SELECT * FROM t2 ORDER BY a;
a
-3
1
-Last_SQL_Error
-0
+include/check_slave_no_error.inc
DROP TABLE t1, t2;
select @@global.slave_exec_mode /* must be IDEMPOTENT */;
@@global.slave_exec_mode
@@ -143,8 +136,7 @@ b
2
3
*** slave must stop (Trying to delete a referenced foreing key)
-Last_SQL_Error
-1451
+include/wait_for_slave_sql_error.inc [errno=1451]
select * from ti1 order by b /* must be (1),(2),(3) - not deleted */;
b
1
@@ -161,8 +153,7 @@ set global slave_exec_mode='STRICT';
delete from ti1 where b=3;
insert into ti2 set a=3, b=3 /* offending write event */;
*** slave must stop (Trying to insert an invalid foreign key)
-Last_SQL_Error
-1452
+include/wait_for_slave_sql_error.inc [errno=1452]
select * from ti2 order by b /* must be (2,2) */;
a b
2 2
@@ -181,8 +172,7 @@ a b
insert into ti1 set b=1;
insert into ti1 set b=1 /* offending write event */;
*** slave must stop (Trying to insert a dupliacte key)
-Last_SQL_Error
-1062
+include/wait_for_slave_sql_error.inc [errno=1062]
set foreign_key_checks= 0;
delete from ti1 where b=1;
set foreign_key_checks= 1;
@@ -197,15 +187,13 @@ DELETE FROM t1 WHERE a = -2;
DELETE FROM t2 WHERE a = -2;
DELETE FROM t1 WHERE a = -2;
*** slave must stop (Key was not found)
-Last_SQL_Error
-1032
+include/wait_for_slave_sql_error.inc [errno=1032]
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
set global slave_exec_mode='STRICT';
DELETE FROM t2 WHERE a = -2;
*** slave must stop (Key was not found)
-Last_SQL_Error
-1032
+include/wait_for_slave_sql_error.inc [errno=1032]
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
set global slave_exec_mode='STRICT';
@@ -213,18 +201,17 @@ UPDATE t1 SET a = 1 WHERE a = -1;
UPDATE t2 SET a = 1 WHERE a = -1;
UPDATE t1 SET a = 1 WHERE a = -1;
*** slave must stop (Key was not found)
-Last_SQL_Error
-1032
+include/wait_for_slave_sql_error.inc [errno=1032]
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
set global slave_exec_mode='STRICT';
UPDATE t2 SET a = 1 WHERE a = -1;
*** slave must stop (Key was not found)
-Last_SQL_Error
-1032
+include/wait_for_slave_sql_error.inc [errno=1032]
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
SET @@global.slave_exec_mode= @old_slave_exec_mode;
set @@session.binlog_format= @save_binlog_format;
drop table t1,t2,ti2,ti1;
+include/rpl_end.inc
*** end of tests
diff --git a/mysql-test/suite/rpl/r/rpl_ignore_grant.result b/mysql-test/suite/rpl/r/rpl_ignore_grant.result
index 5169cc8e888..ae6d6ddfc8d 100644
--- a/mysql-test/suite/rpl/r/rpl_ignore_grant.result
+++ b/mysql-test/suite/rpl/r/rpl_ignore_grant.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges;
@@ -35,3 +31,4 @@ flush privileges;
delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_ignore_revoke.result b/mysql-test/suite/rpl/r/rpl_ignore_revoke.result
index b1ccd2f0442..84e1a3b40c7 100644
--- a/mysql-test/suite/rpl/r/rpl_ignore_revoke.result
+++ b/mysql-test/suite/rpl/r/rpl_ignore_revoke.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
revoke select on *.* from 'user_foo'@'%';
select select_priv from mysql.user where user='user_foo' /* master:must be N */;
@@ -28,3 +24,4 @@ Y
revoke select on *.* FROM 'user_foo';
delete from mysql.user where user="user_foo";
delete from mysql.user where user="user_foo";
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_ignore_table.result b/mysql-test/suite/rpl/r/rpl_ignore_table.result
index 6b845ddcac9..2e3fd62fbec 100644
--- a/mysql-test/suite/rpl/r/rpl_ignore_table.result
+++ b/mysql-test/suite/rpl/r/rpl_ignore_table.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** Test case for BUG#16487 ****
**** Master ****
CREATE TABLE test.t4 (a int);
@@ -141,4 +137,4 @@ HEX(word)
SELECT * FROM tmptbl504451f4258$1;
ERROR 42S02: Table 'test.tmptbl504451f4258$1' doesn't exist
DROP TABLE t5;
-call mtr.force_restart();
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_ignore_table_update.result b/mysql-test/suite/rpl/r/rpl_ignore_table_update.result
index a88a3c690ed..c3882d0b98f 100644
--- a/mysql-test/suite/rpl/r/rpl_ignore_table_update.result
+++ b/mysql-test/suite/rpl/r/rpl_ignore_table_update.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
use test;
drop table if exists mysqltest_foo;
drop table if exists mysqltest_bar;
@@ -21,3 +17,4 @@ n m k
4 15 55
drop table mysqltest_foo,mysqltest_bar,t1;
drop table mysqltest_foo,mysqltest_bar,t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_incident.result b/mysql-test/suite/rpl/r/rpl_incident.result
index 6c226aaf2f7..b54d7d400f7 100644
--- a/mysql-test/suite/rpl/r/rpl_incident.result
+++ b/mysql-test/suite/rpl/r/rpl_incident.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** On Master ****
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2),(3);
@@ -19,7 +15,8 @@ a
2
3
4
-Last_SQL_Error = The incident LOST_EVENTS occured on the master. Message: <none>
+include/wait_for_slave_sql_error.inc [errno=1590]
+Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: <none>'
**** On Slave ****
SELECT * FROM t1;
a
@@ -34,5 +31,6 @@ a
2
3
4
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_init_slave.result b/mysql-test/suite/rpl/r/rpl_init_slave.result
index 908abf56c1f..fcf7114879c 100644
--- a/mysql-test/suite/rpl/r/rpl_init_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_init_slave.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set global max_connections=151;
include/stop_slave.inc
include/start_slave.inc
@@ -25,6 +21,6 @@ set global init_connect="set @c=1";
show variables like 'init_connect';
Variable_name Value
init_connect set @c=1
-include/stop_slave.inc
set global init_connect= @my_global_init_connect;
set global max_connections= default;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_init_slave_errors.result b/mysql-test/suite/rpl/r/rpl_init_slave_errors.result
index c6ee82b13f3..46bc66cbb65 100644
--- a/mysql-test/suite/rpl/r/rpl_init_slave_errors.result
+++ b/mysql-test/suite/rpl/r/rpl_init_slave_errors.result
@@ -1,19 +1,19 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
stop slave;
reset slave;
SET GLOBAL debug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init";
start slave;
-Reporting the following error: Failed during slave thread initialization
+include/wait_for_slave_sql_error.inc [errno=1593]
+Last_SQL_Error = 'Failed during slave thread initialization'
call mtr.add_suppression("Failed during slave I/O thread initialization");
SET GLOBAL debug= "";
-stop slave;
reset slave;
SET GLOBAL init_slave= "garbage";
start slave;
-Reporting the following error: Slave SQL thread aborted. Can't execute init_slave query
+include/wait_for_slave_sql_error.inc [errno=1064]
+Last_SQL_Error = 'Slave SQL thread aborted. Can't execute init_slave query'
SET GLOBAL init_slave= "";
+include/stop_slave_io.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_innodb.result b/mysql-test/suite/rpl/r/rpl_innodb.result
index bf6c3cb8c86..fe3feba10e1 100644
--- a/mysql-test/suite/rpl/r/rpl_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t4 (
id INT(5) unsigned NOT NULL auto_increment,
name varchar(15) NOT NULL default '',
@@ -81,4 +77,5 @@ FLUSH LOGS;
-------- switch to master --------
FLUSH LOGS;
DROP DATABASE mysqltest1;
+include/rpl_end.inc
End of 5.1 tests
diff --git a/mysql-test/suite/rpl/r/rpl_innodb_bug28430.result b/mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
index 6ad22c368b4..f8734b48295 100644
--- a/mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
+++ b/mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
use test;
CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
@@ -140,3 +136,4 @@ DROP PROCEDURE test.proc_byrange;
DROP TABLE test.regular_tbl;
DROP TABLE test.bykey_tbl;
DROP TABLE test.byrange_tbl;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_innodb_bug30888.result b/mysql-test/suite/rpl/r/rpl_innodb_bug30888.result
index abff02b4b07..d06e6681e81 100644
--- a/mysql-test/suite/rpl/r/rpl_innodb_bug30888.result
+++ b/mysql-test/suite/rpl/r/rpl_innodb_bug30888.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
use test;
CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
@@ -33,3 +29,4 @@ END|
CALL test.proc_norm();
DROP PROCEDURE test.proc_norm;
DROP TABLE test.regular_tbl;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result b/mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result
index 549842198e8..36294a4333b 100644
--- a/mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result
+++ b/mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==========MASTER==========
show global variables like 'binlog_format%';
Variable_name Value
@@ -157,3 +153,4 @@ master-bin.000001 # Query # # use `test_rpl`; CREATE INDEX index2 on t2 (d)
master-bin.000001 # Query # # use `test_rpl`; CREATE INDEX index3 on t2 (a, d)
master-bin.000001 # Query # # use `test_rpl`; ALTER TABLE t2 DROP COLUMN d
drop database test_rpl;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result b/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
index d076a24e1f0..acecb7a88be 100644
--- a/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
+++ b/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==========MASTER==========
show global variables like 'binlog_format%';
Variable_name Value
@@ -1104,3 +1100,4 @@ master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test_rpl`; DELETE FROM t2
master-bin.000001 # Xid # # COMMIT /* XID */
drop database test_rpl;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_insert.result b/mysql-test/suite/rpl/r/rpl_insert.result
index b6a97926f73..8ab90fceed2 100644
--- a/mysql-test/suite/rpl/r/rpl_insert.result
+++ b/mysql-test/suite/rpl/r/rpl_insert.result
@@ -1,12 +1,8 @@
#
# Bug#20821: INSERT DELAYED fails to write some rows to binlog
#
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE SCHEMA IF NOT EXISTS mysqlslap;
USE mysqlslap;
CREATE TABLE t1 (id INT, name VARCHAR(64));
@@ -21,3 +17,4 @@ COUNT(*)
#
USE test;
DROP SCHEMA mysqlslap;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_insert_id.result b/mysql-test/suite/rpl/r/rpl_insert_id.result
index e171e247b6c..7ac951576ce 100644
--- a/mysql-test/suite/rpl/r/rpl_insert_id.result
+++ b/mysql-test/suite/rpl/r/rpl_insert_id.result
@@ -2,19 +2,14 @@
# Setup
#
use test;
-drop table if exists t1, t2, t3;
#
# See if queries that use both auto_increment and LAST_INSERT_ID()
# are replicated well
#
# We also check how the foreign_key_check variable is replicated
#
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET @old_concurrent_insert= @@global.concurrent_insert;
SET @@global.concurrent_insert= 0;
create table t1(a int auto_increment, key(a)) engine=myisam;
@@ -531,3 +526,4 @@ id last_id
drop table t1, t2;
drop procedure foo;
SET @@global.concurrent_insert= @old_concurrent_insert;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_insert_id_pk.result b/mysql-test/suite/rpl/r/rpl_insert_id_pk.result
index 79815355332..c2d6d2c9b0c 100644
--- a/mysql-test/suite/rpl/r/rpl_insert_id_pk.result
+++ b/mysql-test/suite/rpl/r/rpl_insert_id_pk.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int auto_increment, primary key(a));
create table t2(b int auto_increment, c int, primary key(b));
insert into t1 values (1),(2),(3);
@@ -74,3 +70,4 @@ SET FOREIGN_KEY_CHECKS=0;
INSERT INTO t1 VALUES (1),(1);
Got one of the listed errors
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_insert_ignore.result b/mysql-test/suite/rpl/r/rpl_insert_ignore.result
index da24c86627c..6937c3d0987 100644
--- a/mysql-test/suite/rpl/r/rpl_insert_ignore.result
+++ b/mysql-test/suite/rpl/r/rpl_insert_ignore.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
b int unsigned,
@@ -68,3 +64,4 @@ a b
5 5
6 6
drop table t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_insert_select.result b/mysql-test/suite/rpl/r/rpl_insert_select.result
index 1aff39e0026..d98ae2538fa 100644
--- a/mysql-test/suite/rpl/r/rpl_insert_select.result
+++ b/mysql-test/suite/rpl/r/rpl_insert_select.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (n int not null primary key);
insert into t1 values (1);
create table t2 (n int);
@@ -15,3 +11,4 @@ n
1
2
drop table t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_invoked_features.result b/mysql-test/suite/rpl/r/rpl_invoked_features.result
index be9169c785b..514483e7995 100644
--- a/mysql-test/suite/rpl/r/rpl_invoked_features.result
+++ b/mysql-test/suite/rpl/r/rpl_invoked_features.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
USE test;
DROP VIEW IF EXISTS v1,v11;
DROP TABLE IF EXISTS t1,t2,t3,t11,t12,t13;
@@ -447,3 +443,4 @@ DROP FUNCTION IF EXISTS f1;
DROP FUNCTION IF EXISTS f2;
DROP EVENT IF EXISTS e1;
DROP EVENT IF EXISTS e11;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_killed_ddl.result b/mysql-test/suite/rpl/r/rpl_killed_ddl.result
index c3cde16b9d2..a02c9b599bf 100644
--- a/mysql-test/suite/rpl/r/rpl_killed_ddl.result
+++ b/mysql-test/suite/rpl/r/rpl_killed_ddl.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS d1;
DROP DATABASE IF EXISTS d2;
DROP DATABASE IF EXISTS d3;
@@ -59,62 +55,62 @@ CREATE VIEW v1 AS SELECT a FROM t1 WHERE a < 100;
[on master1]
CREATE DATABASE d2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP DATABASE d1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP DATABASE IF EXISTS d2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE EVENT e2
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
DO INSERT INTO test.t1 VALUES (2);
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP EVENT e1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP EVENT IF EXISTS e2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE FUNCTION f2 () RETURNS INT DETERMINISTIC
RETURN 1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
ALTER FUNCTION f1 SQL SECURITY INVOKER;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP FUNCTION f1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE PROCEDURE p2 (OUT rows INT)
BEGIN
SELECT COUNT(*) INTO rows FROM t2;
END;
//
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
ALTER PROCEDURE p1 SQL SECURITY INVOKER COMMENT 'return rows of table t1';
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP PROCEDURE p1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE TABLE t2 (b int);
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
ALTER TABLE t1 ADD (d int);
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
RENAME TABLE t3 TO t4;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE INDEX i2 on t1 (a);
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP INDEX i1 on t1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE TABLE IF NOT EXISTS t4 (a int);
CREATE TRIGGER tr2 BEFORE INSERT ON t4
FOR EACH ROW BEGIN
@@ -122,28 +118,28 @@ DELETE FROM t1 WHERE a=NEW.a;
END;
//
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP TRIGGER tr1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP TRIGGER IF EXISTS tr2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
CREATE VIEW v2 AS SELECT a FROM t1 WHERE a > 100;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP VIEW v1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP VIEW IF EXISTS v2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP TABLE t1;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP TABLE IF EXISTS t2;
source include/kill_query.inc;
-source include/diff_master_slave.inc;
+include/rpl_diff.inc
DROP DATABASE IF EXISTS d1;
DROP DATABASE IF EXISTS d2;
DROP DATABASE IF EXISTS d3;
@@ -168,3 +164,4 @@ DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
DROP PROCEDURE IF EXISTS p3;
DROP PROCEDURE IF EXISTS p4;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result b/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
index daefee9c669..52980e81523 100644
--- a/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
+++ b/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
UNIQUE(b));
INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
@@ -11,7 +7,8 @@ SELECT * FROM t1;
a b
1 10
2 2
-Last_SQL_Error = Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10'
+include/wait_for_slave_sql_error.inc [errno=1105]
+Last_SQL_Error = 'Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10''
SELECT * FROM t1;
a b
stop slave;
@@ -56,12 +53,16 @@ id field_1 field_2 field_3
4 4 d 4d
5 5 e 5e
6 6 f 6f
-Last_SQL_Error = Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1 (field_1, field_2, field_3)
+include/wait_for_slave_sql_error.inc [errno=1105]
+Last_SQL_Error = 'Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1 (field_1, field_2, field_3)
SELECT t2.field_a, t2.field_b, t2.field_c
FROM t2
ON DUPLICATE KEY UPDATE
-t1.field_3 = t2.field_c'
+t1.field_3 = t2.field_c''
SELECT * FROM t1;
id field_1 field_2 field_3
drop table t1, t2;
drop table t1, t2;
+include/stop_slave_io.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_load_from_master.result b/mysql-test/suite/rpl/r/rpl_load_from_master.result
index e1c2ecb35be..8ff9514d023 100644
--- a/mysql-test/suite/rpl/r/rpl_load_from_master.result
+++ b/mysql-test/suite/rpl/r/rpl_load_from_master.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest;
drop database if exists mysqltest2;
drop database if exists mysqltest3;
@@ -131,3 +127,4 @@ drop database mysqltest;
drop database mysqltest2;
drop database mysqltest2;
drop database mysqltest3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_load_table_from_master.result b/mysql-test/suite/rpl/r/rpl_load_table_from_master.result
index 9d9a1d7d6cb..50bd11873f1 100644
--- a/mysql-test/suite/rpl/r/rpl_load_table_from_master.result
+++ b/mysql-test/suite/rpl/r/rpl_load_table_from_master.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
"******************** Test Requirment 1 *************"
SET SQL_LOG_BIN=0,timestamp=200006;
CREATE TABLE t1(t TIMESTAMP NOT NULL,a CHAR(1))ENGINE=MyISAM;
@@ -49,3 +45,4 @@ set SQL_LOG_BIN=1;
drop table if exists t1,t2,t3;
create table t1(n int);
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata.result b/mysql-test/suite/rpl/r/rpl_loaddata.result
index 32ec2e624e2..bd8bc5093aa 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata.result
@@ -1,10 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-reset master;
+include/master-slave.inc
+[connection master]
select last_insert_id();
last_insert_id()
0
@@ -32,32 +27,27 @@ drop table t3;
create table t1(a int, b int, unique(b));
insert into t1 values(1,10);
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
-set global sql_slave_skip_counter=1;
-start slave;
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
+include/check_slave_no_error.inc
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
-stop slave;
+include/wait_for_slave_sql_error.inc [errno=1062]
+include/stop_slave_io.inc
change master to master_user='test';
change master to master_user='root';
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/check_slave_no_error.inc
set global sql_slave_skip_counter=1;
start slave;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+include/wait_for_slave_sql_error.inc [errno=1062]
stop slave;
reset slave;
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/check_slave_no_error.inc
reset master;
create table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60),
unique(day)) engine=MyISAM;
@@ -80,18 +70,15 @@ load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
ERROR 23000: Duplicate entry '2003-03-22' for key 'day'
+include/wait_for_slave_sql_to_stop.inc
drop table t1, t2;
+include/stop_slave_io.inc
drop table t1, t2;
CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;
LOAD DATA INFILE "../../std_data/words.dat" INTO TABLE t1;
ERROR 23000: Duplicate entry 'Aarhus' for key 'PRIMARY'
DROP TABLE IF EXISTS t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
drop database if exists b48297_db1;
drop database if exists b42897_db2;
create database b48297_db1;
@@ -112,15 +99,10 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/std_data/loaddata5.dat' INTO TABLE t1;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/std_data/loaddata5.dat' INTO TABLE b48297_db1.t1;
### disconnect and switch back to master connection
use b48297_db1;
-Comparing tables master:b48297_db1.t1 and slave:b48297_db1.t1
+include/diff_tables.inc [master:b48297_db1.t1, slave:b48297_db1.t1]
DROP DATABASE b48297_db1;
DROP DATABASE b42897_db2;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
use test;
CREATE TABLE t1 (`key` TEXT, `text` TEXT);
LOAD DATA INFILE '../../std_data/loaddata2.dat' REPLACE INTO TABLE `t1` FIELDS TERMINATED BY ',';
@@ -132,3 +114,4 @@ Field 3 'Field 4'
'Field 5' 'Field 6'
Field 6 'Field 7'
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_charset.result b/mysql-test/suite/rpl/r/rpl_loaddata_charset.result
index e0971b84e3d..6b60bffa365 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_charset.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_charset.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a varchar(10) character set utf8);
load data infile '../../std_data/loaddata6.dat' into table t1;
set @@character_set_database=koi8r;
@@ -76,3 +72,4 @@ E4B880E4BA8CE4B889
E59B9BE4BA94E585AD
E4B883E585ABE4B99D
DROP DATABASE mysqltest;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result b/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result
index 126cc07f45f..bc40f32842d 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result
@@ -9,13 +9,8 @@ master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../s
master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=#
master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA CONCURRENT INFILE '../../std_data/words.dat' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`c1`) ;file_id=#
DROP TABLE t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-reset master;
+include/master-slave.inc
+[connection master]
select last_insert_id();
last_insert_id()
0
@@ -43,32 +38,27 @@ drop table t3;
create table t1(a int, b int, unique(b));
insert into t1 values(1,10);
load data CONCURRENT infile '../../std_data/rpl_loaddata.dat' into table t1;
-set global sql_slave_skip_counter=1;
-start slave;
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
+include/check_slave_no_error.inc
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data CONCURRENT infile '../../std_data/rpl_loaddata.dat' into table t1;
-stop slave;
+include/wait_for_slave_sql_error.inc [errno=1062]
+include/stop_slave_io.inc
change master to master_user='test';
change master to master_user='root';
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/check_slave_no_error.inc
set global sql_slave_skip_counter=1;
start slave;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data CONCURRENT infile '../../std_data/rpl_loaddata.dat' into table t1;
+include/wait_for_slave_sql_error.inc [errno=1062]
stop slave;
reset slave;
-Last_SQL_Errno=0
-Last_SQL_Error
-
+include/check_slave_no_error.inc
reset master;
create table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60),
unique(day)) engine=MyISAM;
@@ -91,18 +81,15 @@ load data CONCURRENT infile '../../std_data/rpl_loaddata2.dat' into table t2 fie
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
ERROR 23000: Duplicate entry '2003-03-22' for key 'day'
+include/wait_for_slave_sql_to_stop.inc
drop table t1, t2;
+include/stop_slave_io.inc
drop table t1, t2;
CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;
LOAD DATA CONCURRENT INFILE "../../std_data/words.dat" INTO TABLE t1;
ERROR 23000: Duplicate entry 'Aarhus' for key 'PRIMARY'
DROP TABLE IF EXISTS t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
drop database if exists b48297_db1;
drop database if exists b42897_db2;
create database b48297_db1;
@@ -123,15 +110,10 @@ LOAD DATA CONCURRENT LOCAL INFILE 'MYSQLTEST_VARDIR/std_data/loaddata5.dat' INTO
LOAD DATA CONCURRENT LOCAL INFILE 'MYSQLTEST_VARDIR/std_data/loaddata5.dat' INTO TABLE b48297_db1.t1;
### disconnect and switch back to master connection
use b48297_db1;
-Comparing tables master:b48297_db1.t1 and slave:b48297_db1.t1
+include/diff_tables.inc [master:b48297_db1.t1, slave:b48297_db1.t1]
DROP DATABASE b48297_db1;
DROP DATABASE b42897_db2;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
use test;
CREATE TABLE t1 (`key` TEXT, `text` TEXT);
LOAD DATA INFILE '../../std_data/loaddata2.dat' REPLACE INTO TABLE `t1` FIELDS TERMINATED BY ',';
@@ -143,3 +125,4 @@ Field 3 'Field 4'
'Field 5' 'Field 6'
Field 6 'Field 7'
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result b/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result
index 9acc1ad93ac..a81813de19f 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result
@@ -1,14 +1,9 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT, b INT);
INSERT INTO t1 VALUES (1,10);
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1;
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Fatal error: Not enough memory
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1593]
+Last_SQL_Error = 'Fatal error: Not enough memory'
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_m.result b/mysql-test/suite/rpl/r/rpl_loaddata_m.result
index a1294d515fa..ad9fb6e0896 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_m.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_m.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest;
USE test;
CREATE TABLE t1(a INT, b INT, UNIQUE(b));
@@ -37,3 +33,4 @@ COUNT(*)
2
DROP DATABASE mysqltest;
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_map.result b/mysql-test/suite/rpl/r/rpl_loaddata_map.result
index 91624b15ef8..ca6271012dc 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_map.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_map.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Create a big file ====
==== Load our big file into a table ====
create table t2 (id int not null primary key auto_increment);
@@ -29,3 +25,4 @@ count(*)
==== Clean up ====
[on master]
drop table t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_s.result b/mysql-test/suite/rpl/r/rpl_loaddata_s.result
index 779a3af9631..351c5b584c5 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_s.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_s.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
reset master;
create table test.t1(a int, b int, unique(b));
load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
@@ -13,3 +9,4 @@ count(*)
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
drop table test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_simple.result b/mysql-test/suite/rpl/r/rpl_loaddata_simple.result
index 5e3923616ed..24a1a35470d 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_simple.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_simple.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (word CHAR(20) NOT NULL);
LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1;
SELECT * FROM t1 ORDER BY word;
@@ -151,3 +147,4 @@ Abernathy
aberrant
aberration
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_symlink.result b/mysql-test/suite/rpl/r/rpl_loaddata_symlink.result
index c7806f5ecce..c3b3c2232a6 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddata_symlink.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddata_symlink.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int not null auto_increment, b int, primary key(a) );
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
select * from t1;
@@ -15,3 +11,4 @@ a b
1 10
2 15
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loaddatalocal.result b/mysql-test/suite/rpl/r/rpl_loaddatalocal.result
index 6dccaa3d74c..37936871993 100644
--- a/mysql-test/suite/rpl/r/rpl_loaddatalocal.result
+++ b/mysql-test/suite/rpl/r/rpl_loaddatalocal.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int);
select * into outfile 'MYSQLD_DATADIR/rpl_loaddatalocal.select_outfile' from t1;
truncate table t1;
@@ -82,3 +78,4 @@ LOAD DATA LOCAL INFILE 'MYSQLD_DATADIR/bug43746.sql' INTO TABLE t1;
DROP TABLE t1;
SET SESSION sql_mode=@old_mode;
[slave]
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_loadfile.result b/mysql-test/suite/rpl/r/rpl_loadfile.result
index 22f65c0b5e5..640d1f72bf5 100644
--- a/mysql-test/suite/rpl/r/rpl_loadfile.result
+++ b/mysql-test/suite/rpl/r/rpl_loadfile.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, PRIMARY KEY(a));
@@ -225,11 +221,7 @@ aberration
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE test.t1;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
SELECT repeat('x',20) INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug_39701.data';
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (t text);
@@ -240,6 +232,7 @@ END|
include/stop_slave.inc
CALL p('MYSQLTEST_VARDIR/tmp/bug_39701.data');
include/start_slave.inc
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
DROP PROCEDURE p;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_locale.result b/mysql-test/suite/rpl/r/rpl_locale.result
index b7396084663..1f6bd40cd16 100644
--- a/mysql-test/suite/rpl/r/rpl_locale.result
+++ b/mysql-test/suite/rpl/r/rpl_locale.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (s1 char(10));
set lc_time_names= 'de_DE';
insert into t1 values (date_format('2001-01-01','%W'));
@@ -18,3 +14,4 @@ s1
Montag
Monday
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_log_pos.result b/mysql-test/suite/rpl/r/rpl_log_pos.result
index d9f02f6e82f..91d307008f0 100644
--- a/mysql-test/suite/rpl/r/rpl_log_pos.result
+++ b/mysql-test/suite/rpl/r/rpl_log_pos.result
@@ -1,19 +1,16 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression ("Slave I/O: Got fatal error 1236 from master when reading data from binary");
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
include/stop_slave.inc
change master to master_log_pos=MASTER_LOG_POS;
-Read_Master_Log_Pos 75
+Read_Master_Log_Pos = '75'
start slave;
-Last_IO_Error = Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'
-include/stop_slave.inc
+include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master''
+include/stop_slave_sql.inc
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
@@ -30,3 +27,4 @@ n
3
drop table t1;
End of 5.0 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result b/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
index 9061abca477..23238d9c97b 100644
--- a/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
+++ b/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
@@ -1,21 +1,18 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
FLUSH LOGS;
CREATE TABLE t1(c1 INT);
FLUSH LOGS;
call mtr.add_suppression('Got fatal error 1236 from master when reading data from binary log: .*could not find next log');
-Last_IO_Error
-Got fatal error 1236 from master when reading data from binary log: 'could not find next log'
+include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'could not find next log''
CREATE TABLE t2(c1 INT);
FLUSH LOGS;
CREATE TABLE t3(c1 INT);
FLUSH LOGS;
CREATE TABLE t4(c1 INT);
START SLAVE IO_THREAD;
+include/wait_for_slave_io_to_start.inc
SHOW TABLES;
Tables_in_test
t1
@@ -23,3 +20,4 @@ t2
t3
t4
DROP TABLE t1, t2, t3, t4;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_many_optimize.result b/mysql-test/suite/rpl/r/rpl_many_optimize.result
index b2148892591..53be9b48c7b 100644
--- a/mysql-test/suite/rpl/r/rpl_many_optimize.result
+++ b/mysql-test/suite/rpl/r/rpl_many_optimize.result
@@ -1,9 +1,6 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int not null auto_increment primary key, b int, key(b));
INSERT INTO t1 (a) VALUES (1),(2);
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_master_pos_wait.result b/mysql-test/suite/rpl/r/rpl_master_pos_wait.result
index edcae6e7506..bf4347757f7 100644
--- a/mysql-test/suite/rpl/r/rpl_master_pos_wait.result
+++ b/mysql-test/suite/rpl/r/rpl_master_pos_wait.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
select master_pos_wait('master-bin.999999',0,2);
master_pos_wait('master-bin.999999',0,2)
-1
@@ -22,3 +18,4 @@ show slave status;
select master_pos_wait('foo', 98);
master_pos_wait('foo', 98)
NULL
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_misc_functions.result b/mysql-test/suite/rpl/r/rpl_misc_functions.result
index 6d69235927e..c8f294a7558 100644
--- a/mysql-test/suite/rpl/r/rpl_misc_functions.result
+++ b/mysql-test/suite/rpl/r/rpl_misc_functions.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
create table t1(id int, i int, r1 int, r2 int, p varchar(100));
insert into t1 values(1, connection_id(), 0, 0, "");
@@ -54,3 +50,4 @@ DROP TABLE t1, t1_slave;
DROP PROCEDURE test_replication_sp1;
DROP PROCEDURE test_replication_sp2;
DROP FUNCTION test_replication_sf;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result b/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result
index f1b0b2ae5cb..2b5b31201cb 100644
--- a/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result
+++ b/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8;
CREATE TABLE t1 (`bit_key` bit, `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
CREATE TABLE t2 (`bit_key` bit(4), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
@@ -30,3 +26,4 @@ DELETE FROM `t7` WHERE `bit` < 2 LIMIT 4;
INSERT INTO `t8` ( `bit` ) VALUES ( 0 );
DELETE FROM `t8` WHERE `bit` < 2 LIMIT 4;
DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result b/mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result
index 08d3241c48f..b378276133e 100644
--- a/mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result
+++ b/mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (n int auto_increment primary key);
set insert_id = 2000;
insert into t1 values (NULL),(NULL),(NULL);
@@ -44,3 +40,4 @@ t5 CREATE TABLE `t5` (
`created` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2,t3,t5;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_delete.result b/mysql-test/suite/rpl/r/rpl_multi_delete.result
index 4831502eb88..ea1d87a3960 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_delete.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_delete.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int primary key);
create table t2 (a int);
insert into t1 values (1);
@@ -20,3 +16,4 @@ select * from t2;
a
1
drop table t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_delete2.result b/mysql-test/suite/rpl/r/rpl_multi_delete2.result
index 87abe60b268..51112345a1d 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_delete2.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_delete2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set sql_log_bin=0;
create database mysqltest_from;
set sql_log_bin=1;
@@ -42,3 +38,4 @@ set sql_log_bin=0;
drop database mysqltest_from;
set sql_log_bin=1;
drop database mysqltest_to;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_engine.result b/mysql-test/suite/rpl/r/rpl_multi_engine.result
index e26777c15ce..7815fa88c93 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_engine.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_engine.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1;
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc
VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT
@@ -360,3 +356,4 @@ id hex(b1) vc bc d f total y t
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
id hex(b1) vc bc d f total y t
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_update.result b/mysql-test/suite/rpl/r/rpl_multi_update.result
index 524278be042..8634e86afed 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_update.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_update.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
b int unsigned
@@ -25,3 +21,4 @@ a b
2 1
UPDATE t1, t2 SET t1.b = t2.b WHERE t1.a = t2.a;
drop table t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_update2.result b/mysql-test/suite/rpl/r/rpl_multi_update2.result
index 5bb262764fa..a3cab693322 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_update2.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_update2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1,t2;
CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
@@ -53,3 +49,4 @@ select * from t1;
a
3
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_update3.result b/mysql-test/suite/rpl/r/rpl_multi_update3.result
index dba7f770ba2..6b9ec5c3947 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_update3.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_update3.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
-------- Test for BUG#9361 --------
CREATE TABLE t1 (
@@ -195,3 +191,4 @@ idpro price nbprice
2 1.0000 2
3 2.0000 1
DROP TABLE t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_multi_update4.result b/mysql-test/suite/rpl/r/rpl_multi_update4.result
index f6dde65a35d..0c4857bed60 100644
--- a/mysql-test/suite/rpl/r/rpl_multi_update4.result
+++ b/mysql-test/suite/rpl/r/rpl_multi_update4.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists d1;
drop database if exists d2;
drop database if exists d2;
@@ -23,3 +19,4 @@ id
0
drop database d1;
drop database d2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_mysql_upgrade.result b/mysql-test/suite/rpl/r/rpl_mysql_upgrade.result
index 09a9121d22c..5187cb0344d 100644
--- a/mysql-test/suite/rpl/r/rpl_mysql_upgrade.result
+++ b/mysql-test/suite/rpl/r/rpl_mysql_upgrade.result
@@ -1,13 +1,11 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS `#mysql50#mysqltest-1`;
CREATE DATABASE `#mysql50#mysqltest-1`;
Master position is not changed
STOP SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_stop.inc
Master position has been changed
DROP DATABASE `mysqltest-1`;
DROP DATABASE `#mysql50#mysqltest-1`;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_name_const.result b/mysql-test/suite/rpl/r/rpl_name_const.result
index acb2684d2c8..89a48bad09b 100644
--- a/mysql-test/suite/rpl/r/rpl_name_const.result
+++ b/mysql-test/suite/rpl/r/rpl_name_const.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialize ====
[on master]
create table t1 (id int);
@@ -26,3 +22,4 @@ id
[on master]
drop table t1;
drop procedure test_procedure;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result b/mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result
index 3b9b741e040..0b5673a383c 100644
--- a/mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result
+++ b/mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
CREATE TABLE t1 (a VARCHAR(1000));
INSERT INTO t1 VALUES (CONNECTION_ID());
@@ -23,5 +19,6 @@ INSERT INTO t1 VALUES
(UTC_TIMESTAMP());
INSERT INTO t1 VALUES (RAND());
INSERT INTO t1 VALUES (LAST_INSERT_ID());
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_not_null_innodb.result b/mysql-test/suite/rpl/r/rpl_not_null_innodb.result
index b09fbab905a..1eaeaba05bb 100644
--- a/mysql-test/suite/rpl/r/rpl_not_null_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_not_null_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET SQL_LOG_BIN= 0;
CREATE TABLE t1(`a` INT, `b` DATE DEFAULT NULL,
`c` INT DEFAULT NULL,
@@ -45,8 +41,8 @@ INSERT INTO t4(a,c) VALUES (4, 4);
INSERT INTO t4(a) VALUES (5);
************* SHOWING THE RESULT SETS WITH INSERTS *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
TABLES t2 and t3 must be different.
SELECT * FROM t3 ORDER BY a;
a b
@@ -80,7 +76,7 @@ UPDATE t1 set b= NULL, c= 300 where a= 1;
REPLACE INTO t1(a,b,c) VALUES (2, NULL, 300);
************* SHOWING THE RESULT SETS WITH UPDATES and REPLACES *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
************* CLEANING *************
DROP TABLE t1;
DROP TABLE t2;
@@ -122,7 +118,7 @@ UPDATE t1 set b= NULL, c= b'00' where a= 1;
REPLACE INTO t1(a,b,c) VALUES (2, NULL, b'00');
************* SHOWING THE RESULT SETS WITH UPDATES and REPLACES *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
################################################################################
# NULL ---> NOT NULL (STRICT MODE)
@@ -200,3 +196,4 @@ a b c
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_not_null_myisam.result b/mysql-test/suite/rpl/r/rpl_not_null_myisam.result
index 09611dc6480..ec17e3bfafa 100644
--- a/mysql-test/suite/rpl/r/rpl_not_null_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_not_null_myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET SQL_LOG_BIN= 0;
CREATE TABLE t1(`a` INT, `b` DATE DEFAULT NULL,
`c` INT DEFAULT NULL,
@@ -45,8 +41,8 @@ INSERT INTO t4(a,c) VALUES (4, 4);
INSERT INTO t4(a) VALUES (5);
************* SHOWING THE RESULT SETS WITH INSERTS *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
TABLES t2 and t3 must be different.
SELECT * FROM t3 ORDER BY a;
a b
@@ -80,7 +76,7 @@ UPDATE t1 set b= NULL, c= 300 where a= 1;
REPLACE INTO t1(a,b,c) VALUES (2, NULL, 300);
************* SHOWING THE RESULT SETS WITH UPDATES and REPLACES *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
************* CLEANING *************
DROP TABLE t1;
DROP TABLE t2;
@@ -122,7 +118,7 @@ UPDATE t1 set b= NULL, c= b'00' where a= 1;
REPLACE INTO t1(a,b,c) VALUES (2, NULL, b'00');
************* SHOWING THE RESULT SETS WITH UPDATES and REPLACES *************
TABLES t1 and t2 must be equal otherwise an error will be thrown.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
################################################################################
# NULL ---> NOT NULL (STRICT MODE)
@@ -200,3 +196,4 @@ a b c
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_optimize.result b/mysql-test/suite/rpl/r/rpl_optimize.result
index 1ae94a3ca36..9c0304ae3a4 100644
--- a/mysql-test/suite/rpl/r/rpl_optimize.result
+++ b/mysql-test/suite/rpl/r/rpl_optimize.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
create table t1 (a int not null auto_increment primary key, b int, key(b));
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
@@ -26,3 +22,4 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_packet.result b/mysql-test/suite/rpl/r/rpl_packet.result
index 1ec9259a1fb..9239a718504 100644
--- a/mysql-test/suite/rpl/r/rpl_packet.result
+++ b/mysql-test/suite/rpl/r/rpl_packet.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave I/O: Got a packet bigger than 'max_allowed_packet' bytes, Error_code: 1153");
call mtr.add_suppression("Slave I/O: Got fatal error 1236 from master when reading data from binary log:");
drop database if exists DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
@@ -33,22 +29,15 @@ include/stop_slave.inc
include/start_slave.inc
CREATE TABLE `t1` (`f1` LONGTEXT) ENGINE=MyISAM;
INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2048');
-Slave_IO_Running = No (expect No)
-SELECT "Got a packet bigger than 'max_allowed_packet' bytes" AS Last_IO_Error;
-Last_IO_Error
-Got a packet bigger than 'max_allowed_packet' bytes
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/wait_for_slave_io_error.inc [errno=1153]
+Last_IO_Error = 'Got a packet bigger than 'max_allowed_packet' bytes'
+include/stop_slave_sql.inc
+include/rpl_reset.inc
+DROP TABLE t1;
CREATE TABLE t1 (f1 int PRIMARY KEY, f2 LONGTEXT, f3 LONGTEXT) ENGINE=MyISAM;
INSERT INTO t1(f1, f2, f3) VALUES(1, REPEAT('a', @@global.max_allowed_packet), REPEAT('b', @@global.max_allowed_packet));
-Slave_IO_Running = No (expect No)
-SELECT "Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'" AS Last_IO_Error;
-Last_IO_Error
-Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'
+include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master''
STOP SLAVE;
RESET SLAVE;
RESET MASTER;
@@ -62,3 +51,5 @@ DROP TABLE t1;
SET @@global.max_allowed_packet= 1024;
SET @@global.net_buffer_length= 1024;
DROP TABLE t1;
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_plugin_load.result b/mysql-test/suite/rpl/r/rpl_plugin_load.result
index 43e171a97c9..b33e29ef668 100644
--- a/mysql-test/suite/rpl/r/rpl_plugin_load.result
+++ b/mysql-test/suite/rpl/r/rpl_plugin_load.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
Verify that example engine is not installed.
SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
@@ -33,4 +29,5 @@ Delta
Verify that example engine is not installed.
SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
+include/rpl_end.inc
End of test
diff --git a/mysql-test/suite/rpl/r/rpl_ps.result b/mysql-test/suite/rpl/r/rpl_ps.result
index 89e822b3eb6..6e110227782 100644
--- a/mysql-test/suite/rpl/r/rpl_ps.result
+++ b/mysql-test/suite/rpl/r/rpl_ps.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1;
create table t1(n char(30));
prepare stmt1 from 'insert into t1 values (?)';
@@ -33,49 +29,22 @@ stop slave;
# statement breaks binlog.
#
########################################################################
-
# Connection: slave
-
-
START SLAVE;
-
# Connection: master
-
-
CREATE DATABASE mysqltest1;
CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32));
-
PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)';
-
EXECUTE stmt_d_1;
-
use mysqltest1;
-
EXECUTE stmt_d_1;
-
-
# Connection: slave
-
-
SELECT * FROM t1;
db_name db_col_name
test latin1_swedish_ci
test latin1_swedish_ci
-
# Connection: master
-
-
DROP DATABASE mysqltest1;
-
use test;
DROP TABLE t1;
-
-
-# Connection: slave
-
-
-STOP SLAVE;
-
-########################################################################
-reset master;
-reset slave;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result b/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result
index 6bb9b139057..e5d722a841f 100644
--- a/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result
+++ b/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET @old_binlog_format= @@global.binlog_format;
SET BINLOG_FORMAT=MIXED;
SET GLOBAL BINLOG_FORMAT=MIXED;
@@ -33,3 +29,4 @@ slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
slave-bin.000001 # Query # # COMMIT
DROP TABLE IF EXISTS t1;
SET @@global.binlog_format= @old_binlog_format;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_read_only.result b/mysql-test/suite/rpl/r/rpl_read_only.result
index 6b1404b4f68..37bdc09a8c0 100644
--- a/mysql-test/suite/rpl/r/rpl_read_only.result
+++ b/mysql-test/suite/rpl/r/rpl_read_only.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create user test;
create table t1(a int) engine=InnoDB;
create table t2(a int) engine=MyISAM;
@@ -114,3 +110,4 @@ drop user test;
drop table t1;
drop table t2;
set global read_only=0;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_relay_space_innodb.result b/mysql-test/suite/rpl/r/rpl_relay_space_innodb.result
index 54aac2eca35..4f10ac50f9a 100644
--- a/mysql-test/suite/rpl/r/rpl_relay_space_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_relay_space_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SHOW VARIABLES LIKE 'relay_log_space_limit';
Variable_name Value
relay_log_space_limit 0
@@ -23,3 +19,4 @@ Andy 31 00000001
Jacob 2 00000002
Caleb 1 00000003
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_relay_space_myisam.result b/mysql-test/suite/rpl/r/rpl_relay_space_myisam.result
index e8d2d63e46e..4c1a50b2f33 100644
--- a/mysql-test/suite/rpl/r/rpl_relay_space_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_relay_space_myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SHOW VARIABLES LIKE 'relay_log_space_limit';
Variable_name Value
relay_log_space_limit 0
@@ -23,3 +19,4 @@ Andy 31 00000001
Jacob 2 00000002
Caleb 1 00000003
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_relayrotate.result b/mysql-test/suite/rpl/r/rpl_relayrotate.result
index 20f19973d83..ea00aee0085 100644
--- a/mysql-test/suite/rpl/r/rpl_relayrotate.result
+++ b/mysql-test/suite/rpl/r/rpl_relayrotate.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
stop slave;
create table t1 (a int) engine=innodb;
reset slave;
@@ -14,3 +10,4 @@ select max(a) from t1;
max(a)
8000
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_relayspace.result b/mysql-test/suite/rpl/r/rpl_relayspace.result
index 1f2a739d3e3..f12f177ff7c 100644
--- a/mysql-test/suite/rpl/r/rpl_relayspace.result
+++ b/mysql-test/suite/rpl/r/rpl_relayspace.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
stop slave;
create table t1 (a int);
drop table t1;
@@ -11,9 +7,11 @@ create table t1 (a int);
drop table t1;
reset slave;
start slave io_thread;
+include/wait_for_slave_param.inc [Slave_IO_State]
stop slave io_thread;
reset slave;
start slave;
select master_pos_wait('master-bin.001',200,6)=-1;
master_pos_wait('master-bin.001',200,6)=-1
0
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_replicate_do.result b/mysql-test/suite/rpl/r/rpl_replicate_do.result
index 637047a883b..6f85fc15b1e 100644
--- a/mysql-test/suite/rpl/r/rpl_replicate_do.result
+++ b/mysql-test/suite/rpl/r/rpl_replicate_do.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t11;
drop table if exists t11;
create table t2 (n int);
@@ -26,7 +22,7 @@ n
select * from t11;
ERROR 42S02: Table 'test.t11' doesn't exist
drop table if exists t1,t2,t11;
-Replicate_Do_Table test.t1
+Replicate_Do_Table = 'test.t1'
create table t1 (ts timestamp);
set one_shot time_zone='met';
insert into t1 values('2005-08-12 00:00:00');
@@ -73,3 +69,4 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie
*** master ***
drop table t1;
drop table t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result b/mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result
index 0135804c02d..f0c46b0b966 100644
--- a/mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result
+++ b/mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
drop database if exists mysqltest2;
create database mysqltest1;
@@ -21,3 +17,4 @@ a
1
drop database mysqltest1;
drop database mysqltest2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_report.result b/mysql-test/suite/rpl/r/rpl_report.result
index e129d7c8f22..b979d1faf5d 100644
--- a/mysql-test/suite/rpl/r/rpl_report.result
+++ b/mysql-test/suite/rpl/r/rpl_report.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_host';
VARIABLE_NAME VARIABLE_VALUE
REPORT_HOST 127.0.0.1
@@ -31,3 +27,4 @@ Value my_password
set @@global.report_host='my.new.address.net';
ERROR HY000: Variable 'report_host' is a read only variable
end of tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_rewrt_db.result b/mysql-test/suite/rpl/r/rpl_rewrt_db.result
index dae72d83b51..12071faecfd 100644
--- a/mysql-test/suite/rpl/r/rpl_rewrt_db.result
+++ b/mysql-test/suite/rpl/r/rpl_rewrt_db.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1;
use mysqltest1;
@@ -219,3 +215,4 @@ DROP DATABASE database_slave_temp_01;
DROP DATABASE database_slave_temp_02;
DROP DATABASE database_slave_temp_03;
SET sql_log_bin= 1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_rotate_logs.result b/mysql-test/suite/rpl/r/rpl_rotate_logs.result
index b50c7cebcab..e41f56c0a71 100644
--- a/mysql-test/suite/rpl/r/rpl_rotate_logs.result
+++ b/mysql-test/suite/rpl/r/rpl_rotate_logs.result
@@ -1,5 +1,3 @@
-drop table if exists t1, t2, t3, t4;
-drop table if exists t1, t2, t3, t4;
start slave;
Got one of the listed errors
start slave;
@@ -14,9 +12,9 @@ create temporary table temp_table (a char(80) not null);
insert into temp_table values ("testing temporary tables");
create table t1 (s text);
insert into t1 values('Could not break slave'),('Tried hard');
-Master_Log_File master-bin.000001
-Relay_Master_Log_File master-bin.000001
-Checking that both slave threads are running.
+Master_Log_File = 'master-bin.000001'
+Relay_Master_Log_File = 'master-bin.000001'
+include/check_slave_is_running.inc
select * from t1;
s
Could not break slave
@@ -38,8 +36,7 @@ drop table temp_table, t3;
insert into t2 values(1234);
set insert_id=1234;
insert into t2 values(NULL);
-set global sql_slave_skip_counter=1;
-start slave;
+include/wait_for_slave_sql_error_and_skip.inc [errno=1062]
purge master logs to 'master-bin.000002';
show master logs;
Log_name master-bin.000002
@@ -57,9 +54,9 @@ show binary logs;
Log_name File_size
master-bin.000003 #
insert into t2 values (65);
-Master_Log_File master-bin.000003
-Relay_Master_Log_File master-bin.000003
-Checking that both slave threads are running.
+Master_Log_File = 'master-bin.000003'
+Relay_Master_Log_File = 'master-bin.000003'
+include/check_slave_is_running.inc
select * from t2;
m
34
@@ -85,9 +82,9 @@ master-bin.000005 # <Binlog_Do_DB> <Binlog_Ignore_DB>
select * from t4;
a
testing temporary tables part 2
-Master_Log_File master-bin.000005
-Relay_Master_Log_File master-bin.000005
-Checking that both slave threads are running.
+Master_Log_File = 'master-bin.000005'
+Relay_Master_Log_File = 'master-bin.000005'
+include/check_slave_is_running.inc
lock tables t3 read;
select count(*) from t3 where n >= 4;
count(*)
@@ -102,3 +99,5 @@ show binlog events in '';
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
purge master logs before now();
End of 5.0 tests
+include/stop_slave.inc
+CHANGE MASTER TO MASTER_HOST = '';
diff --git a/mysql-test/suite/rpl/r/rpl_row_001.result b/mysql-test/suite/rpl/r/rpl_row_001.result
index 0d682eb82e1..b5f6aea9698 100644
--- a/mysql-test/suite/rpl/r/rpl_row_001.result
+++ b/mysql-test/suite/rpl/r/rpl_row_001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (word CHAR(20) NOT NULL);
LOAD DATA INFILE 'LOAD_FILE' INTO TABLE t1;
LOAD DATA INFILE 'LOAD_FILE' INTO TABLE t1;
@@ -53,3 +49,4 @@ SELECT n FROM t1;
n
3456
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_4_bytes.result b/mysql-test/suite/rpl/r/rpl_row_4_bytes.result
index e2431364ed3..ef9602204a1 100644
--- a/mysql-test/suite/rpl/r/rpl_row_4_bytes.result
+++ b/mysql-test/suite/rpl/r/rpl_row_4_bytes.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1;
use mysqltest1;
@@ -25,3 +21,4 @@ ABE
ANG
LIL
DROP DATABASE mysqltest1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_NOW.result b/mysql-test/suite/rpl/r/rpl_row_NOW.result
index 23f95878608..eb6271d6e93 100644
--- a/mysql-test/suite/rpl/r/rpl_row_NOW.result
+++ b/mysql-test/suite/rpl/r/rpl_row_NOW.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create database if not exists mysqltest1;
DROP TABLE IF EXISTS mysqltest1.t1;
CREATE TABLE mysqltest1.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT,
@@ -27,3 +23,4 @@ INSERT INTO mysqltest1.t1 SET n = NULL, a = now();
DROP TABLE IF EXISTS mysqltest1.t1;
DROP FUNCTION mysqltest1.f1;
DROP DATABASE mysqltest1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_USER.result b/mysql-test/suite/rpl/r/rpl_row_USER.result
index 98755fb4653..5298395da20 100644
--- a/mysql-test/suite/rpl/r/rpl_row_USER.result
+++ b/mysql-test/suite/rpl/r/rpl_row_USER.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS mysqltest1;
CREATE DATABASE mysqltest1;
CREATE USER tester IDENTIFIED BY 'test';
@@ -36,3 +32,4 @@ REVOKE ALL ON mysqltest1.* FROM 'tester'@'%';
REVOKE ALL ON mysqltest1.* FROM ''@'localhost%';
DROP USER tester@'%';
DROP USER ''@'localhost%';
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_UUID.result b/mysql-test/suite/rpl/r/rpl_row_UUID.result
index 02174a7ecae..b7d3f8914e0 100644
--- a/mysql-test/suite/rpl/r/rpl_row_UUID.result
+++ b/mysql-test/suite/rpl/r/rpl_row_UUID.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, vchar_column VARCHAR(100), PRIMARY KEY(a)) engine=myisam;
@@ -38,3 +34,4 @@ DROP PROCEDURE test.p1;
DROP FUNCTION test.fn1;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result b/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
index 458ae53e79c..d769b0b0881 100644
--- a/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
+++ b/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE DATABASE test_ignore;
**** On Master ****
SHOW DATABASES;
@@ -46,11 +42,10 @@ t1
USE test_ignore;
ERROR 42000: Unknown database 'test_ignore'
DROP DATABASE test_ignore;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+USE test;
+DROP TABLE t1;
+USE test;
+include/rpl_reset.inc
CREATE TABLE t1 (a INT);
DELETE FROM t1;
INSERT INTO t1 VALUES (1),(2);
@@ -65,11 +60,7 @@ master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
DROP TABLE t1;
================ Test for BUG#17620 ================
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
**** On Slave ****
SET GLOBAL QUERY_CACHE_SIZE=0;
**** On Master ****
@@ -103,12 +94,9 @@ a
8
9
SET GLOBAL QUERY_CACHE_SIZE=0;
+DROP TABLE t1;
================ Test for BUG#22550 ================
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (a BIT(1), b INT) ENGINE=MYISAM;
INSERT INTO t1 VALUES(1,2);
SELECT HEX(a),b FROM t1;
@@ -126,11 +114,7 @@ HEX(a) b
0 2
DROP TABLE IF EXISTS t1;
================ Test for BUG#22583 ================
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
**** On Master ****
CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
@@ -247,13 +231,8 @@ a b
3 1
4 4
drop table t1,t2;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
**** On Master ****
-SET SESSION BINLOG_FORMAT=ROW;
CREATE TABLE t1 (a INT PRIMARY KEY, b SET('master','slave'));
INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave');
**** On Slave ****
@@ -277,6 +256,6 @@ SELECT * FROM t1 ORDER BY a;
a b
2 master,slave
5 slave
-DROP TABLE t1;
**** On Master ****
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
index a247c3a6039..7afc70bfa5c 100644
--- a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (C1 CHAR(1), C2 CHAR(1), INDEX (C1)) ENGINE = 'MYISAM' ;
SELECT * FROM t1;
C1 C2
@@ -422,11 +418,7 @@ a b c
**** Test for BUG#31552 ****
**** On Master ****
DELETE FROM t1;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
**** On Master ****
INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M');
**** On Master ****
@@ -436,7 +428,7 @@ DELETE FROM t1;
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
set @@global.slave_exec_mode= default;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
**** Test for BUG#37076 ****
@@ -478,50 +470,44 @@ j INT NOT NULL) ENGINE = 'MYISAM' ;
[expecting slave to replicate correctly]
INSERT INTO t1 VALUES (1, "", 1);
INSERT INTO t1 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
[expecting slave to replicate correctly]
INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
[expecting slave to stop]
INSERT INTO t3 VALUES (1, "", 1);
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t4 VALUES (1, "", 1);
INSERT INTO t4 VALUES (2, repeat(_utf8'a', 128), 2);
-Comparing tables master:test.t4 and slave:test.t4
+include/diff_tables.inc [master:t4, slave:t4]
[expecting slave to stop]
INSERT INTO t5 VALUES (1, "", 1);
INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to stop]
INSERT INTO t6 VALUES (1, "", 1);
INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t7 VALUES (1, "", 1);
INSERT INTO t7 VALUES (2, repeat(_utf8'a', 255), 2);
-Comparing tables master:test.t7 and slave:test.t7
+include/diff_tables.inc [master:t7, slave:t7]
drop table t1, t2, t3, t4, t5, t6, t7;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE='MYISAM' ;
INSERT INTO t1 VALUES (1), (2), (3);
UPDATE t1 SET a = 10;
ERROR 23000: Duplicate entry '10' for key 'PRIMARY'
INSERT INTO t1 VALUES (4);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (
@@ -575,7 +561,7 @@ ERROR 23000: Duplicate entry '6' for key 'PRIMARY'
DELETE FROM t2 WHERE `pk` < 7 LIMIT 1;
UPDATE t1 SET `int_key` = 4 ORDER BY `pk` LIMIT 6;
*** results: t2 must be consistent ****
-Comparing tables master:test.t2 and master:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1, t2;
EOF OF TESTS
CREATE TABLE t1 (a int) ENGINE='MYISAM' ;
@@ -591,7 +577,7 @@ UPDATE t1 SET a = 9 WHERE a < 3;
INSERT INTO t1 ( a ) VALUES ( 3 );
UPDATE t1 SET a = 0 WHERE a < 4;
UPDATE t1 SET a = 8 WHERE a < 5;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
CREATE TABLE t1 (a bit) ENGINE='MYISAM' ;
INSERT IGNORE INTO t1 VALUES (NULL);
@@ -633,5 +619,6 @@ DELETE FROM t1 WHERE a < 3 LIMIT 0;
UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2;
INSERT INTO t1 ( a ) VALUES ( 1 );
UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
index fefe8e969dc..b8620894bd1 100644
--- a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (C1 CHAR(1), C2 CHAR(1), INDEX (C1)) ENGINE = 'INNODB' ;
SELECT * FROM t1;
C1 C2
@@ -422,11 +418,7 @@ a b c
**** Test for BUG#31552 ****
**** On Master ****
DELETE FROM t1;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
**** On Master ****
INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M');
**** On Master ****
@@ -436,7 +428,7 @@ DELETE FROM t1;
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
set @@global.slave_exec_mode= default;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
**** Test for BUG#37076 ****
@@ -478,50 +470,44 @@ j INT NOT NULL) ENGINE = 'INNODB' ;
[expecting slave to replicate correctly]
INSERT INTO t1 VALUES (1, "", 1);
INSERT INTO t1 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
[expecting slave to replicate correctly]
INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
[expecting slave to stop]
INSERT INTO t3 VALUES (1, "", 1);
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t4 VALUES (1, "", 1);
INSERT INTO t4 VALUES (2, repeat(_utf8'a', 128), 2);
-Comparing tables master:test.t4 and slave:test.t4
+include/diff_tables.inc [master:t4, slave:t4]
[expecting slave to stop]
INSERT INTO t5 VALUES (1, "", 1);
INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to stop]
INSERT INTO t6 VALUES (1, "", 1);
INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t7 VALUES (1, "", 1);
INSERT INTO t7 VALUES (2, repeat(_utf8'a', 255), 2);
-Comparing tables master:test.t7 and slave:test.t7
+include/diff_tables.inc [master:t7, slave:t7]
drop table t1, t2, t3, t4, t5, t6, t7;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE='INNODB' ;
INSERT INTO t1 VALUES (1), (2), (3);
UPDATE t1 SET a = 10;
ERROR 23000: Duplicate entry '10' for key 'PRIMARY'
INSERT INTO t1 VALUES (4);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (
@@ -575,7 +561,7 @@ ERROR 23000: Duplicate entry '6' for key 'PRIMARY'
DELETE FROM t2 WHERE `pk` < 7 LIMIT 1;
UPDATE t1 SET `int_key` = 4 ORDER BY `pk` LIMIT 6;
*** results: t2 must be consistent ****
-Comparing tables master:test.t2 and master:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1, t2;
EOF OF TESTS
CREATE TABLE t1 (a int) ENGINE='INNODB' ;
@@ -591,7 +577,7 @@ UPDATE t1 SET a = 9 WHERE a < 3;
INSERT INTO t1 ( a ) VALUES ( 3 );
UPDATE t1 SET a = 0 WHERE a < 4;
UPDATE t1 SET a = 8 WHERE a < 5;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
CREATE TABLE t1 (a bit) ENGINE='INNODB' ;
INSERT IGNORE INTO t1 VALUES (NULL);
@@ -633,5 +619,6 @@ DELETE FROM t1 WHERE a < 3 LIMIT 0;
UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2;
INSERT INTO t1 ( a ) VALUES ( 1 );
UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result b/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
index 3443e704031..c7241c52353 100644
--- a/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
+++ b/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
SET @@BINLOG_FORMAT = ROW;
SELECT @@BINLOG_FORMAT;
@@ -717,3 +713,4 @@ COUNT(*)
4
DELETE FROM t1;
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_blob_innodb.result b/mysql-test/suite/rpl/r/rpl_row_blob_innodb.result
index 055efffbd6a..4fb33dc4b6b 100644
--- a/mysql-test/suite/rpl/r/rpl_row_blob_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_blob_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
***** Table Create Section ****
@@ -154,3 +150,4 @@ c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3)
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_blob_myisam.result b/mysql-test/suite/rpl/r/rpl_row_blob_myisam.result
index 055efffbd6a..4fb33dc4b6b 100644
--- a/mysql-test/suite/rpl/r/rpl_row_blob_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_row_blob_myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
***** Table Create Section ****
@@ -154,3 +150,4 @@ c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3)
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_colSize.result b/mysql-test/suite/rpl/r/rpl_row_colSize.result
index 417bc65641a..49753d2b25c 100644
--- a/mysql-test/suite/rpl/r/rpl_row_colSize.result
+++ b/mysql-test/suite/rpl/r/rpl_row_colSize.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
**** Testing WL#3228 changes. ****
*** Create "wider" table on slave ***
@@ -18,7 +14,8 @@ CREATE TABLE t1 (a DECIMAL(20, 10));
RESET MASTER;
INSERT INTO t1 VALUES (901251.90125);
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -34,7 +31,8 @@ CREATE TABLE t1 (a DECIMAL(27, 18));
RESET MASTER;
INSERT INTO t1 VALUES (901251.90125);
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 12, test.t1 on slave has size 12. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 12, test.t1 on slave has size 12. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -50,7 +48,8 @@ CREATE TABLE t1 (a NUMERIC(20, 10));
RESET MASTER;
INSERT INTO t1 VALUES (901251.90125);
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -67,7 +66,8 @@ CREATE TABLE t1 (a FLOAT(47));
RESET MASTER;
INSERT INTO t1 VALUES (901251.90125);
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 5, test.t1 has type 4
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 5, test.t1 has type 4'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -84,7 +84,8 @@ CREATE TABLE t1 (a BIT(64));
RESET MASTER;
INSERT INTO t1 VALUES (B'10101');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 8, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 8, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -100,7 +101,8 @@ CREATE TABLE t1 (a BIT(12));
RESET MASTER;
INSERT INTO t1 VALUES (B'10101');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 2. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 2. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -117,7 +119,8 @@ CREATE TABLE t1 (a SET('1','2','3','4','5','6','7','8','9'));
RESET MASTER;
INSERT INTO t1 VALUES ('4');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -134,7 +137,8 @@ CREATE TABLE t1 (a CHAR(20));
RESET MASTER;
INSERT INTO t1 VALUES ('This is a test.');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 20, test.t1 on slave has size 11. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 20, test.t1 on slave has size 11. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -182,7 +186,8 @@ CREATE TABLE t1 (a ENUM(
RESET MASTER;
INSERT INTO t1 VALUES ('44');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -199,7 +204,8 @@ CREATE TABLE t1 (a VARCHAR(2000));
RESET MASTER;
INSERT INTO t1 VALUES ('This is a test.');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 100. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 100. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -215,7 +221,8 @@ CREATE TABLE t1 (a VARCHAR(200));
RESET MASTER;
INSERT INTO t1 VALUES ('This is a test.');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 200, test.t1 on slave has size 10. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 200, test.t1 on slave has size 10. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -231,7 +238,8 @@ CREATE TABLE t1 (a VARCHAR(2000));
RESET MASTER;
INSERT INTO t1 VALUES ('This is a test.');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 1000. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 1000. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -248,7 +256,8 @@ CREATE TABLE t1 (a LONGBLOB);
RESET MASTER;
INSERT INTO t1 VALUES ('This is a test.');
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 size mismatch - master has size 4, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 size mismatch - master has size 4, test.t1 on slave has size 1. Master's column size should be <= the slave's column size.'
SELECT COUNT(*) FROM t1;
COUNT(*)
0
@@ -258,3 +267,4 @@ RESET MASTER;
START SLAVE;
*** Cleanup ***
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_conflicts.result b/mysql-test/suite/rpl/r/rpl_row_conflicts.result
index 0f15bfc7156..d8fbab98191 100644
--- a/mysql-test/suite/rpl/r/rpl_row_conflicts.result
+++ b/mysql-test/suite/rpl/r/rpl_row_conflicts.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Can\'t find record in \'t1\' Error_code: .*");
[on slave]
SET @old_slave_exec_mode= @@global.slave_exec_mode;
@@ -24,6 +20,7 @@ a
1
[on slave]
---- Wait until slave stops with an error ----
+include/wait_for_slave_sql_error.inc [errno=1062]
Last_SQL_Error = Could not execute Write_rows event on table test.t1; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log master-bin.000001, end_log_pos 346 (expected "duplicate key" error)
SELECT * FROM t1;
a
@@ -31,6 +28,7 @@ a
---- Resolve the conflict on the slave and restart SQL thread ----
DELETE FROM t1 WHERE a = 1;
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
---- Sync slave and verify that there is no error ----
Last_SQL_Error = '' (expected no error)
SELECT * FROM t1;
@@ -50,12 +48,15 @@ SELECT * FROM t1;
a
[on slave]
---- Wait until slave stops with an error ----
-Last_SQL_Error = Could not execute Delete_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log master-bin.000001, end_log_pos 982 (expected "can't find record" error)
+include/wait_for_slave_sql_error.inc [errno=1032]
+Last_SQL_Error (expected "duplicate key" error)
+Could not execute Delete_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log master-bin.000001, end_log_pos END_LOG_POS
SELECT * FROM t1;
a
---- Resolve the conflict on the slave and restart SQL thread ----
INSERT INTO t1 VALUES (1);
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
---- Sync slave and verify that there is no error ----
Last_SQL_Error = (expected no error)
SELECT * FROM t1;
@@ -64,6 +65,7 @@ a
[on master]
DROP TABLE t1;
[on slave]
+include/rpl_reset.inc
######## Run with slave_exec_mode=IDEMPOTENT ########
set @@global.slave_exec_mode= 'IDEMPOTENT';
==== Initialize ====
@@ -107,3 +109,4 @@ a
DROP TABLE t1;
[on slave]
SET @@global.slave_exec_mode= @old_slave_exec_mode;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_delayed_ins.result b/mysql-test/suite/rpl/r/rpl_row_delayed_ins.result
index 90b68428008..4575588b1ef 100644
--- a/mysql-test/suite/rpl/r/rpl_row_delayed_ins.result
+++ b/mysql-test/suite/rpl/r/rpl_row_delayed_ins.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int not null primary key) engine=myisam;
insert delayed into t1 values (1);
insert delayed into t1 values (2);
@@ -20,3 +16,4 @@ a
2
3
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_drop.result b/mysql-test/suite/rpl/r/rpl_row_drop.result
index 048e07271b3..963a001f70a 100644
--- a/mysql-test/suite/rpl/r/rpl_row_drop.result
+++ b/mysql-test/suite/rpl/r/rpl_row_drop.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** On Master ****
CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
@@ -53,3 +49,4 @@ t2
SHOW TABLES;
Tables_in_test
t2
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_find_row.result b/mysql-test/suite/rpl/r/rpl_row_find_row.result
index 69516b47b7d..fff1f1b0c35 100644
--- a/mysql-test/suite/rpl/r/rpl_row_find_row.result
+++ b/mysql-test/suite/rpl/r/rpl_row_find_row.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET SQL_LOG_BIN=0;
CREATE TABLE t (a int, b int, c int, key(b));
SET SQL_LOG_BIN=1;
@@ -12,27 +8,18 @@ INSERT INTO t VALUES (1,2,4);
INSERT INTO t VALUES (4,3,4);
DELETE FROM t;
DROP TABLE t;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t (a int, b int, c int, key(b));
ALTER TABLE t DISABLE KEYS;
INSERT INTO t VALUES (1,2,4);
INSERT INTO t VALUES (4,3,4);
DELETE FROM t;
DROP TABLE t;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT, UNIQUE KEY(c1,c3), KEY(c2));
INSERT INTO t1(c1,c2) VALUES(1,1);
INSERT INTO t1(c1,c2) VALUES(1,2);
UPDATE t1 SET c1=1000 WHERE c2=2;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result b/mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result
index 61fee130d49..af44821a817 100644
--- a/mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result
+++ b/mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int);
insert into t1 values (10);
create table t2 (a int);
@@ -21,10 +17,13 @@ flush tables;
select * from t3;
a
stop slave;
+include/wait_for_slave_to_stop.inc
drop table t1;
flush tables with read lock;
start slave;
+include/wait_for_slave_to_start.inc
stop slave;
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
unlock tables;
drop table t3, t4, t5;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_func001.result b/mysql-test/suite/rpl/r/rpl_row_func001.result
index b20f3f724d0..74a053abb26 100644
--- a/mysql-test/suite/rpl/r/rpl_row_func001.result
+++ b/mysql-test/suite/rpl/r/rpl_row_func001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP FUNCTION test.f1;
DROP TABLE IF EXISTS test.t1;
create table test.t1 (a int, PRIMARY KEY(a));
@@ -28,3 +24,4 @@ a
2
DROP FUNCTION test.f1;
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_func002.result b/mysql-test/suite/rpl/r/rpl_row_func002.result
index 03f5b3115c3..69a732048b2 100644
--- a/mysql-test/suite/rpl/r/rpl_row_func002.result
+++ b/mysql-test/suite/rpl/r/rpl_row_func002.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP FUNCTION test.f1;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
@@ -24,3 +20,4 @@ INSERT INTO test.t2 VALUES (null,f1(),CURRENT_TIMESTAMP);
DROP FUNCTION test.f1;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_func003.result b/mysql-test/suite/rpl/r/rpl_row_func003.result
index 94d01b50ce5..cdc5bf6afba 100644
--- a/mysql-test/suite/rpl/r/rpl_row_func003.result
+++ b/mysql-test/suite/rpl/r/rpl_row_func003.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
DROP FUNCTION IF EXISTS test.f1;
DROP TABLE IF EXISTS test.t1;
@@ -28,3 +24,4 @@ ROLLBACK;
SET AUTOCOMMIT=1;
DROP FUNCTION test.f1;
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result b/mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result
index 562e3dc2862..148840cc8c5 100644
--- a/mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result
+++ b/mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Setup table on master but not on slave ====
[on master]
CREATE TABLE t1 (a INT);
@@ -14,8 +10,10 @@ DROP TABLE t1;
INSERT INTO t1 VALUES (1);
==== Verify error on slave ====
[on slave]
-Last_SQL_Error = Error 'Table 'test.t1' doesn't exist' on opening tables
+include/wait_for_slave_sql_error.inc [errno=1146]
==== Clean up ====
-include/stop_slave.inc
+include/stop_slave_io.inc
+RESET SLAVE;
[on master]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_insert_delayed.result b/mysql-test/suite/rpl/r/rpl_row_insert_delayed.result
index 1551d83266d..b6fd074c766 100644
--- a/mysql-test/suite/rpl/r/rpl_row_insert_delayed.result
+++ b/mysql-test/suite/rpl/r/rpl_row_insert_delayed.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set @old_global_binlog_format = @@global.binlog_format;
set @@global.binlog_format = row;
CREATE SCHEMA IF NOT EXISTS mysqlslap;
@@ -60,3 +56,4 @@ a
drop table t1;
End of 5.0 tests
set @@global.binlog_format = @old_global_binlog_format;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_log.result b/mysql-test/suite/rpl/r/rpl_row_log.result
index 0f648539c47..b88634e2802 100644
--- a/mysql-test/suite/rpl/r/rpl_row_log.result
+++ b/mysql-test/suite/rpl/r/rpl_row_log.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
include/stop_slave.inc
reset master;
reset slave;
@@ -240,18 +236,13 @@ slave-bin.000002 # Query # # BEGIN
slave-bin.000002 # Table_map # # table_id: # (test.t2)
slave-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
slave-bin.000002 # Query # # COMMIT
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
create table t1(a int auto_increment primary key, b int);
insert into t1 values (NULL, 1);
set insert_id=5;
@@ -273,3 +264,4 @@ a b
5 1
6 1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_log_innodb.result b/mysql-test/suite/rpl/r/rpl_row_log_innodb.result
index ff189e676cc..6e1eec2056a 100644
--- a/mysql-test/suite/rpl/r/rpl_row_log_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_log_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
include/stop_slave.inc
reset master;
reset slave;
@@ -240,18 +236,13 @@ slave-bin.000002 # Query # # BEGIN
slave-bin.000002 # Table_map # # table_id: # (test.t2)
slave-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
slave-bin.000002 # Xid # # COMMIT /* XID */
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
create table t1(a int auto_increment primary key, b int);
insert into t1 values (NULL, 1);
set insert_id=5;
@@ -273,3 +264,4 @@ a b
5 1
6 1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_max_relay_size.result b/mysql-test/suite/rpl/r/rpl_row_max_relay_size.result
index db06cb6d3de..871d3218b70 100644
--- a/mysql-test/suite/rpl/r/rpl_row_max_relay_size.result
+++ b/mysql-test/suite/rpl/r/rpl_row_max_relay_size.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
stop slave;
#
# Generate a big enough master's binlog to cause relay log rotations
@@ -21,7 +17,7 @@ select @@global.max_relay_log_size;
@@global.max_relay_log_size
4096
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 2
#
@@ -31,7 +27,7 @@ set global max_relay_log_size=(5*4096);
select @@global.max_relay_log_size;
@@global.max_relay_log_size 20480
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 3: max_relay_log_size = 0
#
@@ -41,7 +37,7 @@ set global max_relay_log_size=0;
select @@global.max_relay_log_size;
@@global.max_relay_log_size 0
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
#
@@ -55,13 +51,13 @@ reset slave;
start slave;
flush logs;
create table t1 (a int);
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
#
flush logs;
drop table t1;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
flush logs;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
@@ -70,3 +66,4 @@ set global max_binlog_size= @my_max_binlog_size;
#
# End of 4.1 tests
#
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
index 538764da738..5fee82f6017 100644
--- a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
+++ b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
---Setup Section --
set timestamp=1000000000;
@@ -380,3 +376,4 @@ a b
1 1
FLUSH LOGS;
DROP TABLE IF EXISTS t1, t2, t3, t04, t05, t4, t5;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result b/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result
index c461cafbd7c..d9ebb52493b 100644
--- a/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result
@@ -1,46 +1,28 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
## case #1 - last_null_bit_pos==0 in record_compare without X bit
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
UPDATE t1 SET c5 = 'a';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
## case #1.1 - last_null_bit_pos==0 in record_compare with X bit
## (1 column less and no varchar)
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
UPDATE t1 SET c5 = 'a';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
## case #2 - X bit is wrongly set.
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 int, c2 varchar(1) default '') ENGINE=InnoDB DEFAULT CHARSET= latin1;
INSERT INTO t1(c1) VALUES (10);
INSERT INTO t1(c1) VALUES (NULL);
UPDATE t1 SET c1= 0;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result b/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result
index 38fbe486d2e..e9ffcc927be 100644
--- a/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result
@@ -1,60 +1,37 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
## case #1 - last_null_bit_pos==0 in record_compare without X bit
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
UPDATE t1 SET c5 = 'a';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
## case #1.1 - last_null_bit_pos==0 in record_compare with X bit
## (1 column less and no varchar)
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 );
INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 );
UPDATE t1 SET c5 = 'a';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
## case #2 - X bit is wrongly set.
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 int, c2 varchar(1) default '') ENGINE=MyISAM DEFAULT CHARSET= latin1;
INSERT INTO t1(c1) VALUES (10);
INSERT INTO t1(c1) VALUES (NULL);
UPDATE t1 SET c1= 0;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
## coverage purposes - Field_bits
## 1 X bit + 2 Null bits + 5 bits => last_null_bit_pos==0
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bit(5)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO t1(c1,c2) VALUES (10, b'1');
INSERT INTO t1(c1,c2) VALUES (NULL, b'1');
UPDATE t1 SET c1= 0;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_reset_slave.result b/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
index 7bf09df31ca..be4bc630e3f 100644
--- a/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
@@ -1,21 +1,17 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-Master_User root
-Master_Host 127.0.0.1
+include/master-slave.inc
+[connection master]
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/stop_slave.inc
change master to master_user='test';
-Master_User test
-Master_Host 127.0.0.1
+Master_User = 'test'
+Master_Host = '127.0.0.1'
reset slave;
-Master_User root
-Master_Host 127.0.0.1
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/start_slave.inc
-Master_User root
-Master_Host 127.0.0.1
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/stop_slave.inc
reset slave;
include/start_slave.inc
@@ -28,13 +24,19 @@ Variable_name Value
Slave_open_temp_tables 0
include/stop_slave.inc
reset slave;
+include/check_slave_no_error.inc
change master to master_user='impossible_user_name';
start slave;
-include/stop_slave.inc
+include/wait_for_slave_io_error.inc [errno=1045]
+include/stop_slave_sql.inc
change master to master_user='root';
include/start_slave.inc
+include/check_slave_no_error.inc
include/stop_slave.inc
change master to master_user='impossible_user_name';
start slave;
-include/stop_slave.inc
+include/wait_for_slave_io_error.inc [errno=1045]
+include/stop_slave_sql.inc
reset slave;
+include/check_slave_no_error.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp001.result b/mysql-test/suite/rpl/r/rpl_row_sp001.result
index 8c26c061376..17117ce2fac 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp001.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
<Begin test section 1 (non deterministic SP)>
---------------------------------------------
@@ -83,3 +79,4 @@ DROP PROCEDURE test.p1;
DROP PROCEDURE test.p2;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result b/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
index a42c9af988c..f368cf6e356 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
@@ -1,15 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-DROP PROCEDURE IF EXISTS test.p1;
-DROP PROCEDURE IF EXISTS test.p2;
-DROP PROCEDURE IF EXISTS test.p3;
-DROP TABLE IF EXISTS test.t3;
-DROP TABLE IF EXISTS test.t1;
-DROP TABLE IF EXISTS test.t2;
+include/master-slave.inc
+[connection master]
CREATE TABLE test.t1 (a INT AUTO_INCREMENT KEY, t CHAR(6)) ENGINE=INNODB;
CREATE TABLE test.t2 (a INT AUTO_INCREMENT KEY, f INT, FOREIGN KEY(a) REFERENCES test.t1(a) ON DELETE CASCADE) ENGINE=INNODB;
create procedure test.p1(IN i CHAR(6))
@@ -231,9 +221,10 @@ a t
98 NONE
SET AUTOCOMMIT=1;
SET FOREIGN_KEY_CHECKS=0;
-DROP PROCEDURE IF EXISTS test.p3;
-DROP PROCEDURE IF EXISTS test.p1;
-DROP PROCEDURE IF EXISTS test.p2;
-DROP TABLE IF EXISTS test.t1;
-DROP TABLE IF EXISTS test.t2;
-DROP TABLE IF EXISTS test.t3;
+DROP PROCEDURE test.p3;
+DROP PROCEDURE test.p1;
+DROP PROCEDURE test.p2;
+DROP TABLE test.t1;
+DROP TABLE test.t2;
+DROP TABLE test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp003.result b/mysql-test/suite/rpl/r/rpl_row_sp003.result
index df3e2a7ceed..5650af7a916 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp003.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp003.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
@@ -47,3 +43,4 @@ a
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp005.result b/mysql-test/suite/rpl/r/rpl_row_sp005.result
index 01e1970e0df..df877233e94 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp005.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp005.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t2;
@@ -98,3 +94,4 @@ DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
DROP TABLE IF EXISTS test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result b/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result
index 6792a701577..da196bb3615 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP PROCEDURE IF EXISTS p1;
@@ -42,3 +38,4 @@ DROP TABLE t1;
DROP TABLE t2;
DROP PROCEDURE p1;
DROP PROCEDURE p2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result b/mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result
index 9a2822835f8..fc49f968b4a 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result
@@ -1,11 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-DROP PROCEDURE IF EXISTS test.p1;
-DROP TABLE IF EXISTS test.t1;
+include/master-slave.inc
+[connection master]
CREATE PROCEDURE test.p1(IN i INT)
BEGIN
DECLARE CONTINUE HANDLER FOR sqlexception BEGIN END;
@@ -46,5 +40,6 @@ num
SELECT * FROM test.t1;
num
13
-DROP PROCEDURE IF EXISTS test.p1;
-DROP TABLE IF EXISTS test.t1;
+DROP PROCEDURE test.p1;
+DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp008.result b/mysql-test/suite/rpl/r/rpl_row_sp008.result
index 23197964a24..f817e9c5f1b 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp008.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp008.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t2;
CREATE TABLE test.t1 (a INT,PRIMARY KEY(a));
@@ -32,3 +28,4 @@ a
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp009.result b/mysql-test/suite/rpl/r/rpl_row_sp009.result
index 35ce0d7b420..8e9a2cbb8e9 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp009.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp009.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
@@ -75,3 +71,4 @@ a
DROP PROCEDURE test.p1;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp010.result b/mysql-test/suite/rpl/r/rpl_row_sp010.result
index 02567465428..d31f37d8411 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp010.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp010.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP PROCEDURE IF EXISTS test.p3;
@@ -54,3 +50,4 @@ DROP PROCEDURE IF EXISTS test.p3;
DROP PROCEDURE IF EXISTS test.p4;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp011.result b/mysql-test/suite/rpl/r/rpl_row_sp011.result
index e35c9f21adb..8588d739dff 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp011.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp011.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP PROCEDURE IF EXISTS test.p3;
@@ -67,3 +63,4 @@ DROP PROCEDURE IF EXISTS test.p6;
DROP PROCEDURE IF EXISTS test.p7;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_sp012.result b/mysql-test/suite/rpl/r/rpl_row_sp012.result
index b9c818bad9a..57d92386638 100644
--- a/mysql-test/suite/rpl/r/rpl_row_sp012.result
+++ b/mysql-test/suite/rpl/r/rpl_row_sp012.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP PROCEDURE IF EXISTS test.p3;
@@ -57,3 +53,4 @@ DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
DROP USER user1@localhost;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result b/mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result
index 1934b01505c..09a3e4b73de 100644
--- a/mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result
+++ b/mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result
@@ -1,17 +1,14 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (words varchar(20)) engine=myisam;
load data infile '../../std_data/words.dat' into table t1 (words);
select count(*) from t1;
count(*)
70
+include/wait_for_slave_sql_to_stop.inc
select count(*) from t1;
count(*)
70
drop table t1;
-include/stop_slave.inc
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result b/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result
index 2b83bffd85f..5a29acfda1d 100644
--- a/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
STOP SLAVE;
SET @my_sql_mode= @@global.sql_mode;
SET GLOBAL SQL_MODE='STRICT_ALL_TABLES';
@@ -118,27 +114,21 @@ a b
SELECT * FROM t2;
a
2
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
INSERT INTO t9 VALUES (4);
INSERT INTO t4 VALUES (4);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4'
INSERT INTO t9 VALUES (5);
INSERT INTO t5 VALUES (5,10,25);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4'
INSERT INTO t9 VALUES (6);
INSERT INTO t6 VALUES (6,12,36);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4'
INSERT INTO t9 VALUES (6);
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
INSERT INTO t7 VALUES (1),(2),(3);
INSERT INTO t8 VALUES (1),(2),(3);
SELECT * FROM t7 ORDER BY a;
@@ -194,3 +184,4 @@ a b x y z
DROP TABLE IF EXISTS t1_int,t1_bit,t1_char,t1_nodef;
DROP TABLE IF EXISTS t2,t3,t4,t5,t6,t7,t8,t9;
SET @@global.sql_mode= @my_sql_mode;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result b/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result
index a42530c354d..f6620ecf05f 100644
--- a/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
STOP SLAVE;
SET @my_sql_mode= @@global.sql_mode;
SET GLOBAL SQL_MODE='STRICT_ALL_TABLES';
@@ -118,27 +114,21 @@ a b
SELECT * FROM t2;
a
2
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
INSERT INTO t9 VALUES (4);
INSERT INTO t4 VALUES (4);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4'
INSERT INTO t9 VALUES (5);
INSERT INTO t5 VALUES (5,10,25);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4'
INSERT INTO t9 VALUES (6);
INSERT INTO t6 VALUES (6,12,36);
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4'
INSERT INTO t9 VALUES (6);
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
INSERT INTO t7 VALUES (1),(2),(3);
INSERT INTO t8 VALUES (1),(2),(3);
SELECT * FROM t7 ORDER BY a;
@@ -194,3 +184,4 @@ a b x y z
DROP TABLE IF EXISTS t1_int,t1_bit,t1_char,t1_nodef;
DROP TABLE IF EXISTS t2,t3,t4,t5,t6,t7,t8,t9;
SET @@global.sql_mode= @my_sql_mode;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result b/mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result
index 711d0d063aa..eaee105a2d9 100644
--- a/mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result
+++ b/mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS `t1`;
### TABLE with field_metadata_size == 290
CREATE TABLE `t1` (
@@ -159,15 +155,10 @@ LOCK TABLES `t1` WRITE;
INSERT INTO `t1`(c2) VALUES ('1');
FLUSH LOGS;
### assertion: the slave replicated event successfully and tables match
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE `t1`;
=== Using mysqlbinlog to detect failure. Before the patch mysqlbinlog would find a corrupted event, thence would fail.
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
### action: generating several tables with different metadata
### sizes (resorting to perl)
### testing table with 249 field metadata size.
@@ -182,25 +173,26 @@ start slave;
### testing table with 258 field metadata size.
FLUSH LOGS;
### assertion: the slave replicated event successfully and tables match for t10
-Comparing tables master:test.t10 and slave:test.t10
+include/diff_tables.inc [master:t10, slave:t10]
### assertion: the slave replicated event successfully and tables match for t9
-Comparing tables master:test.t9 and slave:test.t9
+include/diff_tables.inc [master:t9, slave:t9]
### assertion: the slave replicated event successfully and tables match for t8
-Comparing tables master:test.t8 and slave:test.t8
+include/diff_tables.inc [master:t8, slave:t8]
### assertion: the slave replicated event successfully and tables match for t7
-Comparing tables master:test.t7 and slave:test.t7
+include/diff_tables.inc [master:t7, slave:t7]
### assertion: the slave replicated event successfully and tables match for t6
-Comparing tables master:test.t6 and slave:test.t6
+include/diff_tables.inc [master:t6, slave:t6]
### assertion: the slave replicated event successfully and tables match for t5
-Comparing tables master:test.t5 and slave:test.t5
+include/diff_tables.inc [master:t5, slave:t5]
### assertion: the slave replicated event successfully and tables match for t4
-Comparing tables master:test.t4 and slave:test.t4
+include/diff_tables.inc [master:t4, slave:t4]
### assertion: the slave replicated event successfully and tables match for t3
-Comparing tables master:test.t3 and slave:test.t3
+include/diff_tables.inc [master:t3, slave:t3]
### assertion: the slave replicated event successfully and tables match for t2
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
### assertion: the slave replicated event successfully and tables match for t1
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
### assertion: check that binlog is not corrupt. Using mysqlbinlog to
### detect failure. Before the patch mysqlbinlog would find
### a corrupted event, thence would fail.
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_trig001.result b/mysql-test/suite/rpl/r/rpl_row_trig001.result
index ea0ef27fccd..d00da976d30 100644
--- a/mysql-test/suite/rpl/r/rpl_row_trig001.result
+++ b/mysql-test/suite/rpl/r/rpl_row_trig001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE test.t1 (n MEDIUMINT NOT NULL, d DATETIME, PRIMARY KEY(n));
CREATE TABLE test.t2 (n MEDIUMINT NOT NULL AUTO_INCREMENT, f FLOAT, d DATETIME, PRIMARY KEY(n));
CREATE TABLE test.t3 (n MEDIUMINT NOT NULL AUTO_INCREMENT, d DATETIME, PRIMARY KEY(n));
@@ -29,3 +25,4 @@ DROP TRIGGER test.t3_bi_t2;
DROP TABLE test.t1;
DROP TABLE test.t2;
DROP TABLE test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_trig002.result b/mysql-test/suite/rpl/r/rpl_row_trig002.result
index 794104db750..b0be0316bf2 100644
--- a/mysql-test/suite/rpl/r/rpl_row_trig002.result
+++ b/mysql-test/suite/rpl/r/rpl_row_trig002.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TRIGGER test.t2_ai;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
@@ -67,3 +63,4 @@ DROP TRIGGER test.t2_ai;
DROP TABLE test.t1;
DROP TABLE test.t2;
DROP TABLE test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_trig003.result b/mysql-test/suite/rpl/r/rpl_row_trig003.result
index 43c2ecde2b4..68552ede1c0 100644
--- a/mysql-test/suite/rpl/r/rpl_row_trig003.result
+++ b/mysql-test/suite/rpl/r/rpl_row_trig003.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TRIGGER test.t1_bi;
DROP TRIGGER test.t2_ai;
DROP TRIGGER test.t1_bu;
@@ -81,3 +77,4 @@ DROP TRIGGER test.t2_ad;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
DROP TABLE IF EXISTS test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_trig004.result b/mysql-test/suite/rpl/r/rpl_row_trig004.result
index d0d0657f875..50317b55e2e 100644
--- a/mysql-test/suite/rpl/r/rpl_row_trig004.result
+++ b/mysql-test/suite/rpl/r/rpl_row_trig004.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TRIGGER test.t1_bi_t2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
@@ -28,3 +24,4 @@ n f
DROP TRIGGER test.t1_bi_t2;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_trunc_temp.result b/mysql-test/suite/rpl/r/rpl_row_trunc_temp.result
index f9181be9bc0..d3b892326ac 100644
--- a/mysql-test/suite/rpl/r/rpl_row_trunc_temp.result
+++ b/mysql-test/suite/rpl/r/rpl_row_trunc_temp.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TEMPORARY TABLE t1(c1 INTEGER);
CREATE TABLE t2(c1 INTEGER);
CREATE TABLE t1(c1 INTEGER);
@@ -27,3 +23,4 @@ SELECT * FROM t2;
c1
DROP TABLE t1;
DROP TABLE t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result b/mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result
index 800670b78ae..b9ae1893629 100644
--- a/mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result
+++ b/mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT, b INT);
INSERT INTO t1 SELECT 1;
@@ -20,3 +16,4 @@ b
1
3
DROP TABLE t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_until.result b/mysql-test/suite/rpl/r/rpl_row_until.result
index 81aeb0d645b..5629f5c8cdd 100644
--- a/mysql-test/suite/rpl/r/rpl_row_until.result
+++ b/mysql-test/suite/rpl/r/rpl_row_until.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
INSERT INTO t1 VALUES (1),(2),(3),(4);
DROP TABLE t1;
@@ -14,27 +10,37 @@ DROP TABLE t2;
include/stop_slave.inc
RESET SLAVE;
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_drop_t1
+include/wait_for_slave_sql_to_stop.inc
SELECT * FROM t1;
n
1
2
3
4
+include/check_slave_param.inc [Exec_Master_Log_Pos]
START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
+include/wait_for_slave_sql_to_stop.inc
SELECT * FROM t1;
n
1
2
3
4
+include/check_slave_param.inc [Exec_Master_Log_Pos]
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=relay_pos_insert1_t2
+include/wait_for_slave_sql_to_stop.inc
SELECT * FROM t2;
n
1
2
+include/check_slave_param.inc [Exec_Master_Log_Pos]
START SLAVE;
+include/wait_for_slave_to_start.inc
include/stop_slave.inc
START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_create_t2
+include/wait_for_slave_param.inc [Until_Log_Pos]
+include/wait_for_slave_sql_to_stop.inc
+include/check_slave_param.inc [Exec_Master_Log_Pos]
START SLAVE UNTIL MASTER_LOG_FILE='master-bin', MASTER_LOG_POS=MASTER_LOG_POS;
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS, RELAY_LOG_POS=RELAY_LOG_POS;
@@ -49,3 +55,6 @@ START SLAVE;
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
Warnings:
Note 1254 Slave is already running
+include/stop_slave.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_view01.result b/mysql-test/suite/rpl/r/rpl_row_view01.result
index 4dfe5826f32..471de20ea6d 100644
--- a/mysql-test/suite/rpl/r/rpl_row_view01.result
+++ b/mysql-test/suite/rpl/r/rpl_row_view01.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create database if not exists mysqltest1;
DROP VIEW IF EXISTS mysqltest1.v1;
DROP VIEW IF EXISTS mysqltest1.v2;
@@ -102,3 +98,4 @@ DROP TABLE IF EXISTS mysqltest1.t2;
DROP TABLE IF EXISTS mysqltest1.t4;
DROP TABLE IF EXISTS mysqltest1.t10;
DROP DATABASE mysqltest1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_row_wide_table.result b/mysql-test/suite/rpl/r/rpl_row_wide_table.result
index da96e84d1d5..f469a13837c 100644
--- a/mysql-test/suite/rpl/r/rpl_row_wide_table.result
+++ b/mysql-test/suite/rpl/r/rpl_row_wide_table.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t300;
create table t300 (
f1 int,
@@ -316,3 +312,4 @@ one
1
*** Cleanup ***
DROP TABLE t300;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_server_id1.result b/mysql-test/suite/rpl/r/rpl_server_id1.result
index 76f187e3b01..80e5bbae146 100644
--- a/mysql-test/suite/rpl/r/rpl_server_id1.result
+++ b/mysql-test/suite/rpl/r/rpl_server_id1.result
@@ -1,13 +1,7 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-reset master;
-include/stop_slave.inc
-change master to master_port=SLAVE_PORT;
-start slave;
-*** must be having the replicate-same-server-id IO thread error ***
-Slave_IO_Errno= 1593
-Slave_IO_Error= Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
+include/rpl_init.inc [topology=2->2]
+START SLAVE;
+include/wait_for_slave_io_error.inc [errno=1593]
+Last_IO_Error = 'Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).'
+include/stop_slave_sql.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_server_id2.result b/mysql-test/suite/rpl/r/rpl_server_id2.result
index bb5a175fbfe..dacb69bc7cb 100644
--- a/mysql-test/suite/rpl/r/rpl_server_id2.result
+++ b/mysql-test/suite/rpl/r/rpl_server_id2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (n int);
reset master;
stop slave;
@@ -21,6 +17,8 @@ create table t1(n int);
create table t2(n int);
change master to master_port=MASTER_PORT;
start slave until master_log_file='master-bin.000001', master_log_pos=UNTIL_POS;
+include/wait_for_slave_io_to_start.inc
+include/wait_for_slave_sql_to_stop.inc
*** checking until postion execution: must be only t1 in the list ***
show tables;
Tables_in_test
@@ -28,3 +26,4 @@ t1
start slave sql_thread;
drop table t1;
drop table t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_session_var.result b/mysql-test/suite/rpl/r/rpl_session_var.result
index 297a18a5931..030ae161b22 100644
--- a/mysql-test/suite/rpl/r/rpl_session_var.result
+++ b/mysql-test/suite/rpl/r/rpl_session_var.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1;
Warnings:
Note 1051 Unknown table 't1'
@@ -51,3 +47,4 @@ SELECT length(data) < 100 FROM t1;
length(data) < 100
1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_set_charset.result b/mysql-test/suite/rpl/r/rpl_set_charset.result
index 480d926fbba..fa30a361d13 100644
--- a/mysql-test/suite/rpl/r/rpl_set_charset.result
+++ b/mysql-test/suite/rpl/r/rpl_set_charset.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1 /*!40100 character set latin2 */;
use mysqltest1;
@@ -46,3 +42,4 @@ D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF D0
E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF E0
F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF F0
drop database mysqltest1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_set_null_innodb.result b/mysql-test/suite/rpl/r/rpl_set_null_innodb.result
index 41600a5fe1b..f099b2b7691 100644
--- a/mysql-test/suite/rpl/r/rpl_set_null_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_set_null_innodb.result
@@ -1,35 +1,22 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=InnoDB;
INSERT INTO `t1` VALUES ( 1, 1 );
UPDATE t1 SET c1=NULL where c2=1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 WHERE c2=1 LIMIT 1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 CHAR) Engine=InnoDB;
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
SELECT * FROM t1;
c1
w
UPDATE t1 SET c1=NULL WHERE c1='w';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 LIMIT 2;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_set_null_myisam.result b/mysql-test/suite/rpl/r/rpl_set_null_myisam.result
index cbd7010664a..5698be4ff0c 100644
--- a/mysql-test/suite/rpl/r/rpl_set_null_myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_set_null_myisam.result
@@ -1,35 +1,22 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=MyISAM;
INSERT INTO `t1` VALUES ( 1, 1 );
UPDATE t1 SET c1=NULL where c2=1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 WHERE c2=1 LIMIT 1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 CHAR) Engine=MyISAM;
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
SELECT * FROM t1;
c1
w
UPDATE t1 SET c1=NULL WHERE c1='w';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 LIMIT 2;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_show_slave_running.result b/mysql-test/suite/rpl/r/rpl_show_slave_running.result
index 598762d5188..66958c67428 100644
--- a/mysql-test/suite/rpl/r/rpl_show_slave_running.result
+++ b/mysql-test/suite/rpl/r/rpl_show_slave_running.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET DEBUG_SYNC= 'RESET';
include/stop_slave.inc
set global debug= 'd,dbug.before_get_running_status_yes';
@@ -21,6 +17,7 @@ Slave_running OFF
Slave_IO_Running= No
Slave_SQL_Running= No
SET DEBUG_SYNC='now SIGNAL signal.io_thread_let_running';
+include/wait_for_slave_param.inc [Slave_IO_Running]
Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF YES NO in three following queries
SHOW STATUS LIKE 'Slave_running';
Variable_name Value
@@ -28,6 +25,7 @@ Slave_running OFF
Slave_IO_Running= Yes
Slave_SQL_Running= No
start slave sql_thread;
+include/wait_for_slave_sql_to_start.inc
Slave_running, Slave_IO_Running, Slave_SQL_Running must be ON, YES, YES in three following queries
SHOW STATUS LIKE 'Slave_running';
Variable_name Value
@@ -37,3 +35,4 @@ Slave_SQL_Running= Yes
set global debug= '';
SET DEBUG_SYNC= 'RESET';
End of tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_skip_error.result b/mysql-test/suite/rpl/r/rpl_skip_error.result
index 0aa8069a38c..d46338fd5b0 100644
--- a/mysql-test/suite/rpl/r/rpl_skip_error.result
+++ b/mysql-test/suite/rpl/r/rpl_skip_error.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Test Without sql_mode=strict_trans_tables ====
[on master]
create table t1 (n int not null primary key);
@@ -31,7 +27,7 @@ n
3
7
8
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
==== Clean Up ====
drop table t1;
create table t1(a int primary key);
@@ -46,7 +42,7 @@ select * from t1;
a
1
2
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
==== Clean Up ====
drop table t1;
==== Using Innodb ====
@@ -112,3 +108,4 @@ UPDATE t2 SET id= id + 3, data = 2;
==== Clean Up ====
DROP TABLE t1;
DROP TABLE t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result b/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
index eb3c4ef5978..25deb65fa0f 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
*** Preparing data ***
CREATE TABLE t1 (a INT NOT NULL, b VARCHAR(10)) ENGINE=MyISAM;
@@ -33,6 +29,7 @@ a b
SELECT * FROM t3 ORDER BY a;
a b
1 ZZ
+include/wait_for_slave_sql_error.inc [errno=1146]
SHOW TABLES LIKE 't%';
Tables_in_test (t%)
t1
@@ -44,7 +41,7 @@ a b
SELECT * FROM t2 ORDER BY a;
a b
1 AA_for_row_or_YY_for_stmt_mixed
-include/stop_slave.inc
+include/stop_slave_io.inc
RENAME TABLE t3_bak TO t3;
include/start_slave.inc
TRUNCATE t1;
@@ -60,6 +57,7 @@ INSERT INTO t3 VALUES(2, 'B');
INSERT INTO t2 VALUES(2, 'B');
INSERT INTO t1 VALUES(2, 'B');
UPDATE t1 SET b = 'X' WHERE a = 2;
+include/wait_for_slave_sql_error.inc [errno=1146]
SELECT * FROM t1 ORDER BY a;
a b
2 X
@@ -78,7 +76,7 @@ SELECT * FROM t1 ORDER BY a;
a b
SELECT * FROM t2 ORDER BY a;
a b
-include/stop_slave.inc
+include/stop_slave_io.inc
RENAME TABLE t3_bak TO t3;
include/start_slave.inc
TRUNCATE t1;
@@ -95,6 +93,7 @@ INSERT INTO t1 VALUES (3, 'C'), (4, 'D');
INSERT INTO t2 VALUES (3, 'C'), (4, 'D');
INSERT INTO t3 VALUES (3, 'C'), (4, 'D');
COMMIT;
+include/wait_for_slave_sql_error.inc [errno=1146]
SELECT * FROM t1 ORDER BY a;
a b
3 C
@@ -116,8 +115,9 @@ SELECT * FROM t1 ORDER BY a;
a b
SELECT * FROM t2 ORDER BY a;
a b
-include/stop_slave.inc
+include/stop_slave_io.inc
RENAME TABLE t3_bak TO t3;
include/start_slave.inc
*** Clean up ***
DROP TABLE t1,t2,t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_load_in.result b/mysql-test/suite/rpl/r/rpl_slave_load_in.result
index 2cc83fd0a19..504f6f60d9e 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_load_in.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_load_in.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int not null auto_increment, b int, primary key(a));
create table t2(a int not null auto_increment, b int, primary key(a)) engine=innodb;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
@@ -13,7 +9,8 @@ insert into t2(b) values (2);
load data infile '../../std_data/rpl_loaddata.dat' into table t2;
load data infile '../../std_data/rpl_loaddata.dat' into table t2;
commit;
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:t2, slave:t2]
drop table t1;
drop table t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result b/mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result
index c3c4f7c015a..213ab06f0c1 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result
@@ -1,15 +1,16 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(a int not null auto_increment, b int, primary key(a)) engine=innodb;
start transaction;
insert into t1(b) values (1);
insert into t1(b) values (2);
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
commit;
+include/wait_for_slave_sql_error.inc [errno=9]
drop table t1;
+include/sync_slave_io_with_master.inc
+include/stop_slave_io.inc
+RESET SLAVE;
drop table t1;
call mtr.add_suppression("Slave: Error writing file 'UNKNOWN' .Errcode: 9. Error_code: 3");
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result b/mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result
index 3ed14a9cb6b..8cd6218dcdc 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result
@@ -1,6 +1,7 @@
-CHANGE MASTER TO MASTER_USER='root',
-MASTER_CONNECT_RETRY=1,
-MASTER_HOST='127.0.0.1',
-MASTER_PORT=MASTER_MYPORT;
+include/master-slave.inc
+[connection master]
START SLAVE;
-12
+include/wait_for_slave_sql_error.inc [errno=12]
+include/stop_slave_io.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_skip.result b/mysql-test/suite/rpl/r/rpl_slave_skip.result
index a4067fb7983..e5fe33aed19 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_skip.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_skip.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** On Slave ****
STOP SLAVE;
**** On Master ****
@@ -43,6 +39,9 @@ c d
3 18
**** On Slave ****
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
+include/wait_for_slave_sql_to_stop.inc
+include/check_slave_param.inc [Exec_Master_Log_Pos]
+include/check_slave_no_error.inc
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
SELECT * FROM t1;
@@ -66,6 +65,7 @@ Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # User var # # @`foo`=12
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(@foo, 2*@foo)
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
+include/wait_for_slave_sql_to_stop.inc
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
**** On Master ****
@@ -279,3 +279,4 @@ include/start_slave.inc
SELECT * FROM t10 ORDER BY a;
a b
DROP TABLE t10;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slave_status.result b/mysql-test/suite/rpl/r/rpl_slave_status.result
index a98a81dc74f..cbd71002c04 100644
--- a/mysql-test/suite/rpl/r/rpl_slave_status.result
+++ b/mysql-test/suite/rpl/r/rpl_slave_status.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Create new replication user ====
[on master]
GRANT REPLICATION SLAVE ON *.* TO rpl@127.0.0.1 IDENTIFIED BY 'rpl';
@@ -27,9 +23,11 @@ FLUSH PRIVILEGES;
==== Restart slave without privileges =====
include/stop_slave.inc
START SLAVE;
-==== Verify that Slave_IO_Running = No ====
-Slave_IO_Running = No (should be No)
+include/wait_for_slave_sql_to_start.inc
+==== Verify that Slave IO thread stopped with error ====
+include/wait_for_slave_io_error.inc [errno=1045]
==== Cleanup (Note that slave IO thread is not running) ====
-DROP TABLE t1;
+include/rpl_reset.inc
[on master]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_slow_query_log.result b/mysql-test/suite/rpl/r/rpl_slow_query_log.result
index a4479f0c544..46da59a583d 100644
--- a/mysql-test/suite/rpl/r/rpl_slow_query_log.result
+++ b/mysql-test/suite/rpl/r/rpl_slow_query_log.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
include/stop_slave.inc
SET @old_log_output= @@log_output;
@@ -46,12 +42,7 @@ include/stop_slave.inc
SET GLOBAL long_query_time= @old_long_query_time;
SET GLOBAL log_output= @old_log_output;
include/start_slave.inc
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
SET @old_log_output= @@log_output;
SET GLOBAL log_output= 'TABLE';
SET GLOBAL long_query_time= 2;
@@ -89,3 +80,4 @@ SET @@global.long_query_time= @old_long_query_time;
DROP TABLE t1;
SET @@global.log_output= @old_log_output;
SET @@global.long_query_time= @old_long_query_time;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_sp.result b/mysql-test/suite/rpl/r/rpl_sp.result
index 8f06653f8ab..fc9c05ebc81 100644
--- a/mysql-test/suite/rpl/r/rpl_sp.result
+++ b/mysql-test/suite/rpl/r/rpl_sp.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1;
use mysqltest1;
@@ -989,3 +985,4 @@ drop procedure ` mysqltestbug36570_p2`;
drop function mysqltestbug36570_f1;
End of 5.0 tests
End of 5.1 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_sp004.result b/mysql-test/suite/rpl/r/rpl_sp004.result
index 1c0ed3cc50a..5b67d225490 100644
--- a/mysql-test/suite/rpl/r/rpl_sp004.result
+++ b/mysql-test/suite/rpl/r/rpl_sp004.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t2;
@@ -91,3 +87,4 @@ DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
DROP TABLE IF EXISTS test.t3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_sp_effects.result b/mysql-test/suite/rpl/r/rpl_sp_effects.result
index d9cdfd81167..a6e3ae03963 100644
--- a/mysql-test/suite/rpl/r/rpl_sp_effects.result
+++ b/mysql-test/suite/rpl/r/rpl_sp_effects.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
drop procedure if exists p1;
drop procedure if exists p2;
@@ -278,3 +274,4 @@ drop procedure sp_bug26199;
drop function sf_bug26199;
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
end of the tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_sporadic_master.result b/mysql-test/suite/rpl/r/rpl_sporadic_master.result
index 14fb673a081..e8278bf3744 100644
--- a/mysql-test/suite/rpl/r/rpl_sporadic_master.result
+++ b/mysql-test/suite/rpl/r/rpl_sporadic_master.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t2(n int);
create table t1(n int not null auto_increment primary key);
insert into t1 values (NULL),(NULL);
@@ -24,3 +20,4 @@ n
14
15
drop table t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_ssl.result b/mysql-test/suite/rpl/r/rpl_ssl.result
index 1af4c5e227c..35aaabc8c56 100644
--- a/mysql-test/suite/rpl/r/rpl_ssl.result
+++ b/mysql-test/suite/rpl/r/rpl_ssl.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
grant replication slave on *.* to replssl@localhost require ssl;
create table t1 (t int auto_increment, KEY(t));
stop slave;
@@ -19,23 +15,32 @@ insert into t1 values(1);
select * from t1;
t
1
-Master_SSL_Allowed Yes
-Master_SSL_CA_Path
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
-Checking that both slave threads are running.
+Master_SSL_Allowed = 'Yes'
+Master_SSL_CA_Path = ''
+Master_SSL_CA_File = 'MYSQL_TEST_DIR/std_data/cacert.pem'
+Master_SSL_Cert = 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+Master_SSL_Key = 'MYSQL_TEST_DIR/std_data/client-key.pem'
+include/check_slave_is_running.inc
STOP SLAVE;
select * from t1;
t
1
insert into t1 values (NULL);
-Master_SSL_Allowed Yes
-Master_SSL_CA_Path
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
-Checking that both slave threads are running.
+include/wait_for_slave_to_start.inc
+Master_SSL_Allowed = 'Yes'
+Master_SSL_CA_Path = ''
+Master_SSL_CA_File = 'MYSQL_TEST_DIR/std_data/cacert.pem'
+Master_SSL_Cert = 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+Master_SSL_Key = 'MYSQL_TEST_DIR/std_data/client-key.pem'
+include/check_slave_is_running.inc
drop user replssl@localhost;
drop table t1;
+include/stop_slave.inc
+CHANGE MASTER TO
+master_user = 'root',
+master_ssl = 0,
+master_ssl_ca = '',
+master_ssl_cert = '',
+master_ssl_key = '';
End of 5.0 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_ssl1.result b/mysql-test/suite/rpl/r/rpl_ssl1.result
index 5b4aa126c77..5e1614f5aac 100644
--- a/mysql-test/suite/rpl/r/rpl_ssl1.result
+++ b/mysql-test/suite/rpl/r/rpl_ssl1.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
grant replication slave on *.* to replssl@localhost require ssl;
create table t1 (t int);
stop slave;
@@ -18,23 +14,23 @@ start slave;
select * from t1;
t
1
-Master_SSL_Allowed Yes
-Master_SSL_CA_Path
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
-Checking that both slave threads are running.
+Master_SSL_Allowed = 'Yes'
+Master_SSL_CA_Path = ''
+Master_SSL_CA_File = 'MYSQL_TEST_DIR/std_data/cacert.pem'
+Master_SSL_Cert = 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+Master_SSL_Key = 'MYSQL_TEST_DIR/std_data/client-key.pem'
+include/check_slave_is_running.inc
stop slave;
change master to master_user='root',master_password='', master_ssl=0;
start slave;
drop user replssl@localhost;
drop table t1;
-Master_SSL_Allowed No
-Master_SSL_CA_Path
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
-Checking that both slave threads are running.
+Master_SSL_Allowed = 'No'
+Master_SSL_CA_Path = ''
+Master_SSL_CA_File = 'MYSQL_TEST_DIR/std_data/cacert.pem'
+Master_SSL_Cert = 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+Master_SSL_Key = 'MYSQL_TEST_DIR/std_data/client-key.pem'
+include/check_slave_is_running.inc
stop slave;
change master to
master_host="localhost",
@@ -50,10 +46,19 @@ on slave
select * from t1;
t
1
-Master_SSL_Allowed Yes
-Master_SSL_CA_Path
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
-Checking that both slave threads are running.
+Master_SSL_Allowed = 'Yes'
+Master_SSL_CA_Path = ''
+Master_SSL_CA_File = 'MYSQL_TEST_DIR/std_data/cacert.pem'
+Master_SSL_Cert = 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+Master_SSL_Key = 'MYSQL_TEST_DIR/std_data/client-key.pem'
+include/check_slave_is_running.inc
drop table t1;
+include/stop_slave.inc
+CHANGE MASTER TO
+master_host="127.0.0.1",
+master_ssl_ca ='',
+master_ssl_cert='',
+master_ssl_key='',
+master_ssl_verify_server_cert=0,
+master_ssl=0;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_start_stop_slave.result b/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
index e2b1935c268..ee667771ef0 100644
--- a/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
@@ -1,14 +1,11 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1(n int);
stop slave;
start slave;
stop slave io_thread;
start slave io_thread;
+include/wait_for_slave_to_start.inc
drop table t1;
create table t1i(n int primary key) engine=innodb;
create table t2m(n int primary key) engine=myisam;
@@ -28,6 +25,7 @@ zero
0
stop slave;
rollback;
+include/wait_for_slave_to_stop.inc
*** sql thread is *not* running: No ***
*** the prove: the stopped slave has finished the current transaction ***
five
@@ -38,3 +36,4 @@ one
1
include/start_slave.inc
drop table t1i, t2m;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_000001.result b/mysql-test/suite/rpl/r/rpl_stm_000001.result
index c2a24cbaa82..d4290331b8c 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_000001.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_000001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1;
@@ -52,8 +48,7 @@ select (@id := id) - id from t2;
kill @id;
drop table t2;
Got one of the listed errors
-set global sql_slave_skip_counter=1;
-start slave;
+include/wait_for_slave_sql_error_and_skip.inc [errno=1053]
select count(*) from t1;
count(*)
5000
@@ -81,3 +76,4 @@ select_priv user
Y blafasel2
drop table t1;
delete from mysql.user where user="blafasel2";
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result b/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result
index 4bbbc0e99c6..0e83f1dfb67 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_EE_err2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int, unique(a)) engine=myisam;
set sql_log_bin=0;
insert into t1 values(2);
@@ -11,6 +7,10 @@ set sql_log_bin=1;
insert into t1 values(1),(2);
ERROR 23000: Duplicate entry '2' for key 'a'
drop table t1;
+include/wait_for_slave_sql_to_stop.inc
Error: "Query caused different errors on master and slave. Error on master: message (format)='Duplicate entry '%-.192s' for key %d' error code=1062 ; Error on slave: actual message='no error', error code=0. Default database: 'test'. Query: 'insert into t1 values(1),(2)'" (expected different error codes on master and slave)
Errno: "0" (expected 0)
drop table t1;
+include/stop_slave.inc
+RESET SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result b/mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
index 2f6e98d5eec..2b974d0d98c 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1, t2;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
@@ -167,3 +163,4 @@ DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
DROP FUNCTION IF EXISTS f1;
DROP TRIGGER IF EXISTS tr1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result b/mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
index 818e383e2f1..8fdac1a5c97 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set @@session.binlog_direct_non_transactional_updates= TRUE;
#########################################################################
# CONFIGURATION
@@ -1358,3 +1354,4 @@ master-bin.000001 # Query # # ROLLBACK
###################################################################################
# CLEAN
###################################################################################
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_conflicts.result b/mysql-test/suite/rpl/r/rpl_stm_conflicts.result
index b0df9516b7c..b56297a5487 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_conflicts.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_conflicts.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialize ====
[on master]
CREATE TABLE t1(a INT PRIMARY KEY);
@@ -19,6 +15,7 @@ a
1
[on slave]
---- Wait until slave stops with an error ----
+include/wait_for_slave_sql_error.inc [errno=1062]
Last_SQL_Error = Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (1)' (expected "duplicate key" error)
SELECT * FROM t1;
a
@@ -26,6 +23,7 @@ a
---- Resolve the conflict on the slave and restart SQL thread ----
DELETE FROM t1 WHERE a = 1;
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
---- Sync slave and verify that there is no error ----
Last_SQL_Error = '' (expected no error)
SELECT * FROM t1;
@@ -52,3 +50,4 @@ a
[on master]
DROP TABLE t1;
[on slave]
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result b/mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result
index 9ae1ef315b6..d833852e193 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result
@@ -1,12 +1,8 @@
# WL#5370 Keep forward-compatibility when changing 'CREATE TABLE IF NOT
# EXISTS ... SELECT' behaviour
#
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t2(c1 INT, c2 char(10));
@@ -21,7 +17,7 @@ show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS t1 (c1 INT , c2 INT, c3 char(10), c4 INT KEY)
SELECT 'abc' AS c3, 1 AS c4
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# The statement should be binlogged as two events. one is
# 'CREATE TABLE IF NOT EXISTS ..', another one is
@@ -44,7 +40,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`t1` (`c3`,`c4`) SELECT 'abc', 2
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Verify if it can be binlogged with right database name when the table
# is not in the default database
@@ -68,7 +64,7 @@ master-bin.000001 # Query # # use `db1`; CREATE TABLE IF NOT EXISTS `test`.`t1`
)
master-bin.000001 # Query # # use `db1`; INSERT INTO `test`.`t1` (`c3`,`c4`) SELECT 'abc', 20
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:test.t1,slave:test.t1]
USE test;
DROP DATABASE db1;
@@ -91,7 +87,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; REPLACE INTO `test`.`t1` (`c3`,`c4`) SELECT '123', 2
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# It should be binlogged as 'INSERT IGNORE... SELECT'
# if the original statement has option IGNORE
@@ -112,7 +108,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO `test`.`t1` (`c3`,`c4`) SELECT '123', 2
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Nothing should be binlogged if error happens and no any row is inserted
@@ -121,7 +117,7 @@ SELECT '123', 2;
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Verify it can binlog well when there are some braces('(')
@@ -169,7 +165,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO `test`.`t1` (`c3`,`c4`) (SELECT '123', 3) UNION (SELECT '123', 4)
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# Throw a warning that table already exists and don't insert anything
@@ -215,7 +211,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`t1` (`c3`,`c4`) SELECT '123', NAME_CONST('a',600)
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
DROP PROCEDURE p1;
# The statement can be binlogged correctly when it is in a prepared statement
@@ -251,7 +247,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`t1` (`c3`,`c4`) SELECT '123', 800
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
# The statement can be binlogged correctly when it is in a conditional comment
@@ -362,7 +358,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t1` (
)
master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`t1` (`c3`,`c4`) SELECT 'abc', 905
master-bin.000001 # Query # # COMMIT
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1,slave:t1]
DROP TABLE t2;
DROP TABLE t1;
@@ -702,3 +698,4 @@ master-bin.000001 # Query # # use `test`; INSERT INTO `test`.`t1` (`c3`,`c4`) SE
master-bin.000001 # Query # # COMMIT
DROP TABLE t2;
DROP TEMPORARY TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result b/mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result
index 61fee130d49..af44821a817 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int);
insert into t1 values (10);
create table t2 (a int);
@@ -21,10 +17,13 @@ flush tables;
select * from t3;
a
stop slave;
+include/wait_for_slave_to_stop.inc
drop table t1;
flush tables with read lock;
start slave;
+include/wait_for_slave_to_start.inc
stop slave;
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
unlock tables;
drop table t3, t4, t5;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result b/mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result
index 1bed2058687..b309096fbc0 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set @old_global_binlog_format = @@global.binlog_format;
set @@global.binlog_format = statement;
CREATE SCHEMA IF NOT EXISTS mysqlslap;
@@ -128,3 +124,4 @@ FLUSH LOGS;
FLUSH LOGS;
End of 5.0 tests
set @@global.binlog_format = @old_global_binlog_format;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_loadfile.result b/mysql-test/suite/rpl/r/rpl_stm_loadfile.result
index ca76695f4d4..b49f44273ff 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_loadfile.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_loadfile.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, PRIMARY KEY(a));
@@ -229,3 +225,4 @@ aberration
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_log.result b/mysql-test/suite/rpl/r/rpl_stm_log.result
index d73a689969f..4eeec6584fd 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_log.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_log.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
include/stop_slave.inc
reset master;
reset slave;
@@ -222,18 +218,13 @@ show binlog events in 'slave-bin.000002' from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM
slave-bin.000002 # Query # # use `test`; insert into t2 values (1)
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
create table t1(a int auto_increment primary key, b int);
insert into t1 values (NULL, 1);
set insert_id=5;
@@ -252,3 +243,4 @@ a b
5 1
6 1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result b/mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result
index db06cb6d3de..871d3218b70 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
stop slave;
#
# Generate a big enough master's binlog to cause relay log rotations
@@ -21,7 +17,7 @@ select @@global.max_relay_log_size;
@@global.max_relay_log_size
4096
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 2
#
@@ -31,7 +27,7 @@ set global max_relay_log_size=(5*4096);
select @@global.max_relay_log_size;
@@global.max_relay_log_size 20480
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 3: max_relay_log_size = 0
#
@@ -41,7 +37,7 @@ set global max_relay_log_size=0;
select @@global.max_relay_log_size;
@@global.max_relay_log_size 0
start slave;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
#
@@ -55,13 +51,13 @@ reset slave;
start slave;
flush logs;
create table t1 (a int);
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
#
# Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
#
flush logs;
drop table t1;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
flush logs;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
@@ -70,3 +66,4 @@ set global max_binlog_size= @my_max_binlog_size;
#
# End of 4.1 tests
#
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result b/mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
index 2ecaf2c90ae..ee4c710ecd2 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
###################################################################################
# CONFIGURATION
###################################################################################
@@ -868,12 +864,7 @@ DROP TABLE nt_4;
DROP PROCEDURE pc_i_tt_3;
DROP FUNCTION f1;
DROP FUNCTION f2;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE `t1` (
`c1` int(10) unsigned NOT NULL AUTO_INCREMENT,
`c2` tinyint(1) unsigned DEFAULT NULL,
@@ -887,5 +878,6 @@ INSERT INTO t1 (c1,c2,c3,c4,c5) VALUES (1, 1, 'X', 1, NULL);
COMMIT;
ROLLBACK;
SET AUTOCOMMIT=1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE `t1`;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_multi_query.result b/mysql-test/suite/rpl/r/rpl_stm_multi_query.result
index 625c686f383..0b4d179f385 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_multi_query.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_multi_query.result
@@ -1,10 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-drop database if exists mysqltest;
+include/master-slave.inc
+[connection master]
create database mysqltest;
create table mysqltest.t1 ( n int);
insert into mysqltest.t1 values(1)/
@@ -21,7 +16,6 @@ n
5
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Query # # drop database if exists mysqltest
master-bin.000001 # Query # # create database mysqltest
master-bin.000001 # Query # # use `test`; create table mysqltest.t1 ( n int)
master-bin.000001 # Query # # use `test`; insert into mysqltest.t1 values(1)
@@ -30,3 +24,4 @@ master-bin.000001 # Query # # use `test`; insert into mysqltest.t1 values(3)
master-bin.000001 # Query # # use `test`; insert into mysqltest.t1 values(4)
master-bin.000001 # Query # # use `test`; insert into mysqltest.t1 values(5)
drop database mysqltest;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_no_op.result b/mysql-test/suite/rpl/r/rpl_stm_no_op.result
index 5a253d61fcb..cf5b03cdfa6 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_no_op.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_no_op.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create database mysqltest;
drop database if exists mysqltest;
Warnings:
@@ -50,3 +46,4 @@ a b
select * from t2;
a b
drop table t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_reset_slave.result b/mysql-test/suite/rpl/r/rpl_stm_reset_slave.result
index 1fc189975ef..c263e27a11f 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_reset_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_reset_slave.result
@@ -1,21 +1,17 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-Master_User root
-Master_Host 127.0.0.1
+include/master-slave.inc
+[connection master]
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/stop_slave.inc
change master to master_user='test';
-Master_User test
-Master_Host 127.0.0.1
+Master_User = 'test'
+Master_Host = '127.0.0.1'
reset slave;
-Master_User root
-Master_Host 127.0.0.1
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/start_slave.inc
-Master_User root
-Master_Host 127.0.0.1
+Master_User = 'root'
+Master_Host = '127.0.0.1'
include/stop_slave.inc
reset slave;
include/start_slave.inc
@@ -28,13 +24,19 @@ Variable_name Value
Slave_open_temp_tables 1
include/stop_slave.inc
reset slave;
+include/check_slave_no_error.inc
change master to master_user='impossible_user_name';
start slave;
-include/stop_slave.inc
+include/wait_for_slave_io_error.inc [errno=1045]
+include/stop_slave_sql.inc
change master to master_user='root';
include/start_slave.inc
+include/check_slave_no_error.inc
include/stop_slave.inc
change master to master_user='impossible_user_name';
start slave;
-include/stop_slave.inc
+include/wait_for_slave_io_error.inc [errno=1045]
+include/stop_slave_sql.inc
reset slave;
+include/check_slave_no_error.inc
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_sql_mode.result b/mysql-test/suite/rpl/r/rpl_stm_sql_mode.result
index fd143fc8a50..fa5ac2a0c85 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_sql_mode.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_sql_mode.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (pk integer auto_increment , primary key (pk));
SET SESSION SQL_MODE='traditional';
# **** [MASTER] *****
@@ -16,3 +12,4 @@ DROP TABLE t1;
# assertion: sync slave with master makes slave not to stop with
# duplicate key error (because it has received event
# with expected error code).
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_until.result b/mysql-test/suite/rpl/r/rpl_stm_until.result
index 118d31d78c8..a71746d7fba 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_until.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_until.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
[on slave]
include/stop_slave.inc
==== Create some events on master ====
@@ -18,29 +14,41 @@ drop table t2;
==== Replicate one event at a time on slave ====
[on slave]
start slave until master_log_file='MASTER_LOG_FILE', master_log_pos=MASTER_LOG_POS;
+include/wait_for_slave_io_to_start.inc
+include/wait_for_slave_sql_to_stop.inc
select * from t1;
n
1
2
3
4
+include/check_slave_param.inc [Exec_Master_Log_Pos]
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=MASTER_LOG_POS;
+include/wait_for_slave_io_to_start.inc
+include/wait_for_slave_sql_to_stop.inc
select * from t1;
n
1
2
3
4
-start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=RELAY_LOG_POS;
+include/check_slave_param.inc [Exec_Master_Log_Pos]
+start slave until relay_log_file='slave-relay-bin.000003', relay_log_pos=RELAY_LOG_POS;
+include/wait_for_slave_io_to_start.inc
+include/wait_for_slave_sql_to_stop.inc
select * from t2;
n
1
2
+include/check_slave_param.inc [Exec_Master_Log_Pos]
start slave;
[on master]
[on slave]
include/stop_slave.inc
start slave until master_log_file='MASTER_LOG_FILE', master_log_pos=MASTER_LOG_POS;
+include/wait_for_slave_io_to_start.inc
+include/wait_for_slave_sql_to_stop.inc
+include/check_slave_param.inc [Exec_Master_Log_Pos]
==== Test various error conditions ====
start slave until master_log_file='master-bin', master_log_pos=MASTER_LOG_POS;
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
@@ -75,6 +83,7 @@ select count(*) as two from t1;
two
2
start slave until master_log_file='MASTER_LOG_FILE', master_log_pos= UNTIL_POS;;
+include/wait_for_slave_sql_to_stop.inc
slave stopped at the prescribed position
select 0 as zero;
zero
@@ -84,23 +93,15 @@ one
1
drop table t1;
start slave;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-drop table if exists t1;
-Warnings:
-Note 1051 Unknown table 't1'
+include/rpl_reset.inc
flush logs;
stop slave;
reset slave;
start slave until master_log_file='master-bin.000001', master_log_pos=294 /* to stop right before DROP */;
+include/wait_for_slave_sql_to_stop.inc
show tables /* t1 must exist */;
Tables_in_test
t1
drop table t1;
stop slave;
-reset slave;
-reset master;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stop_slave.result b/mysql-test/suite/rpl/r/rpl_stop_slave.result
index 49146417ab7..2e9522e8947 100644
--- a/mysql-test/suite/rpl/r/rpl_stop_slave.result
+++ b/mysql-test/suite/rpl/r/rpl_stop_slave.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
# BUG#56118 STOP SLAVE does not wait till trx with CREATE TMP TABLE ends
#
@@ -41,10 +37,12 @@ SET DEBUG_SYNC= 'now SIGNAL signal.continue';
SET DEBUG_SYNC= 'RESET';
[ On Slave ]
+include/wait_for_slave_sql_to_stop.inc
# Slave should stop after the transaction has committed.
# So t1 on master is same to t1 on slave.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
# CREATE TEMPORARY TABLE with MyISAM engine
# -----------------------------------------
@@ -66,10 +64,12 @@ SET DEBUG_SYNC= 'now SIGNAL signal.continue';
SET DEBUG_SYNC= 'RESET';
[ On Slave ]
+include/wait_for_slave_sql_to_stop.inc
# Slave should stop after the transaction has committed.
# So t1 on master is same to t1 on slave.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
# CREATE TEMPORARY TABLE ... SELECT with InnoDB engine
# ----------------------------------------------------
@@ -92,10 +92,12 @@ SET DEBUG_SYNC= 'now SIGNAL signal.continue';
SET DEBUG_SYNC= 'RESET';
[ On Slave ]
+include/wait_for_slave_sql_to_stop.inc
# Slave should stop after the transaction has committed.
# So t1 on master is same to t1 on slave.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
# CREATE TEMPORARY TABLE ... SELECT with MyISAM engine
# ----------------------------------------------------
@@ -118,10 +120,13 @@ SET DEBUG_SYNC= 'now SIGNAL signal.continue';
SET DEBUG_SYNC= 'RESET';
[ On Slave ]
+include/wait_for_slave_sql_to_stop.inc
# Slave should stop after the transaction has committed.
# So t1 on master is same to t1 on slave.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
START SLAVE SQL_THREAD;
+include/wait_for_slave_sql_to_start.inc
# Test end
SET GLOBAL debug= '$debug_save';
DROP TABLE t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
index 7447d12f9b2..d4aae782221 100644
--- a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
+++ b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop database if exists mysqltest1;
create database mysqltest1;
use mysqltest1;
@@ -427,3 +423,4 @@ INSERT INTO t13 VALUES (CURRENT_USER());
INSERT INTO t13 VALUES (my_current_user());
drop database mysqltest1;
set global binlog_format =@my_binlog_format;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_temp_table.result b/mysql-test/suite/rpl/r/rpl_temp_table.result
index e4ca31d8908..e7df070874a 100644
--- a/mysql-test/suite/rpl/r/rpl_temp_table.result
+++ b/mysql-test/suite/rpl/r/rpl_temp_table.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t2 (n int, PRIMARY KEY(n));
create temporary table t1 (n int);
create temporary table t3 (n int not null);
@@ -46,3 +42,4 @@ Slave_open_temp_tables 0
drop table if exists t1,t2;
Warnings:
Note 1051 Unknown table 't1'
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result
index 00cf238c712..116ae76dafe 100644
--- a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result
+++ b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialize ====
[on master]
CREATE TABLE t1 (a CHAR(48));
@@ -15,6 +11,7 @@ SHOW STATUS LIKE "Slave_open_temp_tables";
Variable_name Value
Slave_open_temp_tables 1
[on master]
+[on master1]
[on slave]
==== Verify results on slave ====
SHOW STATUS LIKE "Slave_open_temp_tables";
@@ -22,14 +19,10 @@ Variable_name Value
Slave_open_temp_tables 0
==== Clean up ====
[on master]
+include/rpl_connect.inc [creating master]
DROP TABLE t1;
[on slave]
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (a int);
CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
@@ -110,6 +103,7 @@ master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
# Compare the base table.
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_temporary.result b/mysql-test/suite/rpl/r/rpl_temporary.result
index 87bf525aacc..0ce7fe37a34 100644
--- a/mysql-test/suite/rpl/r/rpl_temporary.result
+++ b/mysql-test/suite/rpl/r/rpl_temporary.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Can\'t find record in \'user\' Error_code: 1032");
reset master;
DROP TABLE IF EXISTS t1;
@@ -129,6 +125,8 @@ select * from t1;
a
1
drop table t1;
+include/stop_slave.inc
+include/rpl_reset.inc
-- Bug#43748
-- make a user on the slave that can list but not kill system threads.
FLUSH PRIVILEGES;
@@ -140,5 +138,5 @@ KILL @id;
Got one of the listed errors
-- throw out test-user on slave.
DROP USER user43748@127.0.0.1;
--- done. back to master.
End of 5.1 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_temporary_errors.result b/mysql-test/suite/rpl/r/rpl_temporary_errors.result
index 3ea31b8fc62..27843e1dcda 100644
--- a/mysql-test/suite/rpl/r/rpl_temporary_errors.result
+++ b/mysql-test/suite/rpl/r/rpl_temporary_errors.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Deadlock found");
**** On Master ****
SET SESSION BINLOG_FORMAT=ROW;
@@ -40,12 +36,9 @@ a b
2 2
3 3
4 4
-Checking that both slave threads are running.
-DROP TABLE t1;
+include/check_slave_is_running.inc
**** On Master ****
-SET SQL_LOG_BIN= 0;
DROP TABLE t1;
-SET SQL_LOG_BIN= 1;
SET SESSION BINLOG_FORMAT=MIXED;
CREATE TABLE t_myisam (id INT, PRIMARY KEY (id)) engine= MyIsam;
INSERT INTO t_myisam (id) VALUES(1);
@@ -101,3 +94,4 @@ master-bin.000001 # Query # # use `test`; INSERT INTO t_innodb(id) VALUES(1)
master-bin.000001 # Query # # use `test`; INSERT INTO t_innodb(id) VALUES(1)
master-bin.000001 # Query # # ROLLBACK
DROP TABLE t_myisam, t_innodb;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_test_framework.result b/mysql-test/suite/rpl/r/rpl_test_framework.result
new file mode 100644
index 00000000000..e45c12ba0ec
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_test_framework.result
@@ -0,0 +1,170 @@
+==== Create t1 on all servers. ====
+include/rpl_init.inc [topology=1->2->3->4->5->6->7->8->9]
+CREATE TABLE t1 (a INT);
+include/rpl_end.inc
+==== Test 3-server topologies ====
+include/rpl_init.inc [topology=1 -> 2]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 12'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (1);
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (1);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=2 -> 3]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 23'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (2);
+[connection server_2]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (2);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=none]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ''
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (3);
+[connection server_2]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (3);
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (3);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->2, 2->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 212'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (4);
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (4);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->2->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 212'
+[connection server_2]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (5);
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (5);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=2->1->2]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 212'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (6);
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (6);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->2->3]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 123'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (7);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=2->3->2->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 323 21'
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (8);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->2,2->3,3->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 23123'
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (9);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->3->2->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 13213'
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (10);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1]
+include/rpl_end.inc
+==== Test 6-server topologies ====
+include/rpl_init.inc [topology=1->2->3->4->1->5->6]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 341234156'
+[connection server_1]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (11);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1,server_4:t1,server_5:t1,server_6:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=3->4->5->6->3->1->2]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 4563456 312'
+[connection server_4]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (12);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1,server_4:t1,server_5:t1,server_6:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=6->5->4->3->2->1]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 65 54 43 32 21'
+[connection server_6]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (13);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1,server_4:t1,server_5:t1,server_6:t1]
+include/rpl_end.inc
+include/rpl_init.inc [topology=1->2->3->1,4->5->6]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 456 23123'
+[connection server_3]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (14);
+[connection server_4]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (14);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1,server_4:t1,server_5:t1,server_6:t1]
+include/rpl_end.inc
+==== Test 9-server topology ====
+include/rpl_init.inc [topology=1->2, 2->3, 3->4, 4->5, 5->1, 1->6, 6->7, 6->8, 8->9]
+include/rpl_generate_sync_chain.inc
+rpl_sync_chain= ' 345123451689 67'
+[connection server_2]
+DELETE FROM t1;
+INSERT INTO t1 VALUES (15);
+include/rpl_sync.inc
+include/diff_tables.inc [server_1:t1,server_2:t1,server_3:t1,server_4:t1,server_5:t1,server_6:t1,server_7:t1,server_8:t1,server_9:t1]
+include/rpl_end.inc
+==== Clean up ====
+include/rpl_init.inc [topology=1->2->3->4->5->6->7->8->9]
+DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_timezone.result b/mysql-test/suite/rpl/r/rpl_timezone.result
index 0b5c03b5300..ce93c3030c0 100644
--- a/mysql-test/suite/rpl/r/rpl_timezone.result
+++ b/mysql-test/suite/rpl/r/rpl_timezone.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set @my_time_zone= @@global.time_zone;
set timestamp=100000000;
create table t1 (t timestamp, n int not null auto_increment, PRIMARY KEY(n));
@@ -122,6 +118,7 @@ a b
SET @@session.time_zone = default;
DROP TABLE t1;
SET @@session.time_zone = default;
+include/stop_slave.inc
reset master;
CREATE TABLE t1 (date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, a int(11) default NULL);
SET @@session.time_zone='+01:00';
@@ -141,4 +138,5 @@ date a
2008-12-23 19:39:39 2
DROP TABLE t1;
SET @@session.time_zone = default;
+include/rpl_end.inc
End of 5.0 tests
diff --git a/mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result b/mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result
index 5729faa9659..682aa71d64c 100644
--- a/mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result
+++ b/mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TEMPORARY TABLE t1 (a INT);
CREATE TABLE t2 (a INT, b INT) ENGINE= MyISAM;
INSERT INTO t1 VALUES (1);
@@ -94,3 +90,4 @@ INSERT INTO t1 VALUES (1);
DROP TABLE t2;
INSERT INTO t1 VALUES (1);
DROP TEMPORARY TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_trigger.result b/mysql-test/suite/rpl/r/rpl_trigger.result
index 86534fa8f7d..24795378177 100644
--- a/mysql-test/suite/rpl/r/rpl_trigger.result
+++ b/mysql-test/suite/rpl/r/rpl_trigger.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
@@ -863,8 +859,8 @@ drop table t21,t31;
drop table t11;
STOP SLAVE;
FLUSH LOGS;
---> Stop master server
---> Start master server
+include/rpl_stop_server.inc [server_number=1]
+include/rpl_start_server.inc [server_number=1]
--> Master binlog: Server ver: 5.0.16-debug-log, Binlog ver: 4
RESET SLAVE;
START SLAVE;
@@ -979,12 +975,7 @@ a b
2 b
3 c
drop table t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
create table t1 ( f int ) engine = innodb;
create table log ( r int ) engine = myisam;
create trigger tr
@@ -995,6 +986,7 @@ insert into t1 values ( 1 );
rollback;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
-Comparing tables master:test.t1 and slave:test.t1
-Comparing tables master:test.log and slave:test.log
+include/diff_tables.inc [master:t1, slave:t1]
+include/diff_tables.inc [master:log, slave:log]
drop table t1, log;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_trunc_temp.result b/mysql-test/suite/rpl/r/rpl_trunc_temp.result
index 44624a38875..ae2c9973c9f 100644
--- a/mysql-test/suite/rpl/r/rpl_trunc_temp.result
+++ b/mysql-test/suite/rpl/r/rpl_trunc_temp.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create temporary table t1 (n int);
insert into t1 values(1);
show status like 'Slave_open_temp_tables';
@@ -20,3 +16,4 @@ Slave_open_temp_tables 1
show status like 'Slave_open_temp_tables';
Variable_name Value
Slave_open_temp_tables 0
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_truncate_2myisam.result b/mysql-test/suite/rpl/r/rpl_truncate_2myisam.result
index 38fb9e27764..da8db64cef4 100644
--- a/mysql-test/suite/rpl/r/rpl_truncate_2myisam.result
+++ b/mysql-test/suite/rpl/r/rpl_truncate_2myisam.result
@@ -1,20 +1,12 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
**** On Master ****
CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,1), (2,2);
**** On Master ****
TRUNCATE TABLE t1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
==== Test using a table with delete triggers ====
**** On Master ****
SET @count := 1;
@@ -22,19 +14,15 @@ CREATE TABLE t2 (a INT, b LONG) ENGINE=MyISAM;
CREATE TRIGGER trg1 BEFORE DELETE ON t1 FOR EACH ROW SET @count := @count + 1;
**** On Master ****
TRUNCATE TABLE t1;
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1,t2;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
**** On Master ****
CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,1), (2,2);
**** On Master ****
DELETE FROM t1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
==== Test using a table with delete triggers ====
**** On Master ****
SET @count := 1;
@@ -42,5 +30,6 @@ CREATE TABLE t2 (a INT, b LONG) ENGINE=MyISAM;
CREATE TRIGGER trg1 BEFORE DELETE ON t1 FOR EACH ROW SET @count := @count + 1;
**** On Master ****
DELETE FROM t1;
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_truncate_3innodb.result b/mysql-test/suite/rpl/r/rpl_truncate_3innodb.result
index b5e5936834d..d8a4443022d 100644
--- a/mysql-test/suite/rpl/r/rpl_truncate_3innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_truncate_3innodb.result
@@ -1,20 +1,12 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
**** On Master ****
CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,1), (2,2);
**** On Master ****
TRUNCATE TABLE t1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
==== Test using a table with delete triggers ====
**** On Master ****
SET @count := 1;
@@ -22,19 +14,15 @@ CREATE TABLE t2 (a INT, b LONG) ENGINE=InnoDB;
CREATE TRIGGER trg1 BEFORE DELETE ON t1 FOR EACH ROW SET @count := @count + 1;
**** On Master ****
TRUNCATE TABLE t1;
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1,t2;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
**** On Master ****
CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,1), (2,2);
**** On Master ****
DELETE FROM t1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
==== Test using a table with delete triggers ====
**** On Master ****
SET @count := 1;
@@ -42,5 +30,6 @@ CREATE TABLE t2 (a INT, b LONG) ENGINE=InnoDB;
CREATE TRIGGER trg1 BEFORE DELETE ON t1 FOR EACH ROW SET @count := @count + 1;
**** On Master ****
DELETE FROM t1;
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
DROP TABLE t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_typeconv_innodb.result b/mysql-test/suite/rpl/r/rpl_typeconv_innodb.result
index e3b8d6de12e..a5c55e43617 100644
--- a/mysql-test/suite/rpl/r/rpl_typeconv_innodb.result
+++ b/mysql-test/suite/rpl/r/rpl_typeconv_innodb.result
@@ -1,15 +1,7 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/master-slave.inc
+[connection master]
CREATE TABLE t1(b1 BIT(1), b2 BIT(2), b3 BIT(3)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (b'0', b'01', b'101');
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_udf.result b/mysql-test/suite/rpl/r/rpl_udf.result
index ccf16271d01..9f4c2b199ca 100644
--- a/mysql-test/suite/rpl/r/rpl_udf.result
+++ b/mysql-test/suite/rpl/r/rpl_udf.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set binlog_format=row;
drop table if exists t1;
"*** Test 1) Test UDFs via loadable libraries ***
@@ -316,3 +312,4 @@ affected rows: 0
"Running on the master"
DROP TABLE t1;
affected rows: 0
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_user.result b/mysql-test/suite/rpl/r/rpl_user.result
index a98e7e9ca55..4ad87eb1ae7 100644
--- a/mysql-test/suite/rpl/r/rpl_user.result
+++ b/mysql-test/suite/rpl/r/rpl_user.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
set session sql_log_bin=0;
delete from mysql.user where Host='fakehost';
set session sql_log_bin=1;
@@ -43,3 +39,4 @@ master-bin.000001 # Query # # use `test`; rename user 'foo'@'fakehost' to 'foofo
master-bin.000001 # Query # # use `test`; rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'bar'@'fakehost' to 'barbar'@'fakehost'
master-bin.000001 # Query # # use `test`; drop user 'foofoo'@'fakehost'
master-bin.000001 # Query # # use `test`; drop user 'not_exist_user1'@'fakehost', 'barbar'@'fakehost'
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_user_variables.result b/mysql-test/suite/rpl/r/rpl_user_variables.result
index 1f76eae3fce..e302ec0aceb 100644
--- a/mysql-test/suite/rpl/r/rpl_user_variables.result
+++ b/mysql-test/suite/rpl/r/rpl_user_variables.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
reset master;
create table t1(n char(30));
set @i1:=12345678901234, @i2:=-12345678901234, @i3:=0, @i4:=-1;
@@ -279,4 +275,4 @@ i
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP TABLE t1;
-stop slave;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_variables.result b/mysql-test/suite/rpl/r/rpl_variables.result
index b3108c75a6e..3724ff571b2 100644
--- a/mysql-test/suite/rpl/r/rpl_variables.result
+++ b/mysql-test/suite/rpl/r/rpl_variables.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialization ====
[on master]
SET @m_default_week_format= @@global.default_week_format;
@@ -38,12 +34,7 @@ SET @@global.sql_mode = 'ALLOW_INVALID_DATES';
SET @@local.sql_mode = 'ANSI_QUOTES,ERROR_FOR_DIVISION_BY_ZERO,HIGH_NOT_PRECEDENCE';
SET @user_num = 10;
SET @user_text = 'Alunda';
-[on master]
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
[on slave]
SET @@global.init_slave = 'SELECT 1';
[on master]
@@ -550,15 +541,7 @@ id truth num text
30 NULL 30 NULL
31 NULL NULL Bergsbrunna
32 NULL NULL Centrum
-Comparing tables master:test.tstmt and master:test.tproc
-Comparing tables master:test.tstmt and master:test.tfunc
-Comparing tables master:test.tstmt and master:test.ttrig
-Comparing tables master:test.tstmt and master:test.tprep
-Comparing tables master:test.tstmt and slave:test.tstmt
-Comparing tables master:test.tstmt and slave:test.tproc
-Comparing tables master:test.tstmt and slave:test.tfunc
-Comparing tables master:test.tstmt and slave:test.ttrig
-Comparing tables master:test.tstmt and slave:test.tprep
+include/diff_tables.inc [master:tstmt,tproc,tfunc,ttrig,tprep, slave:tstmt,tproc,tfunc,ttrig,tprep]
==== Clean up ====
[on master]
DROP PROCEDURE proc;
@@ -582,3 +565,4 @@ SET @@global.relay_log_purge= @s_relay_log_purge;
SET @@global.slave_exec_mode= @s_slave_exec_mode;
SET @@global.sql_mode= @s_sql_mode;
SET @@global.sync_binlog= @s_sync_binlog;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_variables_stm.result b/mysql-test/suite/rpl/r/rpl_variables_stm.result
index 51484187215..553a1710d77 100644
--- a/mysql-test/suite/rpl/r/rpl_variables_stm.result
+++ b/mysql-test/suite/rpl/r/rpl_variables_stm.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
==== Initialization ====
[on master]
SET @m_pseudo_thread_id= @@global.pseudo_thread_id;
@@ -490,15 +486,7 @@ id num text
56 NULL 47124712
57 NULL 1616
58 NULL 1717
-Comparing tables master:test.tstmt and master:test.tproc
-Comparing tables master:test.tstmt and master:test.tfunc
-Comparing tables master:test.tstmt and master:test.ttrig
-Comparing tables master:test.tstmt and master:test.tprep
-Comparing tables master:test.tstmt and slave:test.tstmt
-Comparing tables master:test.tstmt and slave:test.tproc
-Comparing tables master:test.tstmt and slave:test.tfunc
-Comparing tables master:test.tstmt and slave:test.ttrig
-Comparing tables master:test.tstmt and slave:test.tprep
+include/diff_tables.inc [master:tstmt,tproc,tfunc,ttrig,tprep, slave:tstmt,tproc,tfunc,ttrig,tprep]
==== Clean up ====
[on master]
DROP PROCEDURE proc;
@@ -524,3 +512,4 @@ SET @@global.collation_server= @s_collation_server;
SET @@global.time_zone= @s_time_zone;
SET @@global.lc_time_names= @s_lc_time_names;
SET @@global.collation_database= @s_collation_database;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_view.result b/mysql-test/suite/rpl/r/rpl_view.result
index b129223b6d2..307b88ff6f9 100644
--- a/mysql-test/suite/rpl/r/rpl_view.result
+++ b/mysql-test/suite/rpl/r/rpl_view.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1,v1;
drop view if exists t1,v1;
reset master;
@@ -116,3 +112,4 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
DROP VIEW v1;
DROP TABLE t1;
End of 5.0 tests
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl000017-slave.sh b/mysql-test/suite/rpl/t/rpl000017-slave.sh
deleted file mode 100755
index 1d95798260a..00000000000
--- a/mysql-test/suite/rpl/t/rpl000017-slave.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-rm -f $MYSQLTEST_VARDIR/log/*relay*
-rm -f $MYSQLTEST_VARDIR/mysqld.2/data/relay-log.info
-cat > $MYSQLTEST_VARDIR/mysqld.2/data/master.info <<EOF
-master-bin.000001
-4
-127.0.0.1
-replicate
-aaaaaaaaaaaaaaab
-$MASTER_MYPORT
-1
-0
-EOF
diff --git a/mysql-test/suite/rpl/t/rpl000017.test b/mysql-test/suite/rpl/t/rpl000017.test
deleted file mode 100644
index 2ba321cd8c3..00000000000
--- a/mysql-test/suite/rpl/t/rpl000017.test
+++ /dev/null
@@ -1,22 +0,0 @@
-source include/master-slave.inc;
-connection slave;
-stop slave;
-connection master;
-grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
-grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
-connection slave;
-start slave;
-connection master;
---disable_warnings
-drop table if exists t1;
---enable_warnings
-create table t1(n int);
-insert into t1 values(24);
-sync_slave_with_master;
-select * from t1;
-connection master;
-drop table t1;
-delete from mysql.user where user="replicate";
-sync_slave_with_master;
-
-# End of 4.1 tests
diff --git a/mysql-test/suite/rpl/t/rpl000010-slave.opt b/mysql-test/suite/rpl/t/rpl_000010-slave.opt
index 0dbfb311e33..0dbfb311e33 100644
--- a/mysql-test/suite/rpl/t/rpl000010-slave.opt
+++ b/mysql-test/suite/rpl/t/rpl_000010-slave.opt
diff --git a/mysql-test/suite/rpl/t/rpl000010.test b/mysql-test/suite/rpl/t/rpl_000010.test
index 261b9148774..7e7ca103d2c 100644
--- a/mysql-test/suite/rpl/t/rpl000010.test
+++ b/mysql-test/suite/rpl/t/rpl_000010.test
@@ -17,3 +17,4 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl000011.test b/mysql-test/suite/rpl/t/rpl_000011.test
index 32f6227f7c5..357a291ddb2 100644
--- a/mysql-test/suite/rpl/t/rpl000011.test
+++ b/mysql-test/suite/rpl/t/rpl_000011.test
@@ -15,3 +15,4 @@ drop table t1;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl000013.test b/mysql-test/suite/rpl/t/rpl_000013.test
index 69a102e84ce..f64c484b003 100644
--- a/mysql-test/suite/rpl/t/rpl000013.test
+++ b/mysql-test/suite/rpl/t/rpl_000013.test
@@ -9,9 +9,7 @@
--source include/have_binlog_format_mixed_or_statement.inc
source include/master-slave.inc;
-save_master_pos;
-connection slave;
-sync_with_master;
+--sync_slave_with_master
connection master;
create table t2(n int);
@@ -46,8 +44,8 @@ connection master2;
# exist in this connection.
drop table if exists t1,t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+--sync_slave_with_master
+
+--source include/rpl_end.inc
# End of 4.1 tests
diff --git a/mysql-test/suite/rpl/t/rpl000017-slave.opt b/mysql-test/suite/rpl/t/rpl_000017-slave.opt
index 58a964c90d0..58a964c90d0 100644
--- a/mysql-test/suite/rpl/t/rpl000017-slave.opt
+++ b/mysql-test/suite/rpl/t/rpl_000017-slave.opt
diff --git a/mysql-test/suite/rpl/t/rpl_000017.test b/mysql-test/suite/rpl/t/rpl_000017.test
new file mode 100644
index 00000000000..a34419c37c8
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_000017.test
@@ -0,0 +1,48 @@
+# ==== Purpose ====
+#
+# Unknown.
+#
+# ==== Notes ====
+#
+# This test uses the -slave.opt file to start the slave with
+# --skip-slave-start.
+
+--source include/not_windows.inc
+
+--let $rpl_skip_start_slave= 1
+--source include/master-slave.inc
+
+--connection slave
+--let $slave_datadir= `SELECT @@datadir`
+
+--remove_file $slave_datadir/master.info
+--write_file $slave_datadir/master.info
+master-bin.000001
+4
+127.0.0.1
+replicate
+aaaaaaaaaaaaaaab
+$MASTER_MYPORT
+1
+0
+EOF
+
+connection master;
+grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
+grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
+connection slave;
+--source include/start_slave.inc
+
+connection master;
+create table t1(n int);
+insert into t1 values(24);
+sync_slave_with_master;
+select * from t1;
+connection master;
+drop table t1;
+delete from mysql.user where user="replicate";
+
+# End of 4.1 tests
+--source include/rpl_end.inc
+
+--source include/force_restart.inc
diff --git a/mysql-test/suite/rpl/t/rpl_EE_err.test b/mysql-test/suite/rpl/t/rpl_EE_err.test
index 6d064ae3197..5272b11f342 100644
--- a/mysql-test/suite/rpl/t/rpl_EE_err.test
+++ b/mysql-test/suite/rpl/t/rpl_EE_err.test
@@ -1,7 +1,3 @@
-########################################################
-# By JBM 2006-02-14 Wrapped to share test code between #
-# engines. Added to skip test when NDB is default #
-########################################################
-- source include/not_ndb_default.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_EE_err.test
diff --git a/mysql-test/suite/rpl/t/rpl_LD_INFILE.test b/mysql-test/suite/rpl/t/rpl_LD_INFILE.test
index ae647ed6648..0f02bdccb60 100644
--- a/mysql-test/suite/rpl/t/rpl_LD_INFILE.test
+++ b/mysql-test/suite/rpl/t/rpl_LD_INFILE.test
@@ -36,3 +36,4 @@ sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_alter.test b/mysql-test/suite/rpl/t/rpl_alter.test
index bc42476244a..e34f670ea18 100644
--- a/mysql-test/suite/rpl/t/rpl_alter.test
+++ b/mysql-test/suite/rpl/t/rpl_alter.test
@@ -1,7 +1,4 @@
source include/master-slave.inc;
---disable_warnings
-drop database if exists mysqltest;
---enable_warnings
create database mysqltest;
create table mysqltest.t1 ( n int);
@@ -58,14 +55,16 @@ if (`SELECT 'table_id: 0 (test.t2)' = '$_info'`)
--die test.t2's table map id is 0;
}
-let diff_table= test.t1;
-source include/rpl_diff_tables.inc;
-let diff_table= test.t2;
-source include/rpl_diff_tables.inc;
+--sync_slave_with_master
+
+--let $diff_tables= master:t1, slave:t1
+--source include/diff_tables.inc
+--let $diff_tables= master:t2, slave:t2
+--source include/diff_tables.inc
--echo
connection master;
DROP TABLE t1, t2;
-source include/master-slave-end.inc;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_alter_db.test b/mysql-test/suite/rpl/t/rpl_alter_db.test
index 341496350d7..f6f0782580f 100644
--- a/mysql-test/suite/rpl/t/rpl_alter_db.test
+++ b/mysql-test/suite/rpl/t/rpl_alter_db.test
@@ -12,3 +12,4 @@ sync_slave_with_master;
connection master;
drop database temp_db;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_auto_increment.test b/mysql-test/suite/rpl/t/rpl_auto_increment.test
index 19770ffbdc0..8869e3745db 100644
--- a/mysql-test/suite/rpl/t/rpl_auto_increment.test
+++ b/mysql-test/suite/rpl/t/rpl_auto_increment.test
@@ -1,10 +1,6 @@
#####################################
# Wrapper for rpl_auto_increment.test#
#####################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=innodb;
diff --git a/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test b/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test
index d4b7872fb2b..6b7c97298f4 100644
--- a/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test
+++ b/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test
@@ -58,6 +58,6 @@ sync_with_master;
use test1;
select * from t1;
-drop database test1;
connection master;
drop database test1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test b/mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test
index 5297767675c..0163550a3c5 100644
--- a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
+++ b/mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test
@@ -15,47 +15,42 @@
# rpl_auto_increment_bug33029.test with clean up statements at the end
# of the test case removed on a buggy 5.0 server
-source include/have_log_bin.inc;
+--let $rpl_skip_start_slave= 1
+--let $rpl_skip_change_master= 1
+source include/master-slave.inc;
+
+--echo ==== Initialize ====
+--connection slave
# Need to restore this at the end; CHANGE MASTER modifies it (see the
# manual for CHANGE MASTER).
SET @old_relay_log_purge= @@global.relay_log_purge;
-let $MYSQLD_DATADIR= `select @@datadir`;
-
-copy_file $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001 $MYSQLD_DATADIR/slave-relay-bin.000001;
-
-write_file $MYSQLD_DATADIR/slave-relay-bin.index;
-slave-relay-bin.000001
-EOF
-
-change master to
- MASTER_HOST='dummy.localdomain',
- RELAY_LOG_FILE='slave-relay-bin.000001',
- RELAY_LOG_POS=4;
+# the relay log contains create t1, t2 tables and load data infile
+--let $fake_relay_log = $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001
+--source include/setup_fake_relay_log.inc
+--echo ==== Test ====
start slave sql_thread;
-disable_result_log;
-select MASTER_POS_WAIT('master-bin.000001', 3776);
-enable_result_log;
+--let $slave_param= Exec_Master_Log_Pos
+--let $slave_param_value= 3776
+--source include/wait_for_slave_param.inc
+
echo # Result on slave;
SELECT * FROM t1;
SELECT * FROM t2;
-# clean up
-disable_warnings;
-DROP TABLE IF EXISTS t1, t2;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS p2;
-DROP FUNCTION IF EXISTS f1;
-DROP TRIGGER IF EXISTS tr1;
-enable_warnings;
+--echo ==== Clean up ====
stop slave sql_thread;
-reset slave;
-source include/wait_for_slave_sql_to_stop.inc;
-remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
-remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
+--source include/cleanup_fake_relay_log.inc
+
+DROP TABLE t1, t2;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
SET @@global.relay_log_purge= @old_relay_log_purge;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test b/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test
index f38d2151ab3..b5eb3c5408a 100644
--- a/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test
+++ b/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test
@@ -159,11 +159,9 @@ source include/show_binlog_events.inc;
sync_slave_with_master;
--echo #Test if the results are consistent on master and slave
--echo #for 'UPDATE MORE THAN ONE TABLES ON TOP-STATEMENT'
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
connection master;
@@ -199,11 +197,9 @@ source include/show_binlog_events.inc;
sync_slave_with_master;
--echo #Test if the results are consistent on master and slave
--echo #for 'INSERT DATA INTO VIEW WHICH INVOLVED MORE THAN ONE TABLES'
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
connection master;
@@ -212,3 +208,4 @@ drop table t2;
drop view v15;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
index 28164686c39..8cddc43b84e 100644
--- a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
+++ b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
@@ -169,4 +169,4 @@ SELECT * FROM db1.t1 WHERE a IN (30, 40);
connection master;
DROP DATABASE db1;
DROP DATABASE db2;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt b/mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
deleted file mode 100644
index 815a8f81d32..00000000000
--- a/mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---replicate-same-server-id --relay-log=slave-relay-bin
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_corruption.test b/mysql-test/suite/rpl/t/rpl_binlog_corruption.test
index dfab035a7a8..2c9ec02764c 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_corruption.test
+++ b/mysql-test/suite/rpl/t/rpl_binlog_corruption.test
@@ -15,10 +15,12 @@
# BUG#31793: log event corruption causes crash
# BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event
-source include/have_log_bin.inc;
+--source include/master-slave.inc
+
# BUG#40482 only manifested itself in debug-compiled binaries.
source include/have_debug.inc;
+--connection slave
call mtr.add_suppression('Found invalid event in binary log');
@@ -29,6 +31,9 @@ call mtr.add_suppression('Found invalid event in binary log');
# incident number.
--echo ==== Initialize ====
+--source include/stop_slave.inc
+RESET SLAVE;
+
let $fake_relay_log= $MYSQL_TEST_DIR/std_data/bug40482-bin.000001;
source include/setup_fake_relay_log.inc;
@@ -41,3 +46,5 @@ let $error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
--echo ==== Clean up ====
source include/cleanup_fake_relay_log.inc;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_errors.test b/mysql-test/suite/rpl/t/rpl_binlog_errors.test
index e4eb212e1cd..7c09dab704e 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_errors.test
+++ b/mysql-test/suite/rpl/t/rpl_binlog_errors.test
@@ -14,9 +14,9 @@
#
# Test cases are documented inline.
--- source include/master-slave.inc
-- source include/have_innodb.inc
-- source include/have_debug.inc
+-- source include/master-slave.inc
-- echo #######################################################################
-- echo ####################### PART 1: MASTER TESTS ##########################
@@ -295,7 +295,8 @@ DROP TABLE t5;
### failure to write the rotate event.
# restart the server so that we have binlog again
---source include/restart_mysqld.inc
+--let $rpl_server_number= 1
+--source include/rpl_restart_server.inc
# +d,fault_injection_openning_index => injects fault on MYSQL_BIN_LOG::open_index_file
SET GLOBAL debug="+d,fault_injection_openning_index";
@@ -316,7 +317,8 @@ DELETE FROM t2;
DROP TABLE t5;
# restart the server so that we have binlog again
--- source include/restart_mysqld.inc
+--let $rpl_server_number= 1
+--source include/rpl_restart_server.inc
-- echo ###################### TEST #12
@@ -342,7 +344,8 @@ DELETE FROM t2;
DROP TABLE t5;
# restart the server so that we have binlog again
--- source include/restart_mysqld.inc
+--let $rpl_server_number= 1
+--source include/rpl_restart_server.inc
## clean up
SET GLOBAL debug= @old_debug;
@@ -359,9 +362,7 @@ RESET MASTER;
-- echo #######################################################################
### setup
--- connection master
-# master-slave-reset starts the slave automatically
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection slave
# slave suppressions
@@ -404,12 +405,9 @@ call mtr.add_suppression("Can't generate a unique log-filename .*");
-- source include/io_thd_fault_injection.inc
### clean up
--- disable_warnings
--- source include/stop_slave.inc
--- enable_warnings
+-- source include/stop_slave_sql.inc
SET GLOBAL debug=@old_debug;
RESET SLAVE;
RESET MASTER;
--- source include/start_slave.inc
--- connection master
--- source include/master-slave-end.inc
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_grant.test b/mysql-test/suite/rpl/t/rpl_binlog_grant.test
index 4c6402359fe..a20853e35a9 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_grant.test
+++ b/mysql-test/suite/rpl/t/rpl_binlog_grant.test
@@ -41,3 +41,4 @@ show grants for x@y;
drop user x@y;
drop database d1;
--sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test b/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test
index 9dca61d8f75..265bde2ccf6 100644
--- a/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test
+++ b/mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test
@@ -69,16 +69,17 @@ if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
CONCAT($data, $data, $data, $data, $data, $data));
# Below code fakes the result of 'ROW' mode.
--echo Got one of the listed errors
- --echo --source include/wait_for_slave_sql_error_and_skip.inc
- --echo include/start_slave.inc
+ # Ensure same message as in the case binlog_format=row below
+ --echo include/wait_for_slave_sql_error_and_skip.inc [errno=1590]
}
if (`SELECT @@binlog_format = 'ROW'`)
{
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
eval INSERT INTO t2 (a, data) VALUES (2,
CONCAT($data, $data, $data, $data, $data, $data));
- # Incident event
- --let $slave_sql_errno=1590
+
+ # 1590=ER_SLAVE_INCIDENT
+ --let $slave_sql_errno= 1590
--source include/wait_for_slave_sql_error_and_skip.inc
}
--enable_warnings
@@ -101,8 +102,8 @@ eval UPDATE t2, t1 SET t2.data = CONCAT($data, $data, $data, $data),
t1.data = CONCAT($data, $data, $data, $data);
--enable_query_log
-# Incident event
---let $slave_sql_errno=1590
+# 1590=ER_SLAVE_INCIDENT
+--let $slave_sql_errno= 1590
--source include/wait_for_slave_sql_error_and_skip.inc
#--echo ########################################################################################
@@ -192,8 +193,9 @@ BEGIN;
CREATE TABLE t5 (a int);
--enable_query_log
-let $diff_statement= SELECT * FROM t1;
---source include/diff_master_slave.inc
+--sync_slave_with_master
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo ########################################################################################
--echo # 3 - BEGIN - COMMIT
@@ -221,8 +223,9 @@ BEGIN;
--enable_query_log
COMMIT;
-let $diff_statement= SELECT * FROM t1;
---source include/diff_master_slave.inc
+--sync_slave_with_master
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo ########################################################################################
--echo # 4 - BEGIN - ROLLBACK
@@ -250,8 +253,9 @@ BEGIN;
--enable_query_log
ROLLBACK;
-let $diff_statement= SELECT * FROM t1;
---source include/diff_master_slave.inc
+--sync_slave_with_master
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo ########################################################################################
--echo # 5 - PROCEDURE
@@ -299,8 +303,9 @@ eval CALL p1($data);
--enable_query_log
ROLLBACK;
-let $diff_statement= SELECT * FROM t1;
---source include/diff_master_slave.inc
+--sync_slave_with_master
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo ########################################################################################
--echo # 6 - XID
@@ -330,8 +335,9 @@ SAVEPOINT sv;
ROLLBACK TO sv;
COMMIT;
-let $diff_statement= SELECT * FROM t1;
---source include/diff_master_slave.inc
+--sync_slave_with_master
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo ########################################################################################
--echo # 7 - NON-TRANS TABLE
@@ -374,8 +380,8 @@ BEGIN;
--enable_query_log
COMMIT;
-# Incident event
---let $slave_sql_errno=1590
+# 1590=ER_SLAVE_INCIDENT
+--let $slave_sql_errno= 1590
--source include/wait_for_slave_sql_error_and_skip.inc
sync_slave_with_master;
@@ -420,7 +426,7 @@ while ($n)
--enable_query_log
COMMIT;
-connection slave;
+--connection slave
--let $slave_sql_errno= 1197
source include/wait_for_slave_sql_error.inc;
@@ -443,14 +449,16 @@ SELECT count(*) FROM t1;
--echo # CLEAN
--echo ########################################################################################
---disable_warnings
connection master;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
+# t4 exists only if binlog_format!=row, so so a warning is generated
+# if binog_format=row
+--disable_warnings
DROP TABLE IF EXISTS t4;
-DROP TABLE IF EXISTS t5;
-DROP TABLE IF EXISTS t6;
-DROP PROCEDURE p1;
--enable_warnings
-source include/master-slave-end.inc;
+DROP TABLE t5;
+DROP PROCEDURE p1;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bit.test b/mysql-test/suite/rpl/t/rpl_bit.test
index 07b0778296c..2ee4074c4e3 100644
--- a/mysql-test/suite/rpl/t/rpl_bit.test
+++ b/mysql-test/suite/rpl/t/rpl_bit.test
@@ -92,3 +92,4 @@ DROP TABLE IF EXISTS test.t1;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bit_npk.test b/mysql-test/suite/rpl/t/rpl_bit_npk.test
index 12b587919f9..40f375b92f3 100644
--- a/mysql-test/suite/rpl/t/rpl_bit_npk.test
+++ b/mysql-test/suite/rpl/t/rpl_bit_npk.test
@@ -114,3 +114,4 @@ DROP TABLE IF EXISTS test.t3;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_blackhole.test b/mysql-test/suite/rpl/t/rpl_blackhole.test
index 6bf66422d62..d39df0cbde4 100644
--- a/mysql-test/suite/rpl/t/rpl_blackhole.test
+++ b/mysql-test/suite/rpl/t/rpl_blackhole.test
@@ -82,3 +82,4 @@ source extra/rpl_tests/rpl_blackhole.test;
connection master;
DROP TABLE t1,t2;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bug26395.test b/mysql-test/suite/rpl/t/rpl_bug26395.test
index 97c152d52e9..aeb0da9511d 100644
--- a/mysql-test/suite/rpl/t/rpl_bug26395.test
+++ b/mysql-test/suite/rpl/t/rpl_bug26395.test
@@ -95,3 +95,5 @@ connection slave;
DROP TABLE tinnodb;
# Warning: do not add more tests here. The binlog is in a bad state.
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bug31076.test b/mysql-test/suite/rpl/t/rpl_bug31076.test
index 9176bafe022..d81d646ebe3 100644
--- a/mysql-test/suite/rpl/t/rpl_bug31076.test
+++ b/mysql-test/suite/rpl/t/rpl_bug31076.test
@@ -134,3 +134,4 @@ SELECT * FROM visits_events;
DROP DATABASE track;
sync_slave_with_master;
--echo End of 5.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bug33931.test b/mysql-test/suite/rpl/t/rpl_bug33931.test
index 3327a36622c..c2cf5811938 100644
--- a/mysql-test/suite/rpl/t/rpl_bug33931.test
+++ b/mysql-test/suite/rpl/t/rpl_bug33931.test
@@ -3,23 +3,14 @@
# Bug #33932 assertion at handle_slave_sql if init_slave_thread() fails
source include/have_debug.inc;
-source include/have_log_bin.inc;
-
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-
-
-connection master;
-reset master;
+source include/master-slave.inc;
connection slave;
# Add suppression for expected warnings in slaves error log
call mtr.add_suppression("Failed during slave I/O thread initialization");
---disable_warnings
-stop slave;
---enable_warnings
+--source include/stop_slave.inc
reset slave;
# Set debug flags on slave to force errors to occur
@@ -27,18 +18,13 @@ SET GLOBAL debug="d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_
start slave;
-connection master;
-save_master_pos;
-connection slave;
-
#
# slave is going to stop because of emulated failures
# but there won't be any crashes nor asserts hit.
#
-source include/wait_for_slave_to_stop.inc;
# 1593 = ER_SLAVE_FATAL_ERROR
---let $slave_sql_errno= 1593
+--let $slave_sql_errno= 1593
--let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc
@@ -47,3 +33,8 @@ source include/wait_for_slave_to_stop.inc;
#
SET GLOBAL debug="";
+# Clear Last_SQL_Error
+RESET SLAVE;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_bug38694.test b/mysql-test/suite/rpl/t/rpl_bug38694.test
index 41b11d271b9..48f950ad6ef 100644
--- a/mysql-test/suite/rpl/t/rpl_bug38694.test
+++ b/mysql-test/suite/rpl/t/rpl_bug38694.test
@@ -8,3 +8,4 @@
source include/master-slave.inc;
# End of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_change_master.test b/mysql-test/suite/rpl/t/rpl_change_master.test
index 33bd9d51b11..65af5e72865 100644
--- a/mysql-test/suite/rpl/t/rpl_change_master.test
+++ b/mysql-test/suite/rpl/t/rpl_change_master.test
@@ -49,3 +49,4 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_charset.test b/mysql-test/suite/rpl/t/rpl_charset.test
index ed0d835f22d..3ed9147508e 100644
--- a/mysql-test/suite/rpl/t/rpl_charset.test
+++ b/mysql-test/suite/rpl/t/rpl_charset.test
@@ -1,3 +1,2 @@
let $engine_type=myisam;
source extra/rpl_tests/rpl_charset.test;
-
diff --git a/mysql-test/suite/rpl/t/rpl_charset_sjis.test b/mysql-test/suite/rpl/t/rpl_charset_sjis.test
index 2469b0db8a2..a3a3de8c1d0 100644
--- a/mysql-test/suite/rpl/t/rpl_charset_sjis.test
+++ b/mysql-test/suite/rpl/t/rpl_charset_sjis.test
@@ -23,3 +23,4 @@ sync_slave_with_master;
connection master;
# End of 5.0 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf
index 141aaa7788d..104963c7d82 100644
--- a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf
+++ b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf
@@ -17,11 +17,8 @@ log-slave-updates
innodb
[ENV]
-SLAVE_MYPORT1= @mysqld.3.port
-SLAVE_MYSOCK1= @mysqld.3.socket
-
-SLAVE_MYPORT2= @mysqld.4.port
-SLAVE_MYSOCK2= @mysqld.4.socket
-
-
+SERVER_MYPORT_3= @mysqld.3.port
+SERVER_MYSOCK_3= @mysqld.3.socket
+SERVER_MYPORT_4= @mysqld.4.port
+SERVER_MYSOCK_4= @mysqld.4.socket
diff --git a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test
index 3633462d68e..6099637e3e9 100644
--- a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test
+++ b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test
@@ -1,24 +1,32 @@
-#############################################################
-# Author: Serge Kozlov <skozlov@mysql.com>
-# Date: 03/12/2008
-# Purpose: Testing circular replication based on schema
-# A->B->C->D->A with using AUTO_INCREMENT_INCREMENT,
-# AUTO_INCREMENT_OFFSET variables and failover
-#############################################################
+# ==== Purpose ====
+#
+# Setup: circular replication on four hosts, i.e., topology
+# server_1 -> server_2 -> server_3 -> server_4 -> server_1
+#
+# Tested properties:
+# - Correctly configured autoinc works.
+# - Manual failover works.
+#
+# ==== Related bugs and worklogs ====
+#
+# WL#3754
+# BUG#49978
+
--source include/have_innodb.inc
# Set up circular ring and new names for servers
---echo *** Set up circular ring by schema A->B->C->D->A ***
---source include/circular_rpl_for_4_hosts_init.inc
+--echo *** Set up circular replication on four servers ***
+--let $rpl_topology= 1->2->3->4->1
+--source include/rpl_init.inc
--echo
# Preparing data.
--echo *** Preparing data ***
---connection master_a
+--connection server_1
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=MyISAM;
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB;
---source include/circular_rpl_for_4_hosts_sync.inc
---connection master_d
+--source include/rpl_sync.inc
+--connection server_4
--echo
#
@@ -28,121 +36,134 @@ CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL,
--echo *** Testing schema A->B->C->D->A ***
--echo
# insert data via all hosts
---connection master_a
+--connection server_1
INSERT INTO t1(b,c) VALUES('A',1);
---sync_slave_with_master master_b
+--sync_slave_with_master server_2
INSERT INTO t1(b,c) VALUES('B',1);
---sync_slave_with_master master_c
+--sync_slave_with_master server_3
INSERT INTO t1(b,c) VALUES('C',1);
---sync_slave_with_master master_d
+--sync_slave_with_master server_4
INSERT INTO t1(b,c) VALUES('D',1);
---source include/circular_rpl_for_4_hosts_sync.inc
+--source include/rpl_sync.inc
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c = 1 ORDER BY a,b;
---connection master_b
+--connection server_2
SELECT 'Master B',a,b FROM t1 WHERE c = 1 ORDER BY a,b;
---connection master_c
+--connection server_3
SELECT 'Master C',a,b FROM t1 WHERE c = 1 ORDER BY a,b;
---connection master_d
+--connection server_4
SELECT 'Master D',a,b FROM t1 WHERE c = 1 ORDER BY a,b;
--echo
--echo *** Testing schema A->B->D->A if C has failure ***
--echo
--echo * Do failure for C and then make new connection B->D *
+
+# Note: server_N has auto_increment_offset=N. Below, we insert value 6
+# in the autoinc column on server_3 (and prevent it from replicating
+# further using SQL_SLAVE_SKIP_COUNTER on server_4). Due to the
+# auto_increment_offset setting, the autoinc value 6 is normally
+# generated on server_2. When we later insert a row on server_2, we
+# thus cause a duplicate key error on server_3.
+
# Do not replicate next event from C
---connection master_d
-connect(slave,127.0.0.1,root,,test,$SLAVE_MYPORT2);
+--connection server_4
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
source include/start_slave.inc;
-disconnect slave;
---connection master_c
+--connection server_3
INSERT INTO t1 VALUES(6,'C',2);
---save_master_pos
---connection master_b
+--sync_slave_with_master server_4
+
+--connection server_2
INSERT INTO t1(b,c) VALUES('B',2);
# Wait while C will stop.
---connection master_c
-source include/wait_for_slave_sql_to_stop.inc;
---connection master_a
+--connection server_3
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error.inc
+--connection server_1
INSERT INTO t1(b,c) VALUES('A',2);
---connection master_d
+--connection server_4
INSERT INTO t1(b,c) VALUES('D',2);
# Sync all servers except C
---connection master_b
+--connection server_2
let $wait_condition= SELECT COUNT(*)=3 FROM t1 WHERE a > 4;
+--let $server_connection= server_1
--source include/wait_condition.inc
--echo
--echo * Data on servers (C failed) *
# Masters C,D shouldn't have correct data
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_b
+--connection server_2
SELECT 'Master B',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_c
+--connection server_3
SELECT 'Master C',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_d
+--connection server_4
SELECT 'Master D',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
--echo
--echo * Reconfigure replication to schema A->B->D->A *
# Exclude Master C
---connection master_c
-STOP SLAVE;
+--connection server_3
+--source include/stop_slave_io.inc
--let $pos_c= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1)
--let $file_c= query_get_value(SHOW SLAVE STATUS, Master_Log_File, 1)
---connection master_d
-STOP SLAVE;
---replace_result $SLAVE_MYPORT MASTER_B_PORT $file_c LOG_FILE $pos_c LOG_POS
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT,master_user='root',master_log_file='$file_c',master_log_pos=$pos_c
-connect(slave,127.0.0.1,root,,test,$SLAVE_MYPORT2);
+
+--connection server_4
+--source include/stop_slave.inc
+
+--let $rpl_topology= 1->2->4->1,2->3
+--let $rpl_master_log_file= 4:$file_c
+--let $rpl_master_log_pos= 4:$pos_c
+--source include/rpl_change_topology.inc
+
+#--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2 $file_c LOG_FILE $pos_c LOG_POS
+#--eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SERVER_MYPORT_2,master_user='root',master_log_file='$file_c',master_log_pos=$pos_c
source include/start_slave.inc;
-disconnect slave;
---connection master_b
---sync_slave_with_master master_d
---sync_slave_with_master master_a
+--connection server_2
+--sync_slave_with_master server_4
+--sync_slave_with_master server_1
--echo
--echo * Check data inserted before failure *
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_b
+--connection server_2
SELECT 'Master B',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_c
+--connection server_3
SELECT 'Master C',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
---connection master_d
+--connection server_4
SELECT 'Master D',a,b FROM t1 WHERE c = 2 ORDER BY a,b;
--echo
--echo * Check data inserted after failure *
---connection master_a
+--connection server_1
INSERT INTO t1(b,c) VALUES('A',3);
---connection master_b
+--connection server_2
INSERT INTO t1(b,c) VALUES('B',3);
---connection master_d
+--connection server_4
INSERT INTO t1(b,c) VALUES('D',3);
-connection master_a;
+connection server_1;
---sync_slave_with_master master_b
---sync_slave_with_master master_d
---sync_slave_with_master master_a
---sync_slave_with_master master_b
+--let $rpl_only_running_threads= 1
+--source include/rpl_sync.inc
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
---connection master_b
+--connection server_2
SELECT 'Master B',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
---connection master_c
+--connection server_3
SELECT 'Master C',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
---connection master_d
+--connection server_4
SELECT 'Master D',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
---connection master_a
+--connection server_1
--echo
--echo *** Testing restoring scheme A->B->C->D->A after failure ***
@@ -150,158 +171,150 @@ SELECT 'Master D',a,b FROM t1 WHERE c = 3 ORDER BY a,b;
# Master D will ignore a next event from C so that event will not be
# distributed to other servers
--echo * Remove wrong event from C and restore B->C->D *
---connection master_d
+--connection server_4
source include/stop_slave.inc;
---connection master_c
+--connection server_3
DELETE FROM t1 WHERE a = 6;
START SLAVE;
---connection master_b
---sync_slave_with_master master_c
+--connection server_2
+--sync_slave_with_master server_3
RESET MASTER;
--let $file_d= query_get_value(SHOW MASTER STATUS, File, 1)
--let $pos_d= query_get_value(SHOW MASTER STATUS, Position, 1)
---connection master_d
+--connection server_4
RESET SLAVE;
---replace_result $SLAVE_MYPORT1 MASTER_C_PORT $file_d LOG_FILE $pos_d LOG_POS
---eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SLAVE_MYPORT1,master_user='root',master_log_file='$file_d',master_log_pos=$pos_d
+--let $rpl_topology= 1->2->3->4->1
+--let $rpl_master_log_file= 4:$file_d
+--let $rpl_master_log_pos= 4:$pos_d
+--source include/rpl_change_topology.inc
+#--replace_result $SERVER_MYPORT_3 SERVER_MYPORT_3 $file_d LOG_FILE $pos_d LOG_POS
+#--eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$SERVER_MYPORT_3,master_user='root',master_log_file='$file_d',master_log_pos=$pos_d
START SLAVE;
---connection master_c
---sync_slave_with_master master_d
---source include/circular_rpl_for_4_hosts_sync.inc
+--connection server_3
+--sync_slave_with_master server_4
+--source include/rpl_sync.inc
--echo
--echo * Check data inserted before restoring schema A->B->C->D->A *
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c IN (2,3) ORDER BY a,b;
---sync_slave_with_master master_b
+--sync_slave_with_master server_2
SELECT 'Master B',a,b FROM t1 WHERE c IN (2,3) ORDER BY a,b;
---sync_slave_with_master master_c
+--sync_slave_with_master server_3
SELECT 'Master C',a,b FROM t1 WHERE c IN (2,3) ORDER BY a,b;
---sync_slave_with_master master_d
+--sync_slave_with_master server_4
SELECT 'Master D',a,b FROM t1 WHERE c IN (2,3) ORDER BY a,b;
---sync_slave_with_master master_a
+--sync_slave_with_master server_1
--echo
--echo * Check data inserted after restoring schema A->B->C->D->A *
---connection master_a
+--connection server_1
INSERT INTO t1(b,c) VALUES('A',4);
---connection master_b
+--connection server_2
INSERT INTO t1(b,c) VALUES('B',4);
---connection master_c
+--connection server_3
INSERT INTO t1(b,c) VALUES('C',4);
---connection master_d
+--connection server_4
INSERT INTO t1(b,c) VALUES('D',4);
---connection master_a
+--connection server_1
---source include/circular_rpl_for_4_hosts_sync.inc
+--source include/rpl_sync.inc
---connection master_a
+--connection server_1
SELECT 'Master A',a,b FROM t1 WHERE c = 4 ORDER BY a,b;
---connection master_b
+--connection server_2
SELECT 'Master B',a,b FROM t1 WHERE c = 4 ORDER BY a,b;
---connection master_c
+--connection server_3
SELECT 'Master C',a,b FROM t1 WHERE c = 4 ORDER BY a,b;
---connection master_d
+--connection server_4
SELECT 'Master D',a,b FROM t1 WHERE c = 4 ORDER BY a,b;
---connection master_a
+--connection server_1
--echo
--echo * Transactions with commits *
# Testing mixing of transactions and regular inserts
---connection master_a
+--connection server_1
BEGIN;
---connection master_c
+--connection server_3
BEGIN;
let $counter= 100;
---connection master_a
+--connection server_1
--disable_query_log
while ($counter) {
- --connection master_a
+ --connection server_1
INSERT INTO t2(b,c) VALUES('A',1);
- --connection master_b
+ --connection server_2
INSERT INTO t2(b,c) VALUES('B',1);
- --connection master_c
+ --connection server_3
INSERT INTO t2(b,c) VALUES('C',1);
- --connection master_d
+ --connection server_4
INSERT INTO t2(b,c) VALUES('D',1);
dec $counter;
}
---connection master_a
+--connection server_1
COMMIT;
---connection master_c
+--connection server_3
COMMIT;
---connection master_a
+--connection server_1
--enable_query_log
---source include/circular_rpl_for_4_hosts_sync.inc
+--source include/rpl_sync.inc
---connection master_a
+--connection server_1
SELECT 'Master A',b,COUNT(*) FROM t2 WHERE c = 1 GROUP BY b ORDER BY b;
---connection master_b
+--connection server_2
SELECT 'Master B',b,COUNT(*) FROM t2 WHERE c = 1 GROUP BY b ORDER BY b;
---connection master_c
+--connection server_3
SELECT 'Master C',b,COUNT(*) FROM t2 WHERE c = 1 GROUP BY b ORDER BY b;
---connection master_d
+--connection server_4
SELECT 'Master D',b,COUNT(*) FROM t2 WHERE c = 1 GROUP BY b ORDER BY b;
---connection master_a
+--connection server_1
--echo
--echo * Transactions with rollbacks *
# Testing mixing of transactions with rollback and regular inserts
---connection master_a
+--connection server_1
BEGIN;
---connection master_c
+--connection server_3
BEGIN;
let $counter= 100;
---connection master_a
+--connection server_1
--disable_query_log
while ($counter) {
- --connection master_a
+ --connection server_1
INSERT INTO t2(b,c) VALUES('A',2);
- --connection master_b
+ --connection server_2
INSERT INTO t2(b,c) VALUES('B',2);
- --connection master_c
+ --connection server_3
INSERT INTO t2(b,c) VALUES('C',2);
- --connection master_d
+ --connection server_4
INSERT INTO t2(b,c) VALUES('D',2);
dec $counter;
}
---connection master_a
+--connection server_1
ROLLBACK;
---connection master_c
+--connection server_3
ROLLBACK;
---connection master_a
+--connection server_1
--enable_query_log
---source include/circular_rpl_for_4_hosts_sync.inc
+--source include/rpl_sync.inc
---connection master_a
+--connection server_1
SELECT 'Master A',b,COUNT(*) FROM t2 WHERE c = 2 GROUP BY b ORDER BY b;
---connection master_b
+--connection server_2
SELECT 'Master B',b,COUNT(*) FROM t2 WHERE c = 2 GROUP BY b ORDER BY b;
---connection master_c
+--connection server_3
SELECT 'Master C',b,COUNT(*) FROM t2 WHERE c = 2 GROUP BY b ORDER BY b;
---connection master_d
+--connection server_4
SELECT 'Master D',b,COUNT(*) FROM t2 WHERE c = 2 GROUP BY b ORDER BY b;
---connection master_a
+--connection server_1
--echo
# Clean up
--echo *** Clean up ***
---connection master_a
+--connection server_1
DROP TABLE t1,t2;
---source include/circular_rpl_for_4_hosts_sync.inc
---connection master_a
-STOP SLAVE;
-RESET SLAVE;
---connection master_b
-STOP SLAVE;
-RESET SLAVE;
---connection master_c
-STOP SLAVE;
-RESET SLAVE;
---connection master_d
-STOP SLAVE;
-RESET SLAVE;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_colSize.test b/mysql-test/suite/rpl/t/rpl_colSize.test
index c20f2c3fd35..0a64817bf36 100644
--- a/mysql-test/suite/rpl/t/rpl_colSize.test
+++ b/mysql-test/suite/rpl/t/rpl_colSize.test
@@ -218,3 +218,4 @@ DROP TABLE t1;
sync_slave_with_master;
# END 5.1 Test Case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_commit_after_flush.test b/mysql-test/suite/rpl/t/rpl_commit_after_flush.test
index 47df391d6be..5e070b14301 100644
--- a/mysql-test/suite/rpl/t/rpl_commit_after_flush.test
+++ b/mysql-test/suite/rpl/t/rpl_commit_after_flush.test
@@ -1,12 +1,6 @@
-#####################################
-# Wrapper for rpl_commit_after_flush#
-#####################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
let $engine_type=innodb;
-- source extra/rpl_tests/rpl_commit_after_flush.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_concurrency_error.test b/mysql-test/suite/rpl/t/rpl_concurrency_error.test
index da2951afb1a..a5c77e830d6 100644
--- a/mysql-test/suite/rpl/t/rpl_concurrency_error.test
+++ b/mysql-test/suite/rpl/t/rpl_concurrency_error.test
@@ -125,13 +125,11 @@ while ($type)
connection master;
sync_slave_with_master;
-connection master;
-let $diff_statement= SELECT * FROM t order by i;
-source include/diff_master_slave.inc;
+let $rpl_diff_statement= SELECT * FROM t order by i;
+source include/rpl_diff.inc;
-connection master;
-let $diff_statement= SELECT * FROM n order by d, f;
-source include/diff_master_slave.inc;
+let $rpl_diff_statement= SELECT * FROM n order by d, f;
+source include/rpl_diff.inc;
--echo ########################################################################
--echo # Cleanup
@@ -147,3 +145,4 @@ sync_slave_with_master;
connection master;
disconnect conn1;
disconnect conn2;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_conditional_comments.test b/mysql-test/suite/rpl/t/rpl_conditional_comments.test
index 14251d5eb37..88adf3a20f1 100644
--- a/mysql-test/suite/rpl/t/rpl_conditional_comments.test
+++ b/mysql-test/suite/rpl/t/rpl_conditional_comments.test
@@ -26,15 +26,15 @@ let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
source include/show_binlog_events.inc;
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-source include/diff_tables.inc;
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo
--echo # Case 2:
--echo # -----------------------------------------------------------------
--echo # Verify whether it can be binlogged correctly when executing prepared
--echo # statement.
+--connection master
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla*/ t1 VALUES(60) /*!99999 ,(61)*/';
EXECUTE stmt;
DROP TABLE t1;
@@ -42,10 +42,10 @@ CREATE TABLE t1(c1 INT);
EXECUTE stmt;
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-source include/diff_tables.inc;
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
+--connection master
--echo
SET @value=62;
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla */ t1 VALUES(?) /*!99999 ,(63)*/';
@@ -58,17 +58,17 @@ source include/show_binlog_events.inc;
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-source include/diff_tables.inc;
+--let $diff_tables= master:t1,slave:t1
+--source include/diff_tables.inc
--echo
--echo # Case 3:
--echo # -----------------------------------------------------------------
--echo # Verify it can restore the '!', if the it is an uncomplete conditional
--echo # comments
+--connection master
--error 1064
SELECT c1 FROM /*!99999 t1 WHEREN;
DROP TABLE t1;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_create_database.test b/mysql-test/suite/rpl/t/rpl_create_database.test
index e3e2e637594..5eac3de0d15 100644
--- a/mysql-test/suite/rpl/t/rpl_create_database.test
+++ b/mysql-test/suite/rpl/t/rpl_create_database.test
@@ -70,3 +70,4 @@ DROP DATABASE IF EXISTS mysqltest_bob;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_create_if_not_exists.test b/mysql-test/suite/rpl/t/rpl_create_if_not_exists.test
index cf26e58c3ec..12183531677 100644
--- a/mysql-test/suite/rpl/t/rpl_create_if_not_exists.test
+++ b/mysql-test/suite/rpl/t/rpl_create_if_not_exists.test
@@ -147,4 +147,4 @@ sync_slave_with_master;
connection master;
DROP TABLE t1;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test b/mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test
index a06dfa54cb1..daf6b7e9ad8 100644
--- a/mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test
+++ b/mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test
@@ -38,4 +38,4 @@ CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp;
source include/show_binlog_events.inc;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_critical_errors.test b/mysql-test/suite/rpl/t/rpl_critical_errors.test
index aa1f251b738..bc0d7096f80 100644
--- a/mysql-test/suite/rpl/t/rpl_critical_errors.test
+++ b/mysql-test/suite/rpl/t/rpl_critical_errors.test
@@ -35,7 +35,7 @@ connection master1;
# This sleep is picked so that the query above has started to insert
# some rows into t2. If it hasn't the slave will not stop below.
let $wait_condition= SELECT COUNT(*) > 1000 FROM t1;
-source include/wait_condition.inc
+--source include/wait_condition.inc
# SHOW PROCESSLIST;
@@ -62,4 +62,5 @@ connection slave;
# The following should be 0
SELECT COUNT(*) FROM t2;
+--source include/rpl_end.inc
enable_parsing;
diff --git a/mysql-test/suite/rpl/t/rpl_cross_version.test b/mysql-test/suite/rpl/t/rpl_cross_version.test
index 8cd268a5fd9..d3e834b5358 100644
--- a/mysql-test/suite/rpl/t/rpl_cross_version.test
+++ b/mysql-test/suite/rpl/t/rpl_cross_version.test
@@ -10,7 +10,7 @@
# The master's binlog is treated as a relay log that the SQL thread executes.
#
---source include/have_log_bin.inc
+--source include/master-slave.inc
# The test is disabled for windows due to
# Bug #42879 CHANGE MASTER RELAY_LOG_FILE=path fails on windows
@@ -22,6 +22,10 @@
#
--echo ==== Initialize ====
+--connection slave
+--source include/stop_slave.inc
+RESET SLAVE;
+
# the relay log contains create t1, t3 tables and load data infile
--let $fake_relay_log = $MYSQL_TEST_DIR/suite/binlog/std_data/binlog_old_version_4_1.000001
--source include/setup_fake_relay_log.inc
@@ -36,6 +40,8 @@ start slave sql_thread;
SELECT COUNT(*) - 17920 as zero FROM t3;
--echo ==== Clean up ====
-stop slave sql_thread;
+--source include/stop_slave_sql.inc
--source include/cleanup_fake_relay_log.inc
drop table t1, t3;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_current_user.cnf b/mysql-test/suite/rpl/t/rpl_current_user.cnf
index 999ee727a88..58b605ad928 100644
--- a/mysql-test/suite/rpl/t/rpl_current_user.cnf
+++ b/mysql-test/suite/rpl/t/rpl_current_user.cnf
@@ -1,9 +1,8 @@
!include ../my.cnf
[mysqld.3]
-server-id=3
-log-bin=slave-bin
+log-slave-updates
[ENV]
-SLAVE_MYPORT1= @mysqld.3.port
-SLAVE_MYSOCK1= @mysqld.3.socket
+SERVER_MYPORT_3= @mysqld.3.port
+SERVER_MYSOCK_3= @mysqld.3.socket
diff --git a/mysql-test/suite/rpl/t/rpl_current_user.test b/mysql-test/suite/rpl/t/rpl_current_user.test
index 72581ed7049..bdb53cbcdfe 100644
--- a/mysql-test/suite/rpl/t/rpl_current_user.test
+++ b/mysql-test/suite/rpl/t/rpl_current_user.test
@@ -10,34 +10,22 @@
# 'ALTER EVENT'.
#
##############################################################################
-source include/master-slave.inc;
+
source include/have_binlog_format_statement.inc;
---echo
---echo # On slave2
-connect (slave2,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
-connection slave2;
+--let $rpl_topology= 1->2->3
+--source include/rpl_init.inc
---echo # Connect slave2 to slave
---replace_result $SLAVE_MYPORT SLAVE_MYPORT;
-eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$SLAVE_MYPORT,
- MASTER_LOG_FILE='slave-bin.000001', MASTER_USER='root';
-START SLAVE;
-source include/wait_for_slave_to_start.inc;
+--let $rpl_connection_name= master
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
+
+--let $rpl_connection_name= slave
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
+
+--connection master
---echo
---echo # [On master]
-connection master;
---disable_warnings
-DROP VIEW IF EXISTS v_user;
-DROP VIEW IF EXISTS v_tables_priv;
-DROP VIEW IF EXISTS v_procs_priv;
-DROP PROCEDURE IF EXISTS p1;
-DROP PROCEDURE IF EXISTS my_grant;
-DROP PROCEDURE IF EXISTS my_revoke;
-DROP FUNCTION IF EXISTS my_user;
-DROP EVENT IF EXISTS e1;
---enable_warnings
CREATE TABLE t1(c1 char(100));
CREATE VIEW test.v_user AS SELECT * FROM mysql.user WHERE User LIKE 'bug48321%';
CREATE VIEW test.v_tables_priv AS SELECT * FROM mysql.tables_priv WHERE User LIKE 'bug48321%';
@@ -63,75 +51,76 @@ connection conn1;
--echo # [On conn1]
--echo # Verify 'REVOKE ALL' statement
REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_USER();
-let $diff_table= test.v_user;
-let $diff_server_list= master, slave, slave2;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
+source include/diff_tables.inc;
--echo
--echo # Verify 'GRANT ... ON TABLE ...' statement
-connection conn1;
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
-let $diff_table= test.v_tables_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'GRANT ... ON PROCEDURE...' statement
-connection conn1;
GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO CURRENT_USER();
-let $diff_table= test.v_procs_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'GRANT ... ON *.* ...' statement
-connection conn1;
GRANT ALL PRIVILEGES ON *.* TO CURRENT_USER() WITH GRANT OPTION;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'REVOKE ... ON TABLE ...' statement
-connection conn1;
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
-let $diff_table= test.v_tables_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'REVOKE ... ON PROCEDURE...' statement
-connection conn1;
REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM CURRENT_USER();
-let $diff_table= test.v_procs_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'REVOKE ... ON *.* ...' statement
-connection conn1;
REVOKE ALL PRIVILEGES ON *.* FROM CURRENT_USER();
-let $diff_table= test.v_user;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
+source include/diff_tables.inc;
--echo
--echo # Verify 'GRANT ...' statement in the procedure
-connection conn1;
CREATE PROCEDURE my_grant()
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
call my_grant;
-let $diff_table= test.v_tables_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'REVOKE ... ON TABLE ...' statement in the procedure
-connection conn1;
CREATE PROCEDURE my_revoke()
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
call my_revoke;
-let $diff_table= test.v_tables_priv;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
+source include/diff_tables.inc;
--echo
--echo # Verify 'RENAME USER ...' statement
-connection conn1;
RENAME USER CURRENT_USER TO 'bug48321_2'@'localhost';
-let $diff_table= test.v_user;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
+source include/diff_tables.inc;
disconnect conn1;
@@ -142,7 +131,9 @@ GRANT CREATE USER ON *.* TO 'bug48321_2'@'localhost';
connect (conn1, 127.0.0.1, 'bug48321_2'@'localhost',,);
connection conn1;
DROP USER CURRENT_USER();
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
+source include/diff_tables.inc;
--echo
--echo # Verify 'ALTER EVENT...' statement
@@ -151,16 +142,17 @@ CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT * FROM t1;
--echo # Explicitly assign CURRENT_USER() to definer
ALTER DEFINER=CURRENT_USER() EVENT e1 ENABLE;
-let $diff_table= test.v_event;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_event, server_2:v_event, server_3:v_event;
+source include/diff_tables.inc;
-connection master;
--echo
--echo # Session user will be set as definer, if the statement does not assign
--echo # a definer
ALTER EVENT e1 ENABLE;
-sync_slave_with_master;
-source include/rpl_diff_tables.inc;
+--source include/rpl_sync.inc
+let $diff_tables= server_1:v_event, server_2:v_event, server_3:v_event;
+source include/diff_tables.inc;
--echo
--echo # Verify that this patch does not affect the calling of CURRENT_USER()
@@ -172,8 +164,8 @@ SELECT * FROM t1;
sync_slave_with_master;
--echo # [On slave]
SELECT * FROM t1;
---echo # [On slave2]
-sync_slave_with_master slave2;
+--echo # [On server_3]
+sync_slave_with_master server_3;
SELECT * FROM t1;
connection master;
@@ -183,8 +175,8 @@ SELECT * FROM t1;
sync_slave_with_master;
--echo # [On slave]
SELECT * FROM t1;
-sync_slave_with_master slave2;
---echo # [On slave2]
+sync_slave_with_master server_3;
+--echo # [On server_3]
SELECT * FROM t1;
connection master;
@@ -194,8 +186,8 @@ SELECT * FROM t1;
sync_slave_with_master;
--echo # [On slave]
SELECT * FROM t1;
-sync_slave_with_master slave2;
---echo # [On slave2]
+sync_slave_with_master server_3;
+--echo # [On server_3]
SELECT * FROM t1;
connection master;
@@ -218,8 +210,8 @@ sync_slave_with_master;
--echo # [On slave]
SELECT * FROM t1;
SELECT * FROM t2;
-sync_slave_with_master slave2;
---echo # [On slave2]
+sync_slave_with_master server_3;
+--echo # [On server_3]
SELECT * FROM t1;
SELECT * FROM t2;
@@ -233,6 +225,5 @@ DROP PROCEDURE my_grant;
DROP PROCEDURE my_revoke;
DROP FUNCTION my_user;
DROP EVENT e1;
-sync_slave_with_master;
-sync_slave_with_master slave2;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
+
diff --git a/mysql-test/suite/rpl/t/rpl_ddl.test b/mysql-test/suite/rpl/t/rpl_ddl.test
index 80df16a7a00..83a530131a6 100644
--- a/mysql-test/suite/rpl/t/rpl_ddl.test
+++ b/mysql-test/suite/rpl/t/rpl_ddl.test
@@ -30,3 +30,4 @@ let $temp_engine_type= MEMORY;
let $show_binlog = 0;
let $manipulate = 0;
-- source extra/rpl_tests/rpl_ddl.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_deadlock_innodb.test b/mysql-test/suite/rpl/t/rpl_deadlock_innodb.test
index ee907f81b22..b2d4e42a973 100644
--- a/mysql-test/suite/rpl/t/rpl_deadlock_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_deadlock_innodb.test
@@ -1,10 +1,3 @@
-################################
-# Wrapper for rpl_deadlock.test#
-################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=innodb;
diff --git a/mysql-test/suite/rpl/t/rpl_delete_no_where.test b/mysql-test/suite/rpl/t/rpl_delete_no_where.test
index 64a293b4058..4bfe6d07b5a 100644
--- a/mysql-test/suite/rpl/t/rpl_delete_no_where.test
+++ b/mysql-test/suite/rpl/t/rpl_delete_no_where.test
@@ -5,3 +5,4 @@
-- source include/master-slave.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_delete_no_where.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_do_grant.test b/mysql-test/suite/rpl/t/rpl_do_grant.test
index c65eef6e939..7b535637658 100644
--- a/mysql-test/suite/rpl/t/rpl_do_grant.test
+++ b/mysql-test/suite/rpl/t/rpl_do_grant.test
@@ -224,7 +224,9 @@ DROP USER 'create_rout_db'@'localhost';
# finish entire clean up (remove binlogs)
# so that we leave a pristine environment for the
# following tests
--- source include/master-slave-reset.inc
+--let $rpl_only_running_threads= 1
+-- source include/rpl_reset.inc
+USE test;
# BUG#49119: Master crashes when executing 'REVOKE ... ON
# {PROCEDURE|FUNCTION} FROM ...'
@@ -249,7 +251,7 @@ DROP USER 'create_rout_db'@'localhost';
-- echo ######## BUG#49119 #######
-- echo ### i) test case from the 'how to repeat section'
--- source include/master-slave-reset.inc
+
-- connection master
CREATE TABLE t1(c1 INT);
@@ -270,7 +272,7 @@ DROP PROCEDURE p1;
-- echo ### ii) Test case in which REVOKE partially succeeds
-- connection master
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
CREATE TABLE t1(c1 INT);
@@ -330,8 +332,7 @@ DROP USER 'user49119'@'localhost';
# Bug #51987 revoke privileges logs wrong error code
#
--- connection master
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
grant all on *.* to foo@"1.2.3.4";
@@ -345,11 +346,7 @@ revoke all privileges, grant option from "foo";
## assertion: slave replicates revoke and does not fail because master
## logged revoke with correct expected error code
--- let $err= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1)
- if ($err)
-{
- -- die UNEXPECTED ERROR AT SLAVE: $err
-}
+--source include/check_slave_no_error.inc
-- connection master
DROP USER foo@"1.2.3.4";
@@ -357,8 +354,7 @@ DROP USER foo@"1.2.3.4";
--echo
--echo # Bug#27606 GRANT statement should be replicated with DEFINER information
---connection master
---source include/master-slave-reset.inc
+--source include/rpl_reset.inc
--connection master
GRANT SELECT, INSERT ON mysql.user TO user_bug27606@localhost;
@@ -375,5 +371,5 @@ SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
--connection master
DROP USER user_bug27606@localhost;
---source include/master-slave-end.inc
--echo "End of test"
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_drop.test b/mysql-test/suite/rpl/t/rpl_drop.test
index 336edad6fc5..748a5759513 100644
--- a/mysql-test/suite/rpl/t/rpl_drop.test
+++ b/mysql-test/suite/rpl/t/rpl_drop.test
@@ -2,15 +2,12 @@
# exist, must be binlogged with a non-zero error code)
source include/master-slave.inc;
source include/have_innodb.inc;
---disable_warnings
-drop table if exists t1, t2;
---enable_warnings
+
create table t1 (a int);
--error 1051
drop table t1, t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+--sync_slave_with_master
+
# End of 4.1 tests
# BUG#55625 RBR breaks on failing 'CREATE TABLE'
@@ -65,3 +62,5 @@ SET @@global.binlog_format= @old_binlog_format;
SET @@global.binlog_format= @old_binlog_format;
# End of 5.1 tests
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_drop_db.test b/mysql-test/suite/rpl/t/rpl_drop_db.test
index 11e93e7307a..c3194f08f52 100644
--- a/mysql-test/suite/rpl/t/rpl_drop_db.test
+++ b/mysql-test/suite/rpl/t/rpl_drop_db.test
@@ -58,4 +58,5 @@ drop table t1;
drop database mysqltest1;
sync_slave_with_master;
-source include/stop_slave.inc;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_drop_temp.test b/mysql-test/suite/rpl/t/rpl_drop_temp.test
index f2a4dd70da6..0b6d1458893 100644
--- a/mysql-test/suite/rpl/t/rpl_drop_temp.test
+++ b/mysql-test/suite/rpl/t/rpl_drop_temp.test
@@ -67,3 +67,4 @@ connection master;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_drop_view.test b/mysql-test/suite/rpl/t/rpl_drop_view.test
index 11633a0a7e8..99c5edb928d 100644
--- a/mysql-test/suite/rpl/t/rpl_drop_view.test
+++ b/mysql-test/suite/rpl/t/rpl_drop_view.test
@@ -34,3 +34,4 @@ select * from v3;
connection master;
drop table t1, t2, t3;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test b/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
index ab1de6a2e9f..618576f5641 100644
--- a/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
+++ b/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
@@ -6,33 +6,21 @@
# of their server id).
# It also will test BUG#13861.
-source include/master-slave.inc;
source include/have_innodb.inc;
-
-# set up "dual head"
-
-# Needed for debug info in wait_for_slave_sql_to_stop.
-let $master_connection= slave;
-connection slave;
-reset master;
-
-connection master;
---replace_result $SLAVE_MYPORT SLAVE_PORT
-eval change master to master_host="127.0.0.1",master_port=$SLAVE_MYPORT,master_user="root";
-
-source include/start_slave.inc;
+--let $rpl_topology= 1->2->1
+--source include/rpl_init.inc
# now we test it
-connection slave;
+connection server_2;
create table t1 (n int);
let $master_log_file= query_get_value(SHOW MASTER STATUS, File, 1);
let $master_log_pos_1= query_get_value(SHOW MASTER STATUS, Position, 1);
let $master_log_pos_1= `SELECT $master_log_pos_1 + 3`;
-sync_slave_with_master master;
+--sync_slave_with_master server_1
#
# BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late if
@@ -42,7 +30,7 @@ source include/stop_slave.inc;
create table t2 (n int); # create one ignored event
-sync_slave_with_master;
+--sync_slave_with_master server_2
show tables;
@@ -59,7 +47,8 @@ insert into t3 values(3);
commit;
insert into t3 values(4);
-connection master;
+
+connection server_1;
# bug is that START SLAVE UNTIL may stop too late, we test that by
# asking it to stop before creation of t3.
@@ -89,26 +78,20 @@ source include/start_slave.inc;
# BUG#13023 is that Exec_master_log_pos may stay too low "forever":
-connection master;
+connection server_1;
create table t4 (n int); # create 3 ignored events
create table t5 (n int);
create table t6 (n int);
-sync_slave_with_master;
-sync_slave_with_master master;
+--sync_slave_with_master server_2
# then BUG#13023 caused hang below ("master" looks behind, while it's
# not in terms of updates done).
+--sync_slave_with_master server_1
show tables;
# cleanup
-
-source include/stop_slave.inc;
-reset slave;
-drop table t1,t2,t3,t4,t5,t6;
-
-sync_slave_with_master;
-
-# End of 4.1 tests
+drop table t1, t2, t3, t4, t5, t6;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_empty_master_crash.test b/mysql-test/suite/rpl/t/rpl_empty_master_crash.test
index 863b450a6d9..a657b82fc94 100644
--- a/mysql-test/suite/rpl/t/rpl_empty_master_crash.test
+++ b/mysql-test/suite/rpl/t/rpl_empty_master_crash.test
@@ -10,3 +10,4 @@ connection slave;
load table t1 from master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test b/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test
index f358c0ee356..01ef5298e48 100644
--- a/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test
+++ b/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test
@@ -62,3 +62,6 @@ DROP TABLE test.t4;
sync_slave_with_master;
# End of 4.1 tests
# Adding comment for force manual merge 5.0 -> wl1012. delete me if needed
+
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_events.test b/mysql-test/suite/rpl/t/rpl_events.test
index 327ad9bf22c..ed5ebd3dbc4 100644
--- a/mysql-test/suite/rpl/t/rpl_events.test
+++ b/mysql-test/suite/rpl/t/rpl_events.test
@@ -111,3 +111,4 @@ DROP EVENT event44331_2;
DROP EVENT event44331_3;
DROP EVENT event44331_4;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_extraCol_innodb.test b/mysql-test/suite/rpl/t/rpl_extraCol_innodb.test
deleted file mode 100644
index e9685baf01b..00000000000
--- a/mysql-test/suite/rpl/t/rpl_extraCol_innodb.test
+++ /dev/null
@@ -1,13 +0,0 @@
-###########################################
-# Author: Jeb
-# Date: 2006-09-08
-# Purpose: Wapper for rpl_extraSlave_Col.test
-# Using innodb
-###########################################
--- source include/have_binlog_format_row.inc
--- source include/have_innodb.inc
--- source include/master-slave.inc
-let $engine_type = 'InnoDB';
--- source extra/rpl_tests/rpl_extraSlave_Col.test
-
-
diff --git a/mysql-test/suite/rpl/t/rpl_extraCol_myisam.test b/mysql-test/suite/rpl/t/rpl_extraCol_myisam.test
deleted file mode 100644
index d56df394ccf..00000000000
--- a/mysql-test/suite/rpl/t/rpl_extraCol_myisam.test
+++ /dev/null
@@ -1,12 +0,0 @@
-###########################################
-# Author: Jeb
-# Date: 2006-09-07
-# Purpose: Wapper for rpl_extraSlave_Col.test
-# Using MyISAM
-###########################################
--- source include/have_binlog_format_row.inc
--- source include/master-slave.inc
-let $engine_type = 'MyISAM';
--- source extra/rpl_tests/rpl_extraSlave_Col.test
-
-
diff --git a/mysql-test/suite/rpl/t/rpl_extraColmaster_innodb.test b/mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test
index 5255a9cfbad..11211e51286 100644
--- a/mysql-test/suite/rpl/t/rpl_extraColmaster_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test
@@ -7,10 +7,11 @@
let $engine_type = 'InnoDB';
set binlog_format=row;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
set binlog_format=statement;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
set binlog_format=mixed;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_extraColmaster_myisam.test b/mysql-test/suite/rpl/t/rpl_extra_col_master_myisam.test
index e6b41eabd0d..2343d430784 100644
--- a/mysql-test/suite/rpl/t/rpl_extraColmaster_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_extra_col_master_myisam.test
@@ -6,10 +6,11 @@
let $engine_type = 'MyISAM';
set binlog_format=row;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
set binlog_format=statement;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
set binlog_format=mixed;
--- source extra/rpl_tests/rpl_extraMaster_Col.test
+-- source extra/rpl_tests/rpl_extra_col_master.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test b/mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test
new file mode 100644
index 00000000000..8b2cb2ded1c
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test
@@ -0,0 +1,6 @@
+-- source include/have_binlog_format_row.inc
+-- source include/have_innodb.inc
+-- source include/master-slave.inc
+let $engine_type = 'InnoDB';
+-- source extra/rpl_tests/rpl_extra_col_slave.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test b/mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test
new file mode 100644
index 00000000000..52d312de878
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test
@@ -0,0 +1,5 @@
+-- source include/have_binlog_format_row.inc
+-- source include/master-slave.inc
+let $engine_type = 'MyISAM';
+-- source extra/rpl_tests/rpl_extra_col_slave.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_failed_optimize.test b/mysql-test/suite/rpl/t/rpl_failed_optimize.test
index 81e8342b5c0..798b3ef8b41 100644
--- a/mysql-test/suite/rpl/t/rpl_failed_optimize.test
+++ b/mysql-test/suite/rpl/t/rpl_failed_optimize.test
@@ -1,10 +1,3 @@
-#######################################
-# Wrapper for rpl_failed_optimize.test#
-#######################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=InnoDB;
diff --git a/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test b/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
index aa2dee0fe57..8e1c9eb98b2 100644
--- a/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
+++ b/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
@@ -204,4 +204,4 @@ SELECT * FROM t3;
connection master;
echo [on master];
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt b/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt
index 95bca94fd3a..eb35347af33 100644
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt
+++ b/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt
@@ -1 +1 @@
--O max_binlog_size=1M --relay-log=$MYSQLTEST_VARDIR/mysqld.1/data/relay-log
+-O max_binlog_size=1M
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.sh b/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.sh
deleted file mode 100755
index a321dd690cd..00000000000
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop-master.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-rm -f $MYSQLTEST_VARDIR/slave-data/*-bin.*
-rm -f $MYSQLTEST_VARDIR/slave-data/master.info
-rm -f $MYSQLTEST_VARDIR/slave-data/*.index
-
-
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt b/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt
index e2aa63225a3..eb35347af33 100644
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt
+++ b/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt
@@ -1 +1 @@
--O max_binlog_size=1M --relay-log=$MYSQLTEST_VARDIR/mysqld.2/data/relay-log
+-O max_binlog_size=1M
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.sh b/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.sh
deleted file mode 100755
index e46ea6d400b..00000000000
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-rm -f $MYSQLTEST_VARDIR/master-data/master.info
-rm -f $MYSQLTEST_VARDIR/master-data/*-bin.*
-rm -f $MYSQLTEST_VARDIR/master-data/*.index
-
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
index 487f910ba2b..d5d362bac0f 100644
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
+++ b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
@@ -1,33 +1,12 @@
# Testing if "flush logs" command bouncing resulting in logs created in a loop
# in case of bi-directional replication
--- source include/master-slave.inc
+--let $rpl_topology= 1->2->1
+--source include/rpl_init.inc
let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR/
show variables like 'relay_log%';
-connection slave;
---disable_warnings
-stop slave;
---enable_warnings
---replace_result $MASTER_MYPORT MASTER_PORT
-eval change master to master_host='127.0.0.1',master_user='root',
- master_password='',master_port=$MASTER_MYPORT;
-start slave;
-
-#
-# Start replication slave -> master
-#
-connection master;
---disable_warnings
-stop slave;
---enable_warnings
---replace_result $SLAVE_MYPORT SLAVE_PORT
-eval change master to master_host='127.0.0.1',master_user='root',
- master_password='',master_port=$SLAVE_MYPORT;
-
-source include/start_slave.inc;
-
#
# Flush logs of slave
#
@@ -39,16 +18,16 @@ source include/start_slave.inc;
CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
let $wait_binlog_event= CREATE TABLE t1;
--source include/wait_for_binlog_event.inc
-sync_slave_with_master;
+sync_slave_with_master server_2;
-connection master;
+connection server_1;
INSERT INTO t1 VALUE(1);
FLUSH LOGS;
-sync_slave_with_master;
+sync_slave_with_master server_2;
INSERT INTO t1 VALUE(2);
let $slave_param_value= query_get_value(SHOW MASTER STATUS, Position, 1);
-sync_slave_with_master master;
+sync_slave_with_master server_1;
#
# Check that the master server's slave threads are still running and show
@@ -59,7 +38,9 @@ sync_slave_with_master master;
--source include/show_slave_status.inc
--disable_query_log
-connection master;
+connection server_1;
DROP TABLE t1;
-sync_slave_with_master;
+sync_slave_with_master server_2;
--enable_query_log
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test b/mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test
index d085bff2012..ce28c0334ec 100644
--- a/mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test
@@ -1,10 +1,3 @@
-###################################
-# Wrapper for rpl_foreign_key.test#
-###################################
-# Change Author: JBM
-# Change Date: 2006-01-17
-# Change: FK not supported, skip test when NDB is forced
-####################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=INNODB;
diff --git a/mysql-test/suite/rpl/t/rpl_found_rows.test b/mysql-test/suite/rpl/t/rpl_found_rows.test
index ff8d2c3107a..3e5d741d788 100644
--- a/mysql-test/suite/rpl/t/rpl_found_rows.test
+++ b/mysql-test/suite/rpl/t/rpl_found_rows.test
@@ -114,9 +114,8 @@ DELETE FROM logtbl;
DROP PROCEDURE just_log;
DROP PROCEDURE calc_and_log;
DROP FUNCTION log_rows;
-sync_slave_with_master;
-source include/reset_master_and_slave.inc;
+--source include/rpl_reset.inc
--echo #### 2. Using mixed mode ####
@@ -254,3 +253,4 @@ DROP PROCEDURE log_me_inner;
DROP FUNCTION log_rows;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_free_items.test b/mysql-test/suite/rpl/t/rpl_free_items.test
index 043e84160b8..581409cfc10 100644
--- a/mysql-test/suite/rpl/t/rpl_free_items.test
+++ b/mysql-test/suite/rpl/t/rpl_free_items.test
@@ -20,3 +20,4 @@ drop table t2;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_geometry.test b/mysql-test/suite/rpl/t/rpl_geometry.test
index eac98924b98..769c49c96b1 100644
--- a/mysql-test/suite/rpl/t/rpl_geometry.test
+++ b/mysql-test/suite/rpl/t/rpl_geometry.test
@@ -23,4 +23,4 @@ sync_slave_with_master;
connection master;
drop table t1, t2;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_get_lock.test b/mysql-test/suite/rpl/t/rpl_get_lock.test
index 87366f41ba2..f87932113ac 100644
--- a/mysql-test/suite/rpl/t/rpl_get_lock.test
+++ b/mysql-test/suite/rpl/t/rpl_get_lock.test
@@ -22,9 +22,7 @@ while ($1)
dec $1;
}
enable_query_log;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
select get_lock("lock",3);
select * from t1;
# There is no point in testing REPLICATIION of the IS_*_LOCK
@@ -41,8 +39,9 @@ select is_free_lock("lock2");
select is_free_lock(NULL);
connection master1;
drop table t1;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
+
+
+--source include/rpl_end.inc
# End of 4.1 tests
diff --git a/mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test b/mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
index 28f13c17042..ec1d6d57555 100644
--- a/mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
+++ b/mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
@@ -7,12 +7,6 @@
# So they can't be verified by test case here.
# Finish the following tests by calling its common test script:
# extra/rpl_tests/rpl_get_master_version_and_clock.test.
-# And meanwhile this test checks that the slave I/O thread refuses to start if slave
-# and master have the same server id (because this is a useless setup,
-# and otherwise SHOW SLAVE STATUS shows progress but all queries are
-# ignored, which has caught our customers), unless
-# --replicate-same-server-id.
-#
source include/master-slave.inc;
source include/have_debug.inc;
@@ -47,20 +41,6 @@ source extra/rpl_tests/rpl_get_master_version_and_clock.test;
eval set global debug= '$debug_saved';
-#Test case 3: This test checks that the slave I/O thread refuses to start
-#if slave and master have the same server id.
-connection slave;
-reset master;
-# replicate ourselves
-source include/stop_slave.inc;
---replace_result $SLAVE_MYPORT SLAVE_PORT
-eval change master to master_port=$SLAVE_MYPORT;
-start slave;
-
---echo *** must be having the replicate-same-server-id IO thread error ***
-let $slave_io_errno= 1593;
-let $show_slave_io_error= 1;
-source include/wait_for_slave_io_error.inc;
# cleanup
@@ -68,3 +48,4 @@ source include/wait_for_slave_io_error.inc;
SET DEBUG_SYNC= 'RESET';
# End of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_grant.test b/mysql-test/suite/rpl/t/rpl_grant.test
index 6fbdafc0f9c..1091e5aab0d 100644
--- a/mysql-test/suite/rpl/t/rpl_grant.test
+++ b/mysql-test/suite/rpl/t/rpl_grant.test
@@ -36,3 +36,5 @@ sync_slave_with_master;
--echo **** On Slave ****
SELECT user,host FROM mysql.user WHERE user like 'dummy%';
SELECT COUNT(*) FROM mysql.user WHERE user like 'dummy%';
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_idempotency.test b/mysql-test/suite/rpl/t/rpl_idempotency.test
index c96b88a1b1a..141f3699b14 100644
--- a/mysql-test/suite/rpl/t/rpl_idempotency.test
+++ b/mysql-test/suite/rpl/t/rpl_idempotency.test
@@ -37,10 +37,7 @@ SELECT * FROM t2 ORDER BY a;
sync_slave_with_master;
SELECT * FROM t1 ORDER BY a;
SELECT * FROM t2 ORDER BY a;
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+--source include/check_slave_no_error.inc
# An insert of a row that already exists. Since we are replacing the
# row if it already exists, the most apropriate representation is
@@ -53,10 +50,7 @@ INSERT IGNORE INTO t1 VALUES (-2);
SELECT * FROM t1 ORDER BY a;
sync_slave_with_master;
SELECT * FROM t1 ORDER BY a;
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+--source include/check_slave_no_error.inc
# BUG#19958: RBR idempotency issue for UPDATE and DELETE
@@ -80,10 +74,7 @@ SELECT * FROM t2 ORDER BY a;
sync_slave_with_master;
SELECT * FROM t1 ORDER BY a;
SELECT * FROM t2 ORDER BY a;
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+--source include/check_slave_no_error.inc
connection master;
DROP TABLE t1, t2;
@@ -211,12 +202,9 @@ select * from ti1 order by b /* must be (2),(3) */;
--echo *** slave must stop (Trying to delete a referenced foreing key)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1451 = ER_ROW_ID_REFERENCED_2
+--let $slave_sql_errno= 1451
+--source include/wait_for_slave_sql_error.inc
select * from ti1 order by b /* must be (1),(2),(3) - not deleted */;
set foreign_key_checks= 0;
@@ -245,12 +233,9 @@ insert into ti2 set a=3, b=3 /* offending write event */;
--echo *** slave must stop (Trying to insert an invalid foreign key)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1452 = ER_NO_REFERENCED_ROW_2
+--let $slave_sql_errno= 1452
+--source include/wait_for_slave_sql_error.inc
select * from ti2 order by b /* must be (2,2) */;
set foreign_key_checks= 0;
@@ -284,12 +269,9 @@ insert into ti1 set b=1 /* offending write event */;
--echo *** slave must stop (Trying to insert a dupliacte key)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error.inc
set foreign_key_checks= 0;
delete from ti1 where b=1;
@@ -319,12 +301,9 @@ DELETE FROM t1 WHERE a = -2;
--echo *** slave must stop (Key was not found)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1032 = ER_KEY_NOT_FOUND
+--let $slave_sql_errno= 1032
+--source include/wait_for_slave_sql_error.inc
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
@@ -337,12 +316,9 @@ connection master;
DELETE FROM t2 WHERE a = -2;
--echo *** slave must stop (Key was not found)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1032 = ER_KEY_NOT_FOUND
+--let $slave_sql_errno= 1032
+source include/wait_for_slave_sql_error.inc;
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
@@ -359,12 +335,9 @@ UPDATE t1 SET a = 1 WHERE a = -1;
--echo *** slave must stop (Key was not found)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1032 = ER_KEY_NOT_FOUND
+--let $slave_sql_errno= 1032
+source include/wait_for_slave_sql_error.inc;
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
@@ -379,12 +352,9 @@ UPDATE t2 SET a = 1 WHERE a = -1;
--echo *** slave must stop (Key was not found)
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
-disable_query_log;
-eval SELECT "$last_error" AS Last_SQL_Error;
-enable_query_log;
+# 1032 = ER_KEY_NOT_FOUND
+--let $slave_sql_errno= 1032
+source include/wait_for_slave_sql_error.inc;
set global slave_exec_mode='IDEMPOTENT';
start slave sql_thread;
@@ -399,6 +369,6 @@ connection master;
set @@session.binlog_format= @save_binlog_format;
drop table t1,t2,ti2,ti1;
---source include/master-slave-end.inc
+--source include/rpl_end.inc
--echo *** end of tests
diff --git a/mysql-test/suite/rpl/t/rpl_ignore_grant.test b/mysql-test/suite/rpl/t/rpl_ignore_grant.test
index 2e6e2ce9a31..34074ba8ca9 100644
--- a/mysql-test/suite/rpl/t/rpl_ignore_grant.test
+++ b/mysql-test/suite/rpl/t/rpl_ignore_grant.test
@@ -57,3 +57,4 @@ delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_ignore_revoke.test b/mysql-test/suite/rpl/t/rpl_ignore_revoke.test
index 00171605a92..db20e807afc 100644
--- a/mysql-test/suite/rpl/t/rpl_ignore_revoke.test
+++ b/mysql-test/suite/rpl/t/rpl_ignore_revoke.test
@@ -49,3 +49,4 @@ sync_slave_with_master;
# Since changes to mysql.* are ignored, the revoke need to
# be done on slave as well
delete from mysql.user where user="user_foo";
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_ignore_table.test b/mysql-test/suite/rpl/t/rpl_ignore_table.test
index b5666ad6e91..1ab7393d8fc 100644
--- a/mysql-test/suite/rpl/t/rpl_ignore_table.test
+++ b/mysql-test/suite/rpl/t/rpl_ignore_table.test
@@ -175,4 +175,6 @@ connection master;
DROP TABLE t5;
sync_slave_with_master;
-call mtr.force_restart();
+--source include/force_restart.inc
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_ignore_table_update.test b/mysql-test/suite/rpl/t/rpl_ignore_table_update.test
index fe030f90411..840052e2f25 100644
--- a/mysql-test/suite/rpl/t/rpl_ignore_table_update.test
+++ b/mysql-test/suite/rpl/t/rpl_ignore_table_update.test
@@ -36,3 +36,4 @@ sync_with_master;
drop table mysqltest_foo,mysqltest_bar,t1;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_incident.test b/mysql-test/suite/rpl/t/rpl_incident.test
index 08096d03c11..b65441c7d50 100644
--- a/mysql-test/suite/rpl/t/rpl_incident.test
+++ b/mysql-test/suite/rpl/t/rpl_incident.test
@@ -37,3 +37,4 @@ source include/check_slave_is_running.inc;
connection master;
DROP TABLE t1;
--sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_init_slave.test b/mysql-test/suite/rpl/t/rpl_init_slave.test
index 58d1f6bdc01..1803b146819 100644
--- a/mysql-test/suite/rpl/t/rpl_init_slave.test
+++ b/mysql-test/suite/rpl/t/rpl_init_slave.test
@@ -25,10 +25,10 @@ set global init_connect="set @c=1";
show variables like 'init_connect';
connection master;
sync_slave_with_master;
-source include/stop_slave.inc;
# Restore changed global variable
set global init_connect= @my_global_init_connect;
set global max_connections= default;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_init_slave_errors.test b/mysql-test/suite/rpl/t/rpl_init_slave_errors.test
index 180821730ec..cf72de18e13 100644
--- a/mysql-test/suite/rpl/t/rpl_init_slave_errors.test
+++ b/mysql-test/suite/rpl/t/rpl_init_slave_errors.test
@@ -53,10 +53,11 @@ start slave;
# slave is going to stop because of emulated failures
# but there won't be any crashes nor asserts hit.
#
-source include/wait_for_slave_to_stop.inc;
+# 1593 = ER_SLAVE_FATAL_ERROR
+--let $slave_sql_errno= 1593
+--let $show_slave_sql_error= 1
+--source include/wait_for_slave_sql_error.inc
-let $error= query_get_value(SHOW SLAVE STATUS, Last_Error, 1);
-echo Reporting the following error: $error;
call mtr.add_suppression("Failed during slave I/O thread initialization");
SET GLOBAL debug= "";
@@ -66,22 +67,23 @@ SET GLOBAL debug= "";
######################################################################
connection slave;
---disable_warnings
-stop slave;
---enable_warnings
-source include/wait_for_slave_to_stop.inc;
-
reset slave;
SET GLOBAL init_slave= "garbage";
start slave;
-source include/wait_for_slave_sql_to_stop.inc;
-
-let $error= query_get_value(SHOW SLAVE STATUS, Last_Error, 1);
-echo Reporting the following error: $error;
+# 1064 = ER_PARSE_ERROR
+--let $slave_sql_errno= 1064
+--let $show_slave_sql_error= 1
+--source include/wait_for_slave_sql_error.inc
######################################################################
# Clean up
######################################################################
SET GLOBAL init_slave= "";
+
+# Clean up Last_SQL_Error
+--source include/stop_slave_io.inc
+RESET SLAVE;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_innodb.test b/mysql-test/suite/rpl/t/rpl_innodb.test
index 64a85d27c88..b9b6080cfe5 100644
--- a/mysql-test/suite/rpl/t/rpl_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_innodb.test
@@ -120,6 +120,6 @@ connection master;
FLUSH LOGS;
DROP DATABASE mysqltest1;
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
--echo End of 5.1 tests
diff --git a/mysql-test/suite/rpl/t/rpl_innodb_bug28430.test b/mysql-test/suite/rpl/t/rpl_innodb_bug28430.test
index 124cf4a956f..6b82f2f5334 100644
--- a/mysql-test/suite/rpl/t/rpl_innodb_bug28430.test
+++ b/mysql-test/suite/rpl/t/rpl_innodb_bug28430.test
@@ -150,4 +150,4 @@ DROP TABLE test.regular_tbl;
DROP TABLE test.bykey_tbl;
DROP TABLE test.byrange_tbl;
---source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_innodb_bug30888.test b/mysql-test/suite/rpl/t/rpl_innodb_bug30888.test
index 4311328b064..9bfce61804b 100644
--- a/mysql-test/suite/rpl/t/rpl_innodb_bug30888.test
+++ b/mysql-test/suite/rpl/t/rpl_innodb_bug30888.test
@@ -62,5 +62,5 @@ connection master;
DROP PROCEDURE test.proc_norm;
DROP TABLE test.regular_tbl;
---source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test b/mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test
index 6eb9c7075e4..5147e67c160 100644
--- a/mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test
+++ b/mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test
@@ -1,6 +1,4 @@
#########################################
-# Author: Serge Kozlov skozlov@mysql.com
-# Date: 07/10/2006
# Purpose: testing the replication in mixed mode
# Requirements: define binlog format for mysqld as in example below:
# ./mysql-test-run.pl --mysqld=--binlog-format=mixed
@@ -8,7 +6,4 @@
--source include/have_binlog_format_mixed.inc
--source include/have_innodb.inc
let $engine_type= innodb;
-
--source suite/rpl/include/rpl_mixed_ddl.inc
-
-# End 5.1 Test Case
diff --git a/mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test b/mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test
index d48e847a6c8..d04ced0f476 100644
--- a/mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test
+++ b/mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test
@@ -1,6 +1,4 @@
#########################################
-# Author: Serge Kozlov skozlov@mysql.com
-# Date: 07/10/2006
# Purpose: testing the replication in mixed mode
# Requirements: define binlog format for mysqld as in example below:
# ./mysql-test-run.pl --mysqld=--binlog-format=mixed
@@ -8,7 +6,4 @@
--source include/have_binlog_format_mixed.inc
--source include/have_innodb.inc
let $engine_type= innodb;
-
--source suite/rpl/include/rpl_mixed_dml.inc
-
-# End 5.1 Test Case
diff --git a/mysql-test/suite/rpl/t/rpl_insert.test b/mysql-test/suite/rpl/t/rpl_insert.test
index d304dfb6cc7..05793230b19 100644
--- a/mysql-test/suite/rpl/t/rpl_insert.test
+++ b/mysql-test/suite/rpl/t/rpl_insert.test
@@ -38,3 +38,4 @@ connection master;
USE test;
DROP SCHEMA mysqlslap;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_insert_id.test b/mysql-test/suite/rpl/t/rpl_insert_id.test
index 45cc32c9d39..f2f62a207a0 100644
--- a/mysql-test/suite/rpl/t/rpl_insert_id.test
+++ b/mysql-test/suite/rpl/t/rpl_insert_id.test
@@ -1,10 +1,6 @@
#################################
# Wrapper for rpl_insert_id.test#
#################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=myisam;
diff --git a/mysql-test/suite/rpl/t/rpl_insert_id_pk.test b/mysql-test/suite/rpl/t/rpl_insert_id_pk.test
index 01f30b78ac5..c0d68855f85 100644
--- a/mysql-test/suite/rpl/t/rpl_insert_id_pk.test
+++ b/mysql-test/suite/rpl/t/rpl_insert_id_pk.test
@@ -1,10 +1,6 @@
#################################
# Wrapper for rpl_insert_id.test#
#################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=innodb;
diff --git a/mysql-test/suite/rpl/t/rpl_insert_ignore.test b/mysql-test/suite/rpl/t/rpl_insert_ignore.test
index 2709430f85d..1d6c8e7168e 100644
--- a/mysql-test/suite/rpl/t/rpl_insert_ignore.test
+++ b/mysql-test/suite/rpl/t/rpl_insert_ignore.test
@@ -7,3 +7,4 @@
let $engine_type=innodb;
let $engine_type2=myisam;
-- source extra/rpl_tests/rpl_insert_ignore.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_insert_select.test b/mysql-test/suite/rpl/t/rpl_insert_select.test
index 677be526982..23bc7ecd167 100644
--- a/mysql-test/suite/rpl/t/rpl_insert_select.test
+++ b/mysql-test/suite/rpl/t/rpl_insert_select.test
@@ -17,3 +17,4 @@ select * from t1;
connection master;
drop table t1,t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_invoked_features.test b/mysql-test/suite/rpl/t/rpl_invoked_features.test
index e73964a6e14..7082117b9eb 100644
--- a/mysql-test/suite/rpl/t/rpl_invoked_features.test
+++ b/mysql-test/suite/rpl/t/rpl_invoked_features.test
@@ -308,3 +308,4 @@ DROP EVENT IF EXISTS e11;
--sync_slave_with_master slave
# End 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_killed_ddl.test b/mysql-test/suite/rpl/t/rpl_killed_ddl.test
index 69648267ca4..6d86285484a 100644
--- a/mysql-test/suite/rpl/t/rpl_killed_ddl.test
+++ b/mysql-test/suite/rpl/t/rpl_killed_ddl.test
@@ -139,7 +139,7 @@ disable_warnings;
######## DATABASE ########
-let $diff_statement= SHOW DATABASES LIKE 'd%';
+--let $rpl_diff_statement= SHOW DATABASES LIKE \'d%\'
send CREATE DATABASE d2;
source include/kill_query_and_diff_master_slave.inc;
@@ -158,7 +158,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## EVENT ########
-let $diff_statement= SELECT event_name, event_body, execute_at FROM information_schema.events where event_name like 'e%';
+--let $rpl_diff_statement= SELECT event_name, event_body, execute_at FROM information_schema.events where event_name like \'e%\'
send CREATE EVENT e2
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
@@ -179,7 +179,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## FUNCTION ########
-let $diff_statement= SHOW FUNCTION STATUS LIKE 'f%';
+--let $rpl_diff_statement= SHOW FUNCTION STATUS LIKE \'f%\'
send CREATE FUNCTION f2 () RETURNS INT DETERMINISTIC
RETURN 1;
@@ -208,7 +208,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## PROCEDURE ########
-let $diff_statement= SHOW PROCEDURE STATUS LIKE 'p%';
+--let $rpl_diff_statement= SHOW PROCEDURE STATUS LIKE \'p%\'
DELIMITER //;
send CREATE PROCEDURE p2 (OUT rows INT)
@@ -231,7 +231,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## TABLE ########
-let $diff_statement= SHOW TABLES LIKE 't%';
+--let $rpl_diff_statement= SHOW TABLES LIKE \'t%\'
send CREATE TABLE t2 (b int);
source include/kill_query_and_diff_master_slave.inc;
@@ -244,7 +244,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## INDEX ########
-let $diff_statement= SHOW INDEX FROM t1;
+--let $rpl_diff_statement= SHOW INDEX FROM t1
send CREATE INDEX i2 on t1 (a);
source include/kill_query_and_diff_master_slave.inc;
@@ -257,7 +257,7 @@ source include/kill_query_and_diff_master_slave.inc;
# Tempoarily disabled, see bug#25705
-# let $diff_statement= SELECT * FROM mysql.server WHERE name like 's%';
+# --let $rpl_diff_statement= SELECT * FROM mysql.server WHERE name like \'s%\'
# send CREATE SERVER s2
# FOREIGN DATA WRAPPER mysql
@@ -281,7 +281,7 @@ connection master;
CREATE TABLE IF NOT EXISTS t4 (a int);
connection master1;
-let $diff_statement= SHOW TRIGGERS LIKE 'v%';
+--let $rpl_diff_statement= SHOW TRIGGERS LIKE \'v%\'
DELIMITER //;
send CREATE TRIGGER tr2 BEFORE INSERT ON t4
@@ -300,7 +300,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## VIEW ########
-let $diff_statement= SHOW TABLES LIKE 'v%';
+--let $rpl_diff_statement= SHOW TABLES LIKE \'v%\'
send CREATE VIEW v2 AS SELECT a FROM t1 WHERE a > 100;
source include/kill_query_and_diff_master_slave.inc;
@@ -313,7 +313,7 @@ source include/kill_query_and_diff_master_slave.inc;
######## DROP TABLE ########
-let $diff_statement= SHOW TABLES LIKE 't%';
+--let $rpl_diff_statement= SHOW TABLES LIKE \'t%\'
send DROP TABLE t1;
source include/kill_query_and_diff_master_slave.inc;
@@ -354,3 +354,4 @@ DROP PROCEDURE IF EXISTS p2;
DROP PROCEDURE IF EXISTS p3;
DROP PROCEDURE IF EXISTS p4;
enable_warnings;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test b/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
index 5b31b094b62..a8c7c2c1f5b 100644
--- a/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
+++ b/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
@@ -25,7 +25,7 @@ connection master;
INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
SELECT * FROM t1;
connection slave;
---source include/wait_for_slave_sql_to_stop.inc
+
# show the error message
#1105 = ER_UNKNOWN_ERROR
--let $slave_sql_errno= 1105
@@ -81,17 +81,25 @@ ON DUPLICATE KEY UPDATE
t1.field_3 = t2.field_c;
SELECT * FROM t1;
connection slave;
---source include/wait_for_slave_sql_to_stop.inc
+
# show the error message
#1105 = ER_UNKNOWN_ERROR
--let $slave_sql_errno= 1105
--let $show_slave_sql_error= 1
--source include/wait_for_slave_sql_error.inc
+
# show that it was not replicated
SELECT * FROM t1;
connection master;
+
+# clean up
drop table t1, t2;
connection slave;
drop table t1, t2;
+# clear error message in sql thread
+--source include/stop_slave_io.inc
+RESET SLAVE;
# End of 5.0 tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_load_from_master.test b/mysql-test/suite/rpl/t/rpl_load_from_master.test
index 0f085457817..6d09f71e809 100644
--- a/mysql-test/suite/rpl/t/rpl_load_from_master.test
+++ b/mysql-test/suite/rpl/t/rpl_load_from_master.test
@@ -179,3 +179,4 @@ drop database mysqltest2;
drop database mysqltest3;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_load_table_from_master.test b/mysql-test/suite/rpl/t/rpl_load_table_from_master.test
index aad113878d3..5474124c337 100644
--- a/mysql-test/suite/rpl/t/rpl_load_table_from_master.test
+++ b/mysql-test/suite/rpl/t/rpl_load_table_from_master.test
@@ -96,3 +96,4 @@ drop table t1;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata.test b/mysql-test/suite/rpl/t/rpl_loaddata.test
index 6f9ee4ef80a..4682e1e59eb 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata.test
@@ -1,7 +1,3 @@
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_loaddata.test
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_charset.test b/mysql-test/suite/rpl/t/rpl_loaddata_charset.test
index 031a0f6c351..768b61d5741 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_charset.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_charset.test
@@ -48,3 +48,4 @@ source include/rpl_loaddata_charset.inc;
# LOAD DATA LOCAL INFILE
let $LOAD_LOCAL=0;
source include/rpl_loaddata_charset.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_fatal.test b/mysql-test/suite/rpl/t/rpl_loaddata_fatal.test
index b8975308a86..ecbaddb6995 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_fatal.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_fatal.test
@@ -23,3 +23,4 @@ connection master;
DROP TABLE t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_m.test b/mysql-test/suite/rpl/t/rpl_loaddata_m.test
index 42c3ad99f33..bbe11bbb887 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_m.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_m.test
@@ -50,3 +50,4 @@ DROP TABLE test.t1;
sync_slave_with_master;
# End of test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_map.test b/mysql-test/suite/rpl/t/rpl_loaddata_map.test
index 1db7c4a893b..24c8221c20f 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_map.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_map.test
@@ -71,3 +71,4 @@ connection master;
drop table t2;
sync_slave_with_master;
remove_file $MYSQLTEST_VARDIR/tmp/bug30435_5k.txt;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_s.test b/mysql-test/suite/rpl/t/rpl_loaddata_s.test
index 2dd2218eb5c..80785bb562f 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_s.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_s.test
@@ -26,3 +26,4 @@ source include/show_binlog_events.inc;
connection master;
drop table test.t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_simple.test b/mysql-test/suite/rpl/t/rpl_loaddata_simple.test
index 439c2b48ca5..a09d3feec42 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_simple.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_simple.test
@@ -12,3 +12,4 @@ SELECT * FROM t1 ORDER BY word;
connection master;
drop table t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddata_symlink.test b/mysql-test/suite/rpl/t/rpl_loaddata_symlink.test
index 63e65834e5b..d6bc0ba2ed5 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddata_symlink.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_symlink.test
@@ -19,3 +19,4 @@ connection master;
drop table t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loaddatalocal.test b/mysql-test/suite/rpl/t/rpl_loaddatalocal.test
index a93a82d6d9f..572c660faf7 100644
--- a/mysql-test/suite/rpl/t/rpl_loaddatalocal.test
+++ b/mysql-test/suite/rpl/t/rpl_loaddatalocal.test
@@ -168,3 +168,4 @@ SET SESSION sql_mode=@old_mode;
sync_slave_with_master;
connection master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_loadfile.test b/mysql-test/suite/rpl/t/rpl_loadfile.test
index adb23d2c2bc..ced0054c52c 100644
--- a/mysql-test/suite/rpl/t/rpl_loadfile.test
+++ b/mysql-test/suite/rpl/t/rpl_loadfile.test
@@ -58,8 +58,7 @@
# vii) assert that the contents of master and slave
# table are the same
-connection master;
-source include/reset_master_and_slave.inc;
+--source include/rpl_reset.inc
connection master;
let $file= $MYSQLTEST_VARDIR/tmp/bug_39701.data;
@@ -105,11 +104,12 @@ sync_slave_with_master;
# if the file was removed before the slave started,
# meaning that contents were indeed transfered
# through binlog (in row format)
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
# CLEAN UP
+--connection master
DROP TABLE t1;
DROP PROCEDURE p;
-sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_locale.test b/mysql-test/suite/rpl/t/rpl_locale.test
index 2f2d637e1b4..0d6692dd89c 100644
--- a/mysql-test/suite/rpl/t/rpl_locale.test
+++ b/mysql-test/suite/rpl/t/rpl_locale.test
@@ -22,3 +22,4 @@ sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_log_pos.test b/mysql-test/suite/rpl/t/rpl_log_pos.test
index 239ddc5c8d4..484ffa52a44 100644
--- a/mysql-test/suite/rpl/t/rpl_log_pos.test
+++ b/mysql-test/suite/rpl/t/rpl_log_pos.test
@@ -24,7 +24,7 @@ start slave;
let $slave_io_errno= 1236;
let $show_slave_io_error= 1;
source include/wait_for_slave_io_error.inc;
-source include/stop_slave.inc;
+source include/stop_slave_sql.inc;
connection master;
source include/show_master_status.inc;
@@ -44,3 +44,4 @@ drop table t1;
sync_slave_with_master;
--echo End of 5.0 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test b/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
index ecdf10ac2c2..b0d3b23b4e1 100644
--- a/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
+++ b/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
@@ -58,10 +58,10 @@ FLUSH LOGS;
# error to slave.
call mtr.add_suppression('Got fatal error 1236 from master when reading data from binary log: .*could not find next log');
connection slave;
-source include/wait_for_slave_io_to_stop.inc;
-let $last_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
-echo Last_IO_Error;
-echo $last_error;
+# 1236 = ER_MASTER_FATAL_ERROR_READING_BINLOG
+--let $slave_io_errno= 1236
+--let $show_slave_io_error= 1
+--source include/wait_for_slave_io_error.inc
connection master;
@@ -103,4 +103,4 @@ SHOW TABLES;
connection master;
DROP TABLE t1, t2, t3, t4;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_many_optimize.test b/mysql-test/suite/rpl/t/rpl_many_optimize.test
index 91fab0b27a8..d5e9f69b4bc 100644
--- a/mysql-test/suite/rpl/t/rpl_many_optimize.test
+++ b/mysql-test/suite/rpl/t/rpl_many_optimize.test
@@ -20,3 +20,4 @@ drop table t1;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_master_pos_wait.test b/mysql-test/suite/rpl/t/rpl_master_pos_wait.test
index 2f7b18ae04b..a6a49950300 100644
--- a/mysql-test/suite/rpl/t/rpl_master_pos_wait.test
+++ b/mysql-test/suite/rpl/t/rpl_master_pos_wait.test
@@ -27,3 +27,5 @@ echo "*** must be NULL ***";
select master_pos_wait('foo', 98);
# End of 4.1 tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_misc_functions.test b/mysql-test/suite/rpl/t/rpl_misc_functions.test
index b84042160cd..9b7bfd35579 100644
--- a/mysql-test/suite/rpl/t/rpl_misc_functions.test
+++ b/mysql-test/suite/rpl/t/rpl_misc_functions.test
@@ -122,3 +122,4 @@ DROP FUNCTION test_replication_sf;
--sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test b/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test
index 55f6ad61446..d2aa8363060 100644
--- a/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test
+++ b/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test
@@ -76,3 +76,4 @@ sync_slave_with_master;
connection master;
DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test b/mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test
index 6a1f81abed3..96f7ae2e85b 100644
--- a/mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test
+++ b/mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test
@@ -44,3 +44,4 @@ drop table t2,t3,t5;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_delete.test b/mysql-test/suite/rpl/t/rpl_multi_delete.test
index a251cbf8833..9df8ca4d29a 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_delete.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_delete.test
@@ -24,3 +24,4 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_delete2.test b/mysql-test/suite/rpl/t/rpl_multi_delete2.test
index 81379d4056b..7317dfa8732 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_delete2.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_delete2.test
@@ -66,3 +66,4 @@ drop database mysqltest_to;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_engine.test b/mysql-test/suite/rpl/t/rpl_multi_engine.test
index 31c4a2050d7..b1dbf99f114 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_engine.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_engine.test
@@ -102,3 +102,4 @@ DROP TABLE t1;
sync_slave_with_master;
# End of 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_update.test b/mysql-test/suite/rpl/t/rpl_multi_update.test
index a6111455d16..710337816da 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_update.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_update.test
@@ -1,7 +1,3 @@
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_multi_update.test
diff --git a/mysql-test/suite/rpl/t/rpl_multi_update2.test b/mysql-test/suite/rpl/t/rpl_multi_update2.test
index 812a486ad69..497568f2738 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_update2.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_update2.test
@@ -8,3 +8,4 @@
--source include/master-slave.inc
let $engine_type=MyISAM;
--source extra/rpl_tests/rpl_multi_update2.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_update3.test b/mysql-test/suite/rpl/t/rpl_multi_update3.test
index 5da91c26b04..f6e70f14b30 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_update3.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_update3.test
@@ -8,3 +8,4 @@
--source include/master-slave.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_multi_update3.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_multi_update4.test b/mysql-test/suite/rpl/t/rpl_multi_update4.test
index 4991a385f6f..8f069b9c18f 100644
--- a/mysql-test/suite/rpl/t/rpl_multi_update4.test
+++ b/mysql-test/suite/rpl/t/rpl_multi_update4.test
@@ -43,3 +43,4 @@ drop database d2;
sync_slave_with_master;
# End of test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_mysql_upgrade.test b/mysql-test/suite/rpl/t/rpl_mysql_upgrade.test
index bf5c6d2b921..beefd8bc0cf 100644
--- a/mysql-test/suite/rpl/t/rpl_mysql_upgrade.test
+++ b/mysql-test/suite/rpl/t/rpl_mysql_upgrade.test
@@ -54,3 +54,5 @@ if (!`SELECT '$before_position'='$after_position'`)
DROP DATABASE `mysqltest-1`;
connection slave;
DROP DATABASE `#mysql50#mysqltest-1`;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_name_const.test b/mysql-test/suite/rpl/t/rpl_name_const.test
index adb71d452ef..4cacafa0523 100644
--- a/mysql-test/suite/rpl/t/rpl_name_const.test
+++ b/mysql-test/suite/rpl/t/rpl_name_const.test
@@ -45,3 +45,4 @@ select * from t1 order by id;
connection master;
drop table t1;
drop procedure test_procedure;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test b/mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test
index 9ff2e2d081e..2c5db21b0e3 100644
--- a/mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test
+++ b/mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test
@@ -50,8 +50,9 @@ INSERT INTO t1 VALUES (RAND());
INSERT INTO t1 VALUES (LAST_INSERT_ID());
--sync_slave_with_master
---let $diff_table_1= master:test.t1
---let $diff_table_2= slave:test.t1
+--let $diff_tables= master:t1, slave:t1
--source include/diff_tables.inc
+--connection master
DROP TABLE t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_not_null_innodb.test b/mysql-test/suite/rpl/t/rpl_not_null_innodb.test
index dca0ea6589c..1e67ba4eda1 100644
--- a/mysql-test/suite/rpl/t/rpl_not_null_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_not_null_innodb.test
@@ -17,3 +17,4 @@
let $engine=Innodb;
--source extra/rpl_tests/rpl_not_null.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_not_null_myisam.test b/mysql-test/suite/rpl/t/rpl_not_null_myisam.test
index 0c036f5bfd7..dcfaf006dad 100644
--- a/mysql-test/suite/rpl/t/rpl_not_null_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_not_null_myisam.test
@@ -16,3 +16,4 @@
let $engine=MyISAM;
--source extra/rpl_tests/rpl_not_null.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_optimize.test b/mysql-test/suite/rpl/t/rpl_optimize.test
index 87eb9dce818..b31a9e422fd 100644
--- a/mysql-test/suite/rpl/t/rpl_optimize.test
+++ b/mysql-test/suite/rpl/t/rpl_optimize.test
@@ -56,3 +56,4 @@ sync_with_master;
# starts, this test wil demonstrate nothing but will pass.
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_packet.test b/mysql-test/suite/rpl/t/rpl_packet.test
index 08a533e22ca..b11bd0a227e 100644
--- a/mysql-test/suite/rpl/t/rpl_packet.test
+++ b/mysql-test/suite/rpl/t/rpl_packet.test
@@ -43,20 +43,16 @@ select @@net_buffer_length, @@max_allowed_packet;
create table `t1` (`f1` LONGTEXT) ENGINE=MyISAM;
INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1023');
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
eval select count(*) from `$db`.`t1` /* must be 1 */;
SHOW STATUS LIKE 'Slave_running';
select * from information_schema.session_status where variable_name= 'SLAVE_RUNNING';
connection master;
eval drop database $db;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
#
# Bug #23755: Replicated event larger that max_allowed_packet infinitely re-transmits
@@ -89,17 +85,21 @@ connection master;
INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2048');
-# The slave I/O thread must stop after trying to read the above event
-connection slave;
---source include/wait_for_slave_io_to_stop.inc
-let $slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1);
---echo Slave_IO_Running = $slave_io_running (expect No)
+
#
# Bug#42914: The slave I/O thread must stop after trying to read the above
# event, However there is no Last_IO_Error report.
#
-let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
-eval SELECT "$last_io_error" AS Last_IO_Error;
+
+# The slave I/O thread must stop after trying to read the above event
+connection slave;
+# 1153 = ER_NET_PACKET_TOO_LARGE
+--let $slave_io_errno= 1153
+--let $show_slave_io_error= 1
+--source include/wait_for_slave_io_error.inc
+
+# TODO: this is needed because of BUG#55790. Remove once that is fixed.
+--source include/stop_slave_sql.inc
#
# Bug#42914: On the master, if a binary log event is larger than
@@ -107,7 +107,14 @@ eval SELECT "$last_io_error" AS Last_IO_Error;
# is sent to a slave when it requests a dump from the master, thus leading the
# I/O thread to stop. However, there is no Last_IO_Error reported.
#
-source include/master-slave-reset.inc;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_reset.inc
+--connection master
+DROP TABLE t1;
+--sync_slave_with_master
+
+
connection master;
CREATE TABLE t1 (f1 int PRIMARY KEY, f2 LONGTEXT, f3 LONGTEXT) ENGINE=MyISAM;
sync_slave_with_master;
@@ -117,12 +124,10 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, REPEAT('a', @@global.max_allowed_packet), R
connection slave;
# The slave I/O thread must stop after receiving
-# ER_MASTER_FATAL_ERROR_READING_BINLOG error message from master.
---source include/wait_for_slave_io_to_stop.inc
-let $slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1);
---echo Slave_IO_Running = $slave_io_running (expect No)
-let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
-eval SELECT "$last_io_error" AS Last_IO_Error;
+# 1236=ER_MASTER_FATAL_ERROR_READING_BINLOG error message from master.
+--let $slave_io_errno= 1236
+--let $show_slave_io_error= 1
+--source include/wait_for_slave_io_error.inc
# Remove the bad binlog and clear error status on slave.
STOP SLAVE;
@@ -165,4 +170,8 @@ eval SET @@global.net_buffer_length= $old_net_buffer_length;
connection slave;
DROP TABLE t1;
+# Clear Last_IO_Error
+RESET SLAVE;
+
+--source include/rpl_end.inc
# End of tests
diff --git a/mysql-test/suite/rpl/t/rpl_plugin_load.test b/mysql-test/suite/rpl/t/rpl_plugin_load.test
index 100683922ad..5f9725a8e66 100644
--- a/mysql-test/suite/rpl/t/rpl_plugin_load.test
+++ b/mysql-test/suite/rpl/t/rpl_plugin_load.test
@@ -56,5 +56,5 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE='EXAMPLE';
sync_slave_with_master;
#
# Cleanup
---source include/master-slave-end.inc
+--source include/rpl_end.inc
--echo End of test
diff --git a/mysql-test/suite/rpl/t/rpl_ps.test b/mysql-test/suite/rpl/t/rpl_ps.test
index b00dec6b80c..e93c68d0e10 100644
--- a/mysql-test/suite/rpl/t/rpl_ps.test
+++ b/mysql-test/suite/rpl/t/rpl_ps.test
@@ -72,75 +72,36 @@ stop slave;
###############################################################################
---echo
--echo # Connection: slave
---echo
--connection slave
---echo
START SLAVE;
---echo
--echo # Connection: master
---echo
--connection master
---echo
CREATE DATABASE mysqltest1;
CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32));
---echo
PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)';
---echo
EXECUTE stmt_d_1;
---echo
use mysqltest1;
---echo
EXECUTE stmt_d_1;
---echo
---save_master_pos
-
---echo
--echo # Connection: slave
---echo
---connection slave
---sync_with_master
+--sync_slave_with_master
---echo
SELECT * FROM t1;
---echo
--echo # Connection: master
---echo
--connection master
---echo
DROP DATABASE mysqltest1;
---echo
use test;
DROP TABLE t1;
---echo
---save_master_pos
-
---echo
---echo # Connection: slave
---echo
---connection slave
---sync_with_master
-
---echo
-STOP SLAVE;
-
---echo
---echo ########################################################################
-
-###############################################################################
-reset master;
-reset slave;
-disconnect master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test b/mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test
index ec50311fc7c..86dd2eb78eb 100644
--- a/mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test
+++ b/mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test
@@ -38,3 +38,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_master.sql $MYSQLTEST_VARDIR/tmp
--remove_file $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_master.sql
--remove_file $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_slave.sql
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_read_only.test b/mysql-test/suite/rpl/t/rpl_read_only.test
index 62864b62a28..c791bc3e1ea 100644
--- a/mysql-test/suite/rpl/t/rpl_read_only.test
+++ b/mysql-test/suite/rpl/t/rpl_read_only.test
@@ -111,3 +111,4 @@ sync_slave_with_master;
set global read_only=0;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_relay_space_innodb.test b/mysql-test/suite/rpl/t/rpl_relay_space_innodb.test
index 156d53ef856..ca16a583fe5 100644
--- a/mysql-test/suite/rpl/t/rpl_relay_space_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_relay_space_innodb.test
@@ -1,22 +1,4 @@
-###################################
-# Wrapper rpl_sv_relay_space.test #
-# This test has to be wrapped as #
-# It tests ndb, innodb and MyISAM.#
-# By Wrapping we are saving some #
-# space and making the test more #
-# Maintainable by only having one #
-# test file and reusing the code #
-# In Addition, INNODB has to have #
-# Option files during this test #
-# to force innodb on the slave #
-# else the test will fail #
-###################################
-#Change Author: JBM #
-#Change Date: 2006-02-03 #
-#Change: Added Comments #
-###################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_sv_relay_space.test
-
diff --git a/mysql-test/suite/rpl/t/rpl_relay_space_myisam.test b/mysql-test/suite/rpl/t/rpl_relay_space_myisam.test
index 1d8563e7fd9..13719cbdc33 100644
--- a/mysql-test/suite/rpl/t/rpl_relay_space_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_relay_space_myisam.test
@@ -1,21 +1,3 @@
-###################################
-# Wrapper rpl_sv_relay_space.test #
-# This test has to be wrapped as #
-# It tests ndb, innodb and MyISAM.#
-# By Wrapping we are saving some #
-# space and making the test more #
-# Maintainable by only having one #
-# test file and reusing the code #
-# In Addition, INNODB has to have #
-# Option files during this test #
-# to force innodb on the slave #
-# else the test will fail #
-###################################
-#Change Author: JBM #
-#Change Date: 2006-02-03 #
-#Change: Added Comments #
-###################################
-- source include/not_ndb_default.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_sv_relay_space.test
-
diff --git a/mysql-test/suite/rpl/t/rpl_relayrotate.test b/mysql-test/suite/rpl/t/rpl_relayrotate.test
index ec3e6be4bea..c1db2f334fa 100644
--- a/mysql-test/suite/rpl/t/rpl_relayrotate.test
+++ b/mysql-test/suite/rpl/t/rpl_relayrotate.test
@@ -9,3 +9,4 @@
-- source include/master-slave.inc
let $engine_type=innodb;
-- source extra/rpl_tests/rpl_relayrotate.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_relayspace.test b/mysql-test/suite/rpl/t/rpl_relayspace.test
index 0fc564cdb46..bb34ec25bcd 100644
--- a/mysql-test/suite/rpl/t/rpl_relayspace.test
+++ b/mysql-test/suite/rpl/t/rpl_relayspace.test
@@ -35,3 +35,4 @@ start slave;
select master_pos_wait('master-bin.001',200,6)=-1;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_replicate_do.test b/mysql-test/suite/rpl/t/rpl_replicate_do.test
index 382e198aaf9..c6cbf819deb 100644
--- a/mysql-test/suite/rpl/t/rpl_replicate_do.test
+++ b/mysql-test/suite/rpl/t/rpl_replicate_do.test
@@ -88,3 +88,4 @@ connection master;
drop table t1;
drop table t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test b/mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test
index bcfef919fad..f1907456ed5 100644
--- a/mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test
+++ b/mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test
@@ -28,3 +28,4 @@ connection master;
drop database mysqltest1;
drop database mysqltest2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_report.test b/mysql-test/suite/rpl/t/rpl_report.test
index 8798905d372..a73442917fa 100644
--- a/mysql-test/suite/rpl/t/rpl_report.test
+++ b/mysql-test/suite/rpl/t/rpl_report.test
@@ -19,3 +19,4 @@ set @@global.report_host='my.new.address.net';
--echo end of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_rewrt_db.test b/mysql-test/suite/rpl/t/rpl_rewrt_db.test
index 585b08be0b3..996ad0a10c7 100644
--- a/mysql-test/suite/rpl/t/rpl_rewrt_db.test
+++ b/mysql-test/suite/rpl/t/rpl_rewrt_db.test
@@ -237,3 +237,4 @@ connection master;
sync_slave_with_master;
# end of 5.0 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt b/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt
deleted file mode 100644
index 80190bf6d29..00000000000
--- a/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt
+++ /dev/null
@@ -1 +0,0 @@
---server-id=2
diff --git a/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.sh b/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.sh
deleted file mode 100755
index 81490a54b4b..00000000000
--- a/mysql-test/suite/rpl/t/rpl_rotate_logs-slave.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-rm -f $MYSQLTEST_VARDIR/slave-data/master.info
-rm -f $MYSQLTEST_VARDIR/slave-data/*relay*
diff --git a/mysql-test/suite/rpl/t/rpl_rotate_logs.test b/mysql-test/suite/rpl/t/rpl_rotate_logs.test
index a2f7b522f1f..6ed690f91bf 100644
--- a/mysql-test/suite/rpl/t/rpl_rotate_logs.test
+++ b/mysql-test/suite/rpl/t/rpl_rotate_logs.test
@@ -18,19 +18,14 @@
-- source include/have_binlog_format_mixed_or_statement.inc
connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
---disable_warnings
-drop table if exists t1, t2, t3, t4;
---enable_warnings
connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK);
+
# Create empty file
let $MYSQLD_SLAVE_DATADIR= `select @@datadir`;
write_file $MYSQLD_SLAVE_DATADIR/master.info;
EOF
chmod 0000 $MYSQLD_SLAVE_DATADIR/master.info;
connection slave;
---disable_warnings
-drop table if exists t1, t2, t3, t4;
---enable_warnings
# START SLAVE will fail because it can't read the file (mode 000)
# (system error 13)
@@ -97,11 +92,9 @@ connection master;
set insert_id=1234;
insert into t2 values(NULL);
connection slave;
---source include/wait_for_slave_sql_to_stop.inc
-
-#restart slave skipping one event
-set global sql_slave_skip_counter=1;
-start slave;
+# 1062 = ER_DUP_ENTRY
+--let $slave_sql_errno= 1062
+--source include/wait_for_slave_sql_error_and_skip.inc
connection master;
@@ -194,3 +187,5 @@ show binlog events in '';
purge master logs before now();
--echo End of 5.0 tests
+--source include/stop_slave.inc
+CHANGE MASTER TO MASTER_HOST = '';
diff --git a/mysql-test/suite/rpl/t/rpl_row_001.test b/mysql-test/suite/rpl/t/rpl_row_001.test
index 99eaebcdcaf..2dfc5e63d42 100644
--- a/mysql-test/suite/rpl/t/rpl_row_001.test
+++ b/mysql-test/suite/rpl/t/rpl_row_001.test
@@ -7,3 +7,4 @@
-- source include/master-slave.inc
let $engine_type=MYISAM;
-- source extra/rpl_tests/rpl_row_001.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_4_bytes.test b/mysql-test/suite/rpl/t/rpl_row_4_bytes.test
index 73ef6dd2345..6130f74983e 100644
--- a/mysql-test/suite/rpl/t/rpl_row_4_bytes.test
+++ b/mysql-test/suite/rpl/t/rpl_row_4_bytes.test
@@ -31,3 +31,4 @@ select * from t2 order by a;
connection master;
DROP DATABASE mysqltest1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_NOW.test b/mysql-test/suite/rpl/t/rpl_row_NOW.test
index c28b714277e..d732c6e6733 100644
--- a/mysql-test/suite/rpl/t/rpl_row_NOW.test
+++ b/mysql-test/suite/rpl/t/rpl_row_NOW.test
@@ -72,3 +72,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/NOW_master.sql $MYSQLTEST_VARDIR/tmp/NOW_slave.
sync_slave_with_master;
# End of 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_USER.test b/mysql-test/suite/rpl/t/rpl_row_USER.test
index 7b13ebc50ee..010e0e6ea05 100644
--- a/mysql-test/suite/rpl/t/rpl_row_USER.test
+++ b/mysql-test/suite/rpl/t/rpl_row_USER.test
@@ -58,3 +58,4 @@ DROP USER ''@'localhost%';
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_UUID.test b/mysql-test/suite/rpl/t/rpl_row_UUID.test
index b0ef96463d0..ce3a4ed40a9 100644
--- a/mysql-test/suite/rpl/t/rpl_row_UUID.test
+++ b/mysql-test/suite/rpl/t/rpl_row_UUID.test
@@ -7,3 +7,4 @@
-- source include/master-slave.inc
let $engine_type=myisam;
--source extra/rpl_tests/rpl_row_UUID.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test b/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
index b1f37e0bfe4..915e747dd45 100644
--- a/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
+++ b/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
@@ -34,13 +34,15 @@ USE test_ignore;
connection master;
DROP DATABASE test_ignore;
+USE test;
+DROP TABLE t1;
sync_slave_with_master;
+USE test;
+
# Bug#19995: Extreneous table maps generated for statements that does
# not generate rows
---disable_query_log
---source include/master-slave-reset.inc
---enable_query_log
+--source include/rpl_reset.inc
connection master;
CREATE TABLE t1 (a INT);
@@ -55,9 +57,7 @@ DROP TABLE t1;
# BUG#17620: Replicate (Row Based) Fails when Query Cache enabled on
# slave
--echo ================ Test for BUG#17620 ================
---disable_query_log
---source include/master-slave-reset.inc
---enable_query_log
+--source include/rpl_reset.inc
--echo **** On Slave ****
connection slave;
@@ -89,12 +89,13 @@ sync_slave_with_master;
SELECT * FROM t1;
SET GLOBAL QUERY_CACHE_SIZE=0;
+--connection master
+DROP TABLE t1;
+
# Bug#22550: Replication of BIT columns failing
--echo ================ Test for BUG#22550 ================
---disable_query_log
---source include/master-slave-reset.inc
---enable_query_log
+--source include/rpl_reset.inc
connection master;
CREATE TABLE t1 (a BIT(1), b INT) ENGINE=MYISAM;
@@ -120,9 +121,7 @@ sync_slave_with_master;
# field does not work
--echo ================ Test for BUG#22583 ================
---disable_query_log
---source include/master-slave-reset.inc
---enable_query_log
+--source include/rpl_reset.inc
# disabling warnings temporarily for ENGINE=INNODB to work without InnoDB
--disable_warnings
@@ -227,13 +226,10 @@ sync_slave_with_master;
# row-based replication
#
-disable_query_log;
-source include/master-slave-reset.inc;
-enable_query_log;
+--source include/rpl_reset.inc
--echo **** On Master ****
connection master;
-SET SESSION BINLOG_FORMAT=ROW;
CREATE TABLE t1 (a INT PRIMARY KEY, b SET('master','slave'));
INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave');
--echo **** On Slave ****
@@ -241,7 +237,7 @@ sync_slave_with_master;
UPDATE t1 SET a = 5, b = 'slave' WHERE a = 1;
SELECT * FROM t1 ORDER BY a;
# since bug#31552/31609 idempotency is not default any longer. In
-# order the preceeding test UPDATE t1 to pass the mode is switched
+# order for the preceeding test UPDATE t1 to pass, the mode is switched
# temprorarily
set @@global.slave_exec_mode= 'IDEMPOTENT';
--echo **** On Master ****
@@ -255,9 +251,10 @@ let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
disable_query_log;
eval SELECT "$last_error" AS Last_SQL_Error;
enable_query_log;
+
SELECT * FROM t1 ORDER BY a;
-DROP TABLE t1;
--echo **** On Master ****
connection master;
DROP TABLE t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test b/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test
index c5648fa1d77..f1f5c584543 100644
--- a/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test
@@ -4,3 +4,4 @@
let $type= 'MYISAM' ;
let $extra_index= ;
-- source extra/rpl_tests/rpl_row_basic.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test b/mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test
index 3786a697e3f..d5dfcd7b75c 100644
--- a/mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test
@@ -6,3 +6,4 @@ let $type= 'INNODB' ;
let $extra_index= ;
-- source extra/rpl_tests/rpl_row_basic.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_8partition.test b/mysql-test/suite/rpl/t/rpl_row_basic_8partition.test
index 687b3bc785d..3ec79ec8cd5 100644
--- a/mysql-test/suite/rpl/t/rpl_row_basic_8partition.test
+++ b/mysql-test/suite/rpl/t/rpl_row_basic_8partition.test
@@ -208,3 +208,4 @@ SHOW CREATE TABLE t1;
DROP TABLE IF EXISTS t1;
# End of 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_blob_innodb.test b/mysql-test/suite/rpl/t/rpl_row_blob_innodb.test
index 6aa6c2a31b9..eaf86688a29 100644
--- a/mysql-test/suite/rpl/t/rpl_row_blob_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_blob_innodb.test
@@ -12,3 +12,4 @@
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_row_blob.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_blob_myisam.test b/mysql-test/suite/rpl/t/rpl_row_blob_myisam.test
index 11f5336502a..482ccb7ecc0 100644
--- a/mysql-test/suite/rpl/t/rpl_row_blob_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_row_blob_myisam.test
@@ -11,3 +11,4 @@
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_row_blob.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_colSize.test b/mysql-test/suite/rpl/t/rpl_row_colSize.test
index 078e6886ec7..04434517518 100644
--- a/mysql-test/suite/rpl/t/rpl_row_colSize.test
+++ b/mysql-test/suite/rpl/t/rpl_row_colSize.test
@@ -166,3 +166,4 @@ DROP TABLE IF EXISTS t1;
sync_slave_with_master;
# END 5.1 Test Case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_conflicts.test b/mysql-test/suite/rpl/t/rpl_row_conflicts.test
index 59757e2e802..ce5332966ef 100644
--- a/mysql-test/suite/rpl/t/rpl_row_conflicts.test
+++ b/mysql-test/suite/rpl/t/rpl_row_conflicts.test
@@ -20,6 +20,8 @@ SET @old_slave_exec_mode= @@global.slave_exec_mode;
SET @@global.slave_exec_mode = 'STRICT';
source extra/rpl_tests/rpl_conflicts.test;
+--source include/rpl_reset.inc
+
--echo ######## Run with slave_exec_mode=IDEMPOTENT ########
@@ -28,4 +30,4 @@ source extra/rpl_tests/rpl_conflicts.test;
SET @@global.slave_exec_mode= @old_slave_exec_mode;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_create_table.test b/mysql-test/suite/rpl/t/rpl_row_create_table.test
index 148032f2987..bfe480f724e 100644
--- a/mysql-test/suite/rpl/t/rpl_row_create_table.test
+++ b/mysql-test/suite/rpl/t/rpl_row_create_table.test
@@ -29,7 +29,7 @@ SET GLOBAL storage_engine=memory;
START SLAVE;
--enable_query_log
---source include/reset_master_and_slave.inc
+--source include/rpl_reset.inc
connection master;
CREATE TABLE t1 (a INT, b INT);
@@ -65,7 +65,7 @@ SELECT * FROM t5 ORDER BY a,b,c;
--query_vertical SHOW CREATE TABLE t6
SELECT * FROM t6 ORDER BY a,b,c;
---source include/reset_master_and_slave.inc
+--source include/rpl_reset.inc
connection master;
# Test for erroneous constructions
@@ -84,7 +84,7 @@ SELECT * FROM t7 ORDER BY a,b;
sync_slave_with_master;
SELECT * FROM t7 ORDER BY a,b;
---source include/reset_master_and_slave.inc
+--source include/rpl_reset.inc
connection master;
CREATE TEMPORARY TABLE tt4 (a INT, b INT);
@@ -97,7 +97,7 @@ SELECT * FROM t7 ORDER BY a,b;
sync_slave_with_master;
SELECT * FROM t7 ORDER BY a,b;
---source include/reset_master_and_slave.inc
+--source include/rpl_reset.inc
connection master;
CREATE TABLE t8 LIKE t4;
@@ -127,7 +127,7 @@ START SLAVE;
# table' from log):
--echo ================ BUG#22864 ================
---source include/master-slave-reset.inc
+--source include/rpl_reset.inc
connection master;
SET AUTOCOMMIT=0;
@@ -164,15 +164,7 @@ SET AUTOCOMMIT=1;
sync_slave_with_master;
# Some tests with temporary tables
-connection slave;
-STOP SLAVE;
-RESET SLAVE;
-
-connection master;
-RESET MASTER;
-
-connection slave;
-START SLAVE;
+--source include/rpl_reset.inc
connection master;
CREATE TABLE t1 (a INT);
@@ -198,7 +190,7 @@ connection master;
TRUNCATE TABLE t2;
sync_slave_with_master;
---source include/reset_master_and_slave.inc
+--source include/rpl_reset.inc
connection master;
BEGIN;
@@ -247,7 +239,7 @@ sync_slave_with_master;
# BUG#34707: Row based replication: slave creates table within wrong database
#
-source include/master-slave-reset.inc;
+--source include/rpl_reset.inc
connection master;
--disable_warnings
@@ -269,7 +261,7 @@ sync_slave_with_master;
# <tmp_tbl> with RBL
#
-source include/master-slave-reset.inc;
+--source include/rpl_reset.inc
connection master;
CREATE TEMPORARY TABLE t7(c1 INT);
@@ -299,6 +291,7 @@ DROP VIEW IF EXISTS bug48506_t1, bug48506_t2, bug48506_t3;
DROP TEMPORARY TABLES t7;
DROP TABLES t4, t5;
DROP TABLES IF EXISTS bug48506_t4;
+
sync_slave_with_master;
#
@@ -308,9 +301,10 @@ sync_slave_with_master;
connection master;
CREATE TABLE t1 SELECT 1;
CREATE TABLE IF NOT EXISTS t1 SELECT 1;
-let $diff_table=test.t1;
-source include/rpl_diff_tables.inc;
+--let $diff_tables= master:test.t1,slave:test.t1
+--source include/diff_tables.inc
DROP TABLE t1;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
+
--echo end of the tests
diff --git a/mysql-test/suite/rpl/t/rpl_row_delayed_ins.test b/mysql-test/suite/rpl/t/rpl_row_delayed_ins.test
index a0e74567349..db41ff09117 100644
--- a/mysql-test/suite/rpl/t/rpl_row_delayed_ins.test
+++ b/mysql-test/suite/rpl/t/rpl_row_delayed_ins.test
@@ -1,7 +1,3 @@
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_row_delayed_ins.test
diff --git a/mysql-test/suite/rpl/t/rpl_row_drop.test b/mysql-test/suite/rpl/t/rpl_row_drop.test
index d18ebc2846b..eca2ae0f643 100644
--- a/mysql-test/suite/rpl/t/rpl_row_drop.test
+++ b/mysql-test/suite/rpl/t/rpl_row_drop.test
@@ -43,3 +43,4 @@ DROP TABLE IF EXISTS t2;
sync_slave_with_master;
--enable_warnings
--enable_query_log
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_find_row.test b/mysql-test/suite/rpl/t/rpl_row_find_row.test
index 9163ab54406..7f633c5aa97 100644
--- a/mysql-test/suite/rpl/t/rpl_row_find_row.test
+++ b/mysql-test/suite/rpl/t/rpl_row_find_row.test
@@ -50,7 +50,7 @@ DROP TABLE t;
# but it gets disabled sometime.
# Replication does not break anymore.
#
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
CREATE TABLE t (a int, b int, c int, key(b));
@@ -84,8 +84,7 @@ DROP TABLE t;
# As a consquence, the wrong row would be updated.
#
--- connection master
--- source include/master-slave-reset.inc
+-- source include/rpl_reset.inc
-- connection master
CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT, UNIQUE KEY(c1,c3), KEY(c2));
@@ -94,11 +93,11 @@ INSERT INTO t1(c1,c2) VALUES(1,2);
UPDATE t1 SET c1=1000 WHERE c2=2;
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
DROP TABLE t1;
-- sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test b/mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test
index 667e1d9a1a8..06955ef5a80 100644
--- a/mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test
+++ b/mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test
@@ -14,4 +14,3 @@ let $rename_event_pos= 897;
--disable_ps_protocol
-- source extra/rpl_tests/rpl_flsh_tbls.test
--enable_ps_protocol
-
diff --git a/mysql-test/suite/rpl/t/rpl_row_func001.test b/mysql-test/suite/rpl/t/rpl_row_func001.test
index 53fb55118e6..6ff97388b31 100644
--- a/mysql-test/suite/rpl/t/rpl_row_func001.test
+++ b/mysql-test/suite/rpl/t/rpl_row_func001.test
@@ -55,3 +55,4 @@ DROP TABLE test.t1;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_func002.test b/mysql-test/suite/rpl/t/rpl_row_func002.test
index 44a704bfbc5..2f4e3fdd910 100644
--- a/mysql-test/suite/rpl/t/rpl_row_func002.test
+++ b/mysql-test/suite/rpl/t/rpl_row_func002.test
@@ -102,3 +102,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/func002_master.sql $MYSQLTEST_VARDIR/tmp/func00
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_func003.test b/mysql-test/suite/rpl/t/rpl_row_func003.test
index 30b24cf4174..a17d70e4b04 100644
--- a/mysql-test/suite/rpl/t/rpl_row_func003.test
+++ b/mysql-test/suite/rpl/t/rpl_row_func003.test
@@ -11,3 +11,4 @@
-- source include/master-slave.inc
let $engine_type=INNODB;
-- source extra/rpl_tests/rpl_row_func003.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test b/mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test
index 0c038c41ebf..b695428dd38 100644
--- a/mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test
+++ b/mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test
@@ -29,14 +29,16 @@ INSERT INTO t1 VALUES (1);
--echo [on slave]
connection slave;
# slave should have stopped because can't find table t1
---source include/wait_for_slave_sql_to_stop.inc
-# see if we have a good error message:
-let $err= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
---echo Last_SQL_Error = $err
+# 1146 = ER_NO_SUCH_TABLE
+--let $slave_sql_errno= 1146
+--source include/wait_for_slave_sql_error.inc
--echo ==== Clean up ====
-source include/stop_slave.inc;
+source include/stop_slave_io.inc;
+RESET SLAVE;
--echo [on master]
connection master;
DROP TABLE t1;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_insert_delayed.test b/mysql-test/suite/rpl/t/rpl_row_insert_delayed.test
index 9aeb57c4fa2..71ae0cb5e17 100644
--- a/mysql-test/suite/rpl/t/rpl_row_insert_delayed.test
+++ b/mysql-test/suite/rpl/t/rpl_row_insert_delayed.test
@@ -12,3 +12,4 @@ set @@global.binlog_format = row;
connection master;
set @@global.binlog_format = @old_global_binlog_format;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_log.test b/mysql-test/suite/rpl/t/rpl_row_log.test
index 197f83c85af..b156a4c8dd4 100644
--- a/mysql-test/suite/rpl/t/rpl_row_log.test
+++ b/mysql-test/suite/rpl/t/rpl_row_log.test
@@ -15,3 +15,4 @@
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_log.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_log_innodb.test b/mysql-test/suite/rpl/t/rpl_row_log_innodb.test
index 16e775287b3..631fb29c7bc 100644
--- a/mysql-test/suite/rpl/t/rpl_row_log_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_log_innodb.test
@@ -12,3 +12,4 @@
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_log.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
index 3328d582692..6c9c2c056b0 100644
--- a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
+++ b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
@@ -357,3 +357,4 @@ DROP TABLE IF EXISTS t1, t2, t3, t04, t05, t4, t5;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test b/mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test
index 67e4c4fb14d..57d67c5c71b 100644
--- a/mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test
@@ -8,3 +8,4 @@
-- let $engine= InnoDB
-- source extra/rpl_tests/rpl_record_compare.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test b/mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test
index 43fa99a51da..e40cd615ca6 100644
--- a/mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test
@@ -12,7 +12,7 @@
-- echo ## 1 X bit + 2 Null bits + 5 bits => last_null_bit_pos==0
## Added here because AFAIK it's only MyISAM and NDB that use Field_bits
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
-- eval CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bit(5)) ENGINE=$engine DEFAULT CHARSET=latin1
@@ -22,10 +22,10 @@ INSERT INTO t1(c1,c2) VALUES (NULL, b'1');
UPDATE t1 SET c1= 0;
-- sync_slave_with_master
--- let $diff_table_1= master:test.t1
--- let $diff_table_2= slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
DROP TABLE t1;
-- sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp001.test b/mysql-test/suite/rpl/t/rpl_row_sp001.test
index 1595c4a21d5..07345781225 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp001.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp001.test
@@ -148,3 +148,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/sp001_master.sql $MYSQLTEST_VARDIR/tmp/sp001_sl
--remove_file $MYSQLTEST_VARDIR/tmp/sp001_slave.sql
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test b/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test
index e272e34e715..aec421407c9 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test
@@ -1,10 +1,3 @@
-#################################
-# Wrapper for rpl_row_sp002.test#
-#################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=INNODB;
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp003.test b/mysql-test/suite/rpl/t/rpl_row_sp003.test
index 391ecd59b22..d4f1ce3ac6b 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp003.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp003.test
@@ -11,3 +11,4 @@
-- source include/master-slave.inc
let $engine_type=INNODB;
-- source extra/rpl_tests/rpl_row_sp003.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp005.test b/mysql-test/suite/rpl/t/rpl_row_sp005.test
index f5a74325b7c..2a06a6ae1dc 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp005.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp005.test
@@ -112,3 +112,4 @@ DROP TABLE IF EXISTS test.t3;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test b/mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test
index e5be4e6dc28..df3952bead1 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test
@@ -11,3 +11,4 @@
-- source include/master-slave.inc
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_row_sp006.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test b/mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test
index 41af5a5f997..fcac31df780 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test
@@ -1,10 +1,3 @@
-#################################
-# Wrapper for rpl_row_sp007.test#
-#################################
-########################################################
-# By JBM 2005-02-15 Wrapped to allow reuse of test code#
-# Added to skip if ndb is default #
-########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
let $engine_type=INNODB;
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp008.test b/mysql-test/suite/rpl/t/rpl_row_sp008.test
index b1295820c99..8c3e2966647 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp008.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp008.test
@@ -55,3 +55,4 @@ DROP TABLE IF EXISTS test.t2;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp009.test b/mysql-test/suite/rpl/t/rpl_row_sp009.test
index 92d47c6f50f..2f05a55e6f8 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp009.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp009.test
@@ -103,3 +103,4 @@ DROP TABLE test.t2;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp010.test b/mysql-test/suite/rpl/t/rpl_row_sp010.test
index 28b82217517..71ab3c1a772 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp010.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp010.test
@@ -78,3 +78,4 @@ DROP TABLE IF EXISTS test.t2;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp011.test b/mysql-test/suite/rpl/t/rpl_row_sp011.test
index 25c2fc9ad26..d2a323faad2 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp011.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp011.test
@@ -109,3 +109,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/sp011_master.sql $MYSQLTEST_VARDIR/tmp/sp011_sl
--remove_file $MYSQLTEST_VARDIR/tmp/sp011_slave.sql
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_sp012.test b/mysql-test/suite/rpl/t/rpl_row_sp012.test
index 3a8d295121c..23bc92b51cf 100644
--- a/mysql-test/suite/rpl/t/rpl_row_sp012.test
+++ b/mysql-test/suite/rpl/t/rpl_row_sp012.test
@@ -73,3 +73,4 @@ sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test b/mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test
index 9b24c78e62d..b9b7a2cfc0e 100644
--- a/mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test
+++ b/mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test
@@ -28,5 +28,6 @@ select count(*) from t1;
connection master;
drop table t1;
connection slave; # slave SQL thread is stopped
-source include/stop_slave.inc;
drop table t1;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test b/mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test
index ab4914e15fa..030ec7d6541 100644
--- a/mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test
@@ -6,3 +6,4 @@ let $engine_type = 'MyISAM';
-- source extra/rpl_tests/rpl_row_tabledefs.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test b/mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test
index 7824fbfb663..35eddfc3ed4 100644
--- a/mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test
@@ -7,3 +7,4 @@ let $engine_type = 'InnoDB';
-- source extra/rpl_tests/rpl_row_tabledefs.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test b/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
index d854aa64dc5..e8ac74f0125 100644
--- a/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
+++ b/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test
@@ -193,8 +193,7 @@ FLUSH LOGS;
-- connection master
-- echo ### assertion: the slave replicated event successfully and tables match
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
DROP TABLE `t1`;
@@ -229,7 +228,7 @@ DROP TABLE `t1`;
# in both cases: when slave is replaying events and when
# mysqlbinlog is used to read the binary log
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
# Create several tables with field_metadata_size ranging
@@ -313,8 +312,7 @@ FLUSH LOGS;
while($ntables)
{
-- echo ### assertion: the slave replicated event successfully and tables match for t$ntables
- -- let $diff_table_1=master:test.t$ntables
- -- let $diff_table_2=slave:test.t$ntables
+ -- let $diff_tables= master:t$ntables, slave:t$ntables
-- source include/diff_tables.inc
-- connection master
@@ -337,4 +335,4 @@ while($ntables)
## For debugging purposes you might want not to remove these
-- remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug50018.binlog
-- remove_file $generated_sql
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_trig001.test b/mysql-test/suite/rpl/t/rpl_row_trig001.test
index 8669034713a..39f2662b569 100644
--- a/mysql-test/suite/rpl/t/rpl_row_trig001.test
+++ b/mysql-test/suite/rpl/t/rpl_row_trig001.test
@@ -113,3 +113,4 @@ sync_slave_with_master;
diff_files $MYSQLTEST_VARDIR/tmp/trig001_master.sql $MYSQLTEST_VARDIR/tmp/trig001_slave.sql;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_trig002.test b/mysql-test/suite/rpl/t/rpl_row_trig002.test
index 7ca8a68f060..2835d07ce2a 100644
--- a/mysql-test/suite/rpl/t/rpl_row_trig002.test
+++ b/mysql-test/suite/rpl/t/rpl_row_trig002.test
@@ -78,3 +78,4 @@ DROP TABLE test.t3;
sync_slave_with_master;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_trig003.test b/mysql-test/suite/rpl/t/rpl_row_trig003.test
index 5d667e29d69..a4c32e8947a 100644
--- a/mysql-test/suite/rpl/t/rpl_row_trig003.test
+++ b/mysql-test/suite/rpl/t/rpl_row_trig003.test
@@ -152,3 +152,4 @@ DROP TABLE IF EXISTS test.t3;
diff_files $MYSQLTEST_VARDIR/tmp/trg003_master.sql $MYSQLTEST_VARDIR/tmp/trg003_slave.sql;
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_trig004.test b/mysql-test/suite/rpl/t/rpl_row_trig004.test
index a918c602d56..fa5f973c355 100644
--- a/mysql-test/suite/rpl/t/rpl_row_trig004.test
+++ b/mysql-test/suite/rpl/t/rpl_row_trig004.test
@@ -16,3 +16,4 @@
let $engine_type=INNODB;
-- source extra/rpl_tests/rpl_trig004.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_trunc_temp.test b/mysql-test/suite/rpl/t/rpl_row_trunc_temp.test
index 60e1cd73200..394bf949f72 100644
--- a/mysql-test/suite/rpl/t/rpl_row_trunc_temp.test
+++ b/mysql-test/suite/rpl/t/rpl_row_trunc_temp.test
@@ -32,4 +32,4 @@ SELECT * FROM t2;
DROP TABLE t1;
connection master;
DROP TABLE t2;
---source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test b/mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test
index 069700546ce..9e6485d6630 100644
--- a/mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test
+++ b/mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test
@@ -33,3 +33,4 @@ connection master;
DROP TABLE t1, t2;
sync_slave_with_master;
connection master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_until.test b/mysql-test/suite/rpl/t/rpl_row_until.test
index 9e3cbbd325a..afd964ca81a 100644
--- a/mysql-test/suite/rpl/t/rpl_row_until.test
+++ b/mysql-test/suite/rpl/t/rpl_row_until.test
@@ -4,9 +4,6 @@
# Note: The test is dependent on binlog positions
-# prepare version for substitutions
-let $VERSION=`select version()`;
-
# Create some events on master
connection master;
CREATE TABLE t1(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
@@ -121,3 +118,10 @@ START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=561;
START SLAVE;
--replace_result 740 MASTER_LOG_POS
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=740;
+
+--source include/stop_slave.inc
+# Clear slave IO error.
+RESET SLAVE;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_view01.test b/mysql-test/suite/rpl/t/rpl_row_view01.test
index 77e4b98f780..cc60ab9912c 100644
--- a/mysql-test/suite/rpl/t/rpl_row_view01.test
+++ b/mysql-test/suite/rpl/t/rpl_row_view01.test
@@ -95,3 +95,4 @@ sync_slave_with_master;
# End of 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_wide_table.test b/mysql-test/suite/rpl/t/rpl_row_wide_table.test
index 7b17d7c4866..b1d16133096 100644
--- a/mysql-test/suite/rpl/t/rpl_row_wide_table.test
+++ b/mysql-test/suite/rpl/t/rpl_row_wide_table.test
@@ -337,3 +337,4 @@ sync_slave_with_master;
# END of Test Case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_server_id1.test b/mysql-test/suite/rpl/t/rpl_server_id1.test
index c97f7975278..90198a4ac5e 100644
--- a/mysql-test/suite/rpl/t/rpl_server_id1.test
+++ b/mysql-test/suite/rpl/t/rpl_server_id1.test
@@ -4,21 +4,19 @@
# ignored, which has caught our customers), unless
# --replicate-same-server-id.
-source include/master-slave.inc;
-connection slave;
-reset master;
+--let $rpl_topology= 2->2
+--let $rpl_skip_start_slave= 1
+--source include/rpl_init.inc
-# replicate ourselves
-source include/stop_slave.inc;
---replace_result $SLAVE_MYPORT SLAVE_PORT
-eval change master to master_port=$SLAVE_MYPORT;
-start slave;
+--connection server_2
+START SLAVE;
+# 1593 = ER_SLAVE_FATAL_ERROR
+--let $slave_io_errno= 1593
+--let $show_slave_io_error= 1
+--source include/wait_for_slave_io_error.inc
-let $slave_param= Last_IO_Errno;
-let $slave_param_value= 1593;
-source include/wait_for_slave_param.inc;
---echo *** must be having the replicate-same-server-id IO thread error ***
-let $last_io_errno= query_get_value("show slave status", Last_IO_Errno, 1);
-let $last_io_error= query_get_value("show slave status", Last_IO_Error, 1);
-echo Slave_IO_Errno= $last_io_errno;
-echo Slave_IO_Error= $last_io_error;
+--source include/stop_slave_sql.inc
+RESET SLAVE;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_server_id2.test b/mysql-test/suite/rpl/t/rpl_server_id2.test
index 488a3aa6ab6..32d5e1ec8f2 100644
--- a/mysql-test/suite/rpl/t/rpl_server_id2.test
+++ b/mysql-test/suite/rpl/t/rpl_server_id2.test
@@ -61,3 +61,4 @@ drop table t2;
sync_slave_with_master;
# End of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_session_var.test b/mysql-test/suite/rpl/t/rpl_session_var.test
index 50efc8930a1..4ea07d4f9d6 100644
--- a/mysql-test/suite/rpl/t/rpl_session_var.test
+++ b/mysql-test/suite/rpl/t/rpl_session_var.test
@@ -63,3 +63,4 @@ drop table t1;
save_master_pos;
connection slave;
sync_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_set_charset.test b/mysql-test/suite/rpl/t/rpl_set_charset.test
index c70eb2681f5..53ec08f752f 100644
--- a/mysql-test/suite/rpl/t/rpl_set_charset.test
+++ b/mysql-test/suite/rpl/t/rpl_set_charset.test
@@ -33,3 +33,4 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_set_null_innodb.test b/mysql-test/suite/rpl/t/rpl_set_null_innodb.test
index dba79b78fa1..2d0c34e1d0a 100644
--- a/mysql-test/suite/rpl/t/rpl_set_null_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_set_null_innodb.test
@@ -4,3 +4,4 @@
-- let $engine= InnoDB
-- source extra/rpl_tests/rpl_set_null.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_set_null_myisam.test b/mysql-test/suite/rpl/t/rpl_set_null_myisam.test
index 7b433071553..13cd7c3e4a8 100644
--- a/mysql-test/suite/rpl/t/rpl_set_null_myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_set_null_myisam.test
@@ -3,3 +3,4 @@
-- let $engine= MyISAM
-- source extra/rpl_tests/rpl_set_null.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_show_slave_running.test b/mysql-test/suite/rpl/t/rpl_show_slave_running.test
index 8a3e56975ad..e589e126186 100644
--- a/mysql-test/suite/rpl/t/rpl_show_slave_running.test
+++ b/mysql-test/suite/rpl/t/rpl_show_slave_running.test
@@ -80,3 +80,4 @@ connection slave;
eval set global debug= '$debug_saved';
SET DEBUG_SYNC= 'RESET';
--echo End of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_skip_error.test b/mysql-test/suite/rpl/t/rpl_skip_error.test
index 8d176ac0c3b..2853c95b212 100644
--- a/mysql-test/suite/rpl/t/rpl_skip_error.test
+++ b/mysql-test/suite/rpl/t/rpl_skip_error.test
@@ -167,3 +167,4 @@ DROP TABLE t1;
DROP TABLE t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test b/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
index 1a0ff8d52f0..70ebba0047b 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
@@ -62,7 +62,9 @@ SELECT * FROM t2 ORDER BY a;
SELECT * FROM t3 ORDER BY a;
--connection slave
---source include/wait_for_slave_sql_to_stop.inc
+# 1146 = ER_NO_SUCH_TABLE
+--let $slave_sql_errno= 1146
+--source include/wait_for_slave_sql_error.inc
SHOW TABLES LIKE 't%';
if (`SELECT @@BINLOG_FORMAT = 'ROW'`) {
--replace_regex /AA/AA_for_row_or_XX_for_stmt_mixed/
@@ -77,7 +79,7 @@ if (!`SELECT @@BINLOG_FORMAT = 'ROW'`) {
SELECT * FROM t2 ORDER BY a;
}
---source include/stop_slave.inc
+--source include/stop_slave_io.inc
RENAME TABLE t3_bak TO t3;
--source include/start_slave.inc
@@ -107,7 +109,9 @@ INSERT INTO t1 VALUES(2, 'B');
UPDATE t1 SET b = 'X' WHERE a = 2;
--connection slave
---source include/wait_for_slave_sql_to_stop.inc
+# 1146 = ER_NO_SUCH_TABLE
+--let $slave_sql_errno= 1146
+--source include/wait_for_slave_sql_error.inc
--connection master
SELECT * FROM t1 ORDER BY a;
@@ -119,7 +123,7 @@ SHOW TABLES LIKE 't%';
SELECT * FROM t1 ORDER BY a;
SELECT * FROM t2 ORDER BY a;
---source include/stop_slave.inc
+--source include/stop_slave_io.inc
RENAME TABLE t3_bak TO t3;
--source include/start_slave.inc
@@ -151,7 +155,9 @@ INSERT INTO t3 VALUES (3, 'C'), (4, 'D');
COMMIT;
--connection slave
---source include/wait_for_slave_sql_to_stop.inc
+# 1146 = ER_NO_SUCH_TABLE
+--let $slave_sql_errno= 1146
+--source include/wait_for_slave_sql_error.inc
--connection master
SELECT * FROM t1 ORDER BY a;
@@ -163,7 +169,7 @@ SHOW TABLES LIKE 't%';
SELECT * FROM t1 ORDER BY a;
SELECT * FROM t2 ORDER BY a;
-source include/stop_slave.inc;
+source include/stop_slave_io.inc;
RENAME TABLE t3_bak TO t3;
source include/start_slave.inc;
@@ -174,3 +180,4 @@ DROP TABLE t1,t2,t3;
--sync_slave_with_master
# End of 5.1 test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_load_in.test b/mysql-test/suite/rpl/t/rpl_slave_load_in.test
index 54ebdffce69..80a27479ae2 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_load_in.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_load_in.test
@@ -31,12 +31,10 @@ commit;
##########################################################################
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
-let $diff_table_1=master:test.t2;
-let $diff_table_2=slave:test.t2;
+let $diff_tables= master:t2, slave:t2;
source include/diff_tables.inc;
##########################################################################
@@ -48,3 +46,4 @@ drop table t1;
drop table t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test b/mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test
index b7342fd1c40..d80a2ed9e25 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test
@@ -42,8 +42,12 @@ connection master;
drop table t1;
-connection slave;
+--source include/sync_slave_io_with_master.inc
+--source include/stop_slave_io.inc
+RESET SLAVE;
drop table t1;
call mtr.add_suppression("Slave: Error writing file 'UNKNOWN' .Errcode: 9. Error_code: 3");
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test b/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test
index 68c41abf537..0481581998c 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test
@@ -5,20 +5,17 @@
--source include/have_log_bin.inc
--source include/not_embedded.inc
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
-connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
-connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT,);
+--let $rpl_skip_start_slave= 1
+--source include/master-slave.inc
-connection slave;
-
---replace_result $MASTER_MYPORT MASTER_MYPORT
-eval CHANGE MASTER TO MASTER_USER='root',
- MASTER_CONNECT_RETRY=1,
- MASTER_HOST='127.0.0.1',
- MASTER_PORT=$MASTER_MYPORT;
+--connection slave
START SLAVE;
+# Why 12???
+--let $slave_sql_errno= 12
+source include/wait_for_slave_sql_error.inc;
+
+--source include/stop_slave_io.inc
+RESET SLAVE;
-source include/wait_for_slave_sql_to_stop.inc;
-let $errno=query_get_value("show slave status", Last_SQL_Errno, 1);
-echo $errno;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_skip.test b/mysql-test/suite/rpl/t/rpl_slave_skip.test
index 4c5930d74fe..2dddabf4b4c 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_skip.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_skip.test
@@ -299,3 +299,4 @@ connection master;
DROP TABLE t10;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slave_status.test b/mysql-test/suite/rpl/t/rpl_slave_status.test
index 4edf1802a5d..83a18474976 100644
--- a/mysql-test/suite/rpl/t/rpl_slave_status.test
+++ b/mysql-test/suite/rpl/t/rpl_slave_status.test
@@ -55,15 +55,20 @@ source include/stop_slave.inc;
START SLAVE;
source include/wait_for_slave_sql_to_start.inc;
---echo ==== Verify that Slave_IO_Running = No ====
-let $result= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1);
---echo Slave_IO_Running = $result (should be No)
+--echo ==== Verify that Slave IO thread stopped with error ====
+# 1045 = ER_ACCESS_DENIED_ERROR
+--let $slave_io_errno= 1045
+--source include/wait_for_slave_io_error.inc
--echo ==== Cleanup (Note that slave IO thread is not running) ====
-DROP TABLE t1;
-# cleanup: slave io thread has been stopped "irrecoverably"
-# so we clean up mess manually
+
+# cleanup: slave io thread has is stopped so we reset replication
+--let $rpl_only_running_threads= 1
+--source include/rpl_reset.inc
--echo [on master]
connection master;
DROP TABLE t1;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_slow_query_log.test b/mysql-test/suite/rpl/t/rpl_slow_query_log.test
index ced4859ebe7..76664705f99 100644
--- a/mysql-test/suite/rpl/t/rpl_slow_query_log.test
+++ b/mysql-test/suite/rpl/t/rpl_slow_query_log.test
@@ -195,7 +195,7 @@ disconnect extra2;
# BUG#50620: Adding an index to a table prevents slave from logging into slow log
#
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
SET @old_log_output= @@log_output;
@@ -306,3 +306,4 @@ DROP TABLE t1;
-- sync_slave_with_master
SET @@global.log_output= @old_log_output;
SET @@global.long_query_time= @old_long_query_time;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_sp.test b/mysql-test/suite/rpl/t/rpl_sp.test
index 243136a0d38..10e23eb5928 100644
--- a/mysql-test/suite/rpl/t/rpl_sp.test
+++ b/mysql-test/suite/rpl/t/rpl_sp.test
@@ -643,3 +643,4 @@ drop function mysqltestbug36570_f1;
# Cleanup
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_sp004.test b/mysql-test/suite/rpl/t/rpl_sp004.test
index 967e7007c15..b916c78a6fb 100644
--- a/mysql-test/suite/rpl/t/rpl_sp004.test
+++ b/mysql-test/suite/rpl/t/rpl_sp004.test
@@ -95,3 +95,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/sp004_master.sql $MYSQLTEST_VARDIR/tmp/sp004_sl
# End of 5.0 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_sp_effects.test b/mysql-test/suite/rpl/t/rpl_sp_effects.test
index 63ac3a8ad9c..df13ff253b1 100644
--- a/mysql-test/suite/rpl/t/rpl_sp_effects.test
+++ b/mysql-test/suite/rpl/t/rpl_sp_effects.test
@@ -261,3 +261,4 @@ SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creato
sync_slave_with_master;
--echo end of the tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_sporadic_master.test b/mysql-test/suite/rpl/t/rpl_sporadic_master.test
index 824f7abc9f5..2a60a5c5e29 100644
--- a/mysql-test/suite/rpl/t/rpl_sporadic_master.test
+++ b/mysql-test/suite/rpl/t/rpl_sporadic_master.test
@@ -27,3 +27,4 @@ drop table t1,t2;
sync_slave_with_master;
# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_ssl.test b/mysql-test/suite/rpl/t/rpl_ssl.test
index 803b08eeec5..0ba88a62242 100644
--- a/mysql-test/suite/rpl/t/rpl_ssl.test
+++ b/mysql-test/suite/rpl/t/rpl_ssl.test
@@ -97,4 +97,14 @@ drop user replssl@localhost;
drop table t1;
sync_slave_with_master;
+--source include/stop_slave.inc
+CHANGE MASTER TO
+ master_user = 'root',
+ master_ssl = 0,
+ master_ssl_ca = '',
+ master_ssl_cert = '',
+ master_ssl_key = '';
+
--echo End of 5.0 tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_ssl1.test b/mysql-test/suite/rpl/t/rpl_ssl1.test
index eca6a8cf46e..0a64415dbd8 100644
--- a/mysql-test/suite/rpl/t/rpl_ssl1.test
+++ b/mysql-test/suite/rpl/t/rpl_ssl1.test
@@ -9,11 +9,8 @@ source include/master-slave.inc;
connection master;
grant replication slave on *.* to replssl@localhost require ssl;
create table t1 (t int);
-save_master_pos;
-#syncing with master
-connection slave;
-sync_with_master;
+sync_slave_with_master;
#trying to use this user without ssl
stop slave;
@@ -37,9 +34,7 @@ start slave;
#avoiding unneeded sleeps
connection master;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
#checking that replication is ok
select * from t1;
@@ -56,9 +51,8 @@ start slave;
connection master;
drop user replssl@localhost;
drop table t1;
-save_master_pos;
-connection slave;
-sync_with_master;
+
+sync_slave_with_master;
source include/show_slave_status.inc;
source include/check_slave_is_running.inc;
# End of 4.1 tests
@@ -90,6 +84,19 @@ select * from t1;
source include/show_slave_status.inc;
--source include/check_slave_is_running.inc
+# ==== Clean up ====
+
connection master;
drop table t1;
sync_slave_with_master;
+--source include/stop_slave.inc
+CHANGE MASTER TO
+ master_host="127.0.0.1",
+ master_ssl_ca ='',
+ master_ssl_cert='',
+ master_ssl_key='',
+ master_ssl_verify_server_cert=0,
+ master_ssl=0;
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_start_stop_slave.test b/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
index d9b87427321..5011dd7735a 100644
--- a/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
+++ b/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
@@ -121,3 +121,4 @@ drop table t1i, t2m;
sync_slave_with_master;
# End of tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_000001.test b/mysql-test/suite/rpl/t/rpl_stm_000001.test
index aee067b2d4a..9841ecb040a 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_000001.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_000001.test
@@ -1,2 +1,128 @@
-let $engine_type=myisam;
--- source extra/rpl_tests/rpl_stm_000001.test
+# Requires binlog_format=statement format since query involving
+# get_lock() is logged in row format if binlog_format=mixed or row.
+-- source include/have_binlog_format_statement.inc
+-- source include/master-slave.inc
+
+--let $engine_type= myisam
+CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
+
+# Load some data into t1
+create table t1 (word char(20) not null);
+load data infile '../../std_data/words.dat' into table t1;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
+select * from t1 limit 10;
+
+#
+# Test slave with wrong password
+#
+sync_slave_with_master;
+stop slave;
+connection master;
+set password for root@"localhost" = password('foo');
+connection slave;
+start slave;
+connection master;
+#
+# Give slave time to do at last one failed connect retry
+# This one must be short so that the slave will not stop retrying
+real_sleep 2;
+set password for root@"localhost" = password('');
+# Give slave time to connect (will retry every second)
+sleep 2;
+
+create table t3(n int);
+insert into t3 values(1),(2);
+sync_slave_with_master;
+select * from t3;
+select sum(length(word)) from t1;
+connection master;
+drop table t1,t3;
+sync_slave_with_master;
+
+# Test if the slave SQL thread can be more than 16K behind the slave
+# I/O thread (> IO_SIZE)
+
+connection master;
+# we'll use table-level locking to delay slave SQL thread
+eval create table t1 (n int) engine=$engine_type;
+sync_slave_with_master;
+connection master;
+reset master;
+connection slave;
+stop slave;
+reset slave;
+
+connection master;
+let $1=5000;
+# Generate 16K of relay log
+disable_query_log;
+while ($1)
+{
+ eval insert into t1 values($1);
+ dec $1;
+}
+enable_query_log;
+
+# Try to cause a large relay log lag on the slave by locking t1
+connection slave;
+lock tables t1 read;
+start slave;
+#hope this is long enough for I/O thread to fetch over 16K relay log data
+sleep 3;
+unlock tables;
+
+#test handling of aborted connection in the middle of update
+
+connection master;
+create table t2(id int);
+insert into t2 values(connection_id());
+
+connection master1;
+# Avoid generating result
+create temporary table t3(n int);
+--disable_warnings
+insert into t3 select get_lock('crash_lock%20C', 1) from t2;
+--enable_warnings
+
+connection master;
+send update t1 set n = n + get_lock('crash_lock%20C', 2);
+connection master1;
+sleep 3;
+select (@id := id) - id from t2;
+kill @id;
+# We don't drop t3 as this is a temporary table
+drop table t2;
+connection master;
+# The get_lock function causes warning for unsafe statement.
+--disable_warnings
+--error 1317,2013
+reap;
+--enable_warnings
+connection slave;
+# The SQL slave thread should now have stopped because the query was killed on
+# the master (so it has a non-zero error code in the binlog).
+# 1053 = ER_SERVER_SHUTDOWN
+--let $slave_sql_errno= 1053
+--source include/wait_for_slave_sql_error_and_skip.inc
+
+select count(*) from t1;
+connection master1;
+drop table t1;
+create table t1 (n int);
+insert into t1 values(3456);
+insert into mysql.user (Host, User, Password)
+ VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
+select select_priv,user from mysql.user where user = _binary'blafasel2';
+update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
+select select_priv,user from mysql.user where user = _binary'blafasel2';
+sync_slave_with_master;
+select n from t1;
+select select_priv,user from mysql.user where user = _binary'blafasel2';
+connection master1;
+drop table t1;
+delete from mysql.user where user="blafasel2";
+sync_slave_with_master;
+
+# End of 4.1 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test b/mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test
index a8139bbbcd2..6381150217f 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test
@@ -108,3 +108,4 @@ DROP FUNCTION IF EXISTS f1;
DROP TRIGGER IF EXISTS tr1;
enable_warnings;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test b/mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
index f0c36c7b40c..2a899b06a2d 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
@@ -228,3 +228,4 @@ sync_slave_with_master;
--echo ###################################################################################
SET @commands= 'clean';
--source extra/rpl_tests/rpl_mixing_engines.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_conflicts.test b/mysql-test/suite/rpl/t/rpl_stm_conflicts.test
index 07b7a0bf8f7..cd9e71cbff9 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_conflicts.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_conflicts.test
@@ -1,11 +1,6 @@
-# See the top of mysql-test/extra/rpl_tests/rpl_conflicts.test for an
-# explanation of what this test does.
-#
-# This test file is for statement-logging mode.
-
source include/have_binlog_format_mixed_or_statement.inc;
source include/master-slave.inc;
source extra/rpl_tests/rpl_conflicts.test;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test b/mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test
index 69866cad267..b72a2e1532d 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test
@@ -11,4 +11,4 @@ source extra/rpl_tests/rpl_stm_create_if_not_exists.test;
let $is_temporary=1;
source extra/rpl_tests/rpl_stm_create_if_not_exists.test;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test b/mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test
index a8a33d05e8b..71272c1d01d 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test
@@ -3,6 +3,3 @@
let $rename_event_pos= 656;
-- source extra/rpl_tests/rpl_flsh_tbls.test
-
-# End of 4.1 tests
-# Adding comment for force manual merge 5.0 -> wl1012. Delete me if needed.
diff --git a/mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test b/mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test
index d55e3a4da2c..e9ee040c890 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test
@@ -18,3 +18,4 @@ set @@global.binlog_format = mixed;
connection master;
set @@global.binlog_format = @old_global_binlog_format;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_loadfile.test b/mysql-test/suite/rpl/t/rpl_stm_loadfile.test
index 3db8385a2f2..acf8c9a1bde 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_loadfile.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_loadfile.test
@@ -18,3 +18,4 @@
-- source extra/rpl_tests/rpl_loadfile.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_log.test b/mysql-test/suite/rpl/t/rpl_stm_log.test
index 7bc17fbaada..7e7e1d4033f 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_log.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_log.test
@@ -7,3 +7,4 @@ let $engine_type=MyISAM;
# End of 4.1 tests
# Adding comment for force manual merge 5.0 -> wl1012: Delete me
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test b/mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test
index 950aa8b322a..1a7139c889a 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test
@@ -6,6 +6,3 @@
# Requires statement logging
-- source include/have_binlog_format_mixed_or_statement.inc
-- source extra/rpl_tests/rpl_max_relay_size.test
-
-# End of 4.1 tests
-#
diff --git a/mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test b/mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test
index 4086fd03ca1..575180e9177 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test
@@ -8,7 +8,7 @@
# BUG#49522: Replication problem with mixed MyISAM/InnoDB
#
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
CREATE TABLE `t1` (
@@ -32,12 +32,11 @@ SET AUTOCOMMIT=1;
-- sync_slave_with_master
--- let $diff_table_1=master:test.t1
--- let $diff_table_2=slave:test.t1
+-- let $diff_tables= master:t1, slave:t1
-- source include/diff_tables.inc
-- connection master
DROP TABLE `t1`;
-- sync_slave_with_master
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_multi_query.test b/mysql-test/suite/rpl/t/rpl_stm_multi_query.test
index c39d1fad015..e234f4b9622 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_multi_query.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_multi_query.test
@@ -3,10 +3,5 @@
# CLIENT_MULTI_STATEMENTS) will be binlogged ONE-query-per-event (not
# one binlog event containing all queries)
-# Requires statement logging
-- source include/have_binlog_format_mixed_or_statement.inc
-- source extra/rpl_tests/rpl_multi_query.test
-
-
-# End of 4.1 tests
-#
diff --git a/mysql-test/suite/rpl/t/rpl_stm_no_op.test b/mysql-test/suite/rpl/t/rpl_stm_no_op.test
index 66dc89bd712..1605b177ac4 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_no_op.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_no_op.test
@@ -91,3 +91,4 @@ select * from t2;
connection master;
drop table t1, t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_sql_mode.test b/mysql-test/suite/rpl/t/rpl_stm_sql_mode.test
index d5aac4a43e2..0eb41d1c6bd 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_sql_mode.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_sql_mode.test
@@ -22,3 +22,4 @@ DROP TABLE t1;
-- echo # duplicate key error (because it has received event
-- echo # with expected error code).
-- sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stm_until.test b/mysql-test/suite/rpl/t/rpl_stm_until.test
index ee9501681a1..7f041ae5123 100644
--- a/mysql-test/suite/rpl/t/rpl_stm_until.test
+++ b/mysql-test/suite/rpl/t/rpl_stm_until.test
@@ -69,7 +69,7 @@ select * from t1;
--let $slave_param_value= $master_log_pos_1
--source include/check_slave_param.inc
-let $relay_log_file= slave-relay-bin.000004;
+let $relay_log_file= slave-relay-bin.000003;
let $master_log_pos= $master_log_pos_2;
source include/get_relay_log_pos.inc;
# try replicate all up to and not including the second insert to t2;
@@ -192,10 +192,9 @@ sync_with_master;
# to substitute the genuine one with a prepared on 4.1 server.
#
---source include/master-slave-reset.inc
+--source include/rpl_reset.inc
connection master;
-drop table if exists t1; # there is create table t1 in bug47142_master-bin.000001
flush logs;
let $MYSQLD_DATADIR= `select @@datadir`;
--remove_file $MYSQLD_DATADIR/master-bin.000001
@@ -213,9 +212,7 @@ show tables /* t1 must exist */;
drop table t1; # drop on slave only, master does not have t1.
stop slave;
-reset slave;
-
-connection master;
-reset master;
# End of tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_stop_slave.test b/mysql-test/suite/rpl/t/rpl_stop_slave.test
index e44cf3e94b7..e7c67448dbe 100644
--- a/mysql-test/suite/rpl/t/rpl_stop_slave.test
+++ b/mysql-test/suite/rpl/t/rpl_stop_slave.test
@@ -57,4 +57,4 @@ SET GLOBAL debug= '$debug_save';
connection master;
DROP TABLE t1, t2;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test b/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
index e6c1d5256a0..02bb386fe3b 100644
--- a/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
+++ b/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
@@ -611,3 +611,4 @@ sync_slave_with_master;
connection master;
# Restore binlog format setting
set global binlog_format =@my_binlog_format;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_temp_table.test b/mysql-test/suite/rpl/t/rpl_temp_table.test
index 9b73961aeea..4118e9783fa 100644
--- a/mysql-test/suite/rpl/t/rpl_temp_table.test
+++ b/mysql-test/suite/rpl/t/rpl_temp_table.test
@@ -54,6 +54,7 @@ show status like 'Slave_open_temp_tables';
connect (master2,localhost,root,,);
connection master2;
drop table if exists t1,t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
+
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test b/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test
index fa3f7929c1c..2369a3c00e2 100644
--- a/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test
+++ b/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test
@@ -32,6 +32,7 @@ SHOW STATUS LIKE "Slave_open_temp_tables";
--connection master
disconnect master;
+--echo [on master1]
--connection master1
# waiting DROP TEMPORARY TABLE event to be written into binlog
@@ -47,7 +48,10 @@ SHOW STATUS LIKE "Slave_open_temp_tables";
--echo ==== Clean up ====
--echo [on master]
---connection master1
+--let $rpl_connection_name= master
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
+--connection master
DROP TABLE t1;
--echo [on slave]
@@ -89,8 +93,7 @@ sync_slave_with_master;
# 10. in the end the slave should not have open temp tables.
#
-connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
--- source include/master-slave-reset.inc
+--source include/rpl_reset.inc
-- connection master
# action: setup environment
@@ -191,11 +194,13 @@ COMMIT;
source include/show_binlog_events.inc;
+--sync_slave_with_master
+
--echo # Compare the base table.
-let diff_table= test.t1;
-source include/rpl_diff_tables.inc;
+--let $diff_tables= master:t1, slave:t1
+--source include/diff_tables.inc
--echo
connection master;
DROP TABLE t1;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_temporary.test b/mysql-test/suite/rpl/t/rpl_temporary.test
index 29b214e5169..a195c6de447 100644
--- a/mysql-test/suite/rpl/t/rpl_temporary.test
+++ b/mysql-test/suite/rpl/t/rpl_temporary.test
@@ -291,10 +291,15 @@ select * from t1;
connection master;
drop table t1;
--remove_file $MYSQLTEST_VARDIR/tmp/bug14157.sql
+--sync_slave_with_master
-# Delete the anonymous users
+# Delete the anonymous users.
+--source include/stop_slave.inc
source include/delete_anonymous_users.inc;
-
+--connection master
+source include/delete_anonymous_users.inc;
+--let $rpl_only_running_threads= 1
+--source include/rpl_reset.inc
#
@@ -326,9 +331,7 @@ connection slave;
DROP USER user43748@127.0.0.1;
---echo -- done. back to master.
-connection master;
-
-
--echo End of 5.1 tests
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_temporary_errors.test b/mysql-test/suite/rpl/t/rpl_temporary_errors.test
index 611f54e821f..7ebaa10e9db 100644
--- a/mysql-test/suite/rpl/t/rpl_temporary_errors.test
+++ b/mysql-test/suite/rpl/t/rpl_temporary_errors.test
@@ -27,13 +27,13 @@ set @@global.slave_exec_mode= default;
SHOW STATUS LIKE 'Slave_retried_transactions';
SELECT * FROM t1;
source include/check_slave_is_running.inc;
-DROP TABLE t1;
--echo **** On Master ****
connection master;
-SET SQL_LOG_BIN= 0;
DROP TABLE t1;
-SET SQL_LOG_BIN= 1;
+--sync_slave_with_master
+--connection master
+
# BUG#Bug #53259 Unsafe statement binlogged in statement format w/MyIsam temp tables
#
@@ -71,3 +71,5 @@ ROLLBACK;
source include/show_binlog_events.inc;
DROP TABLE t_myisam, t_innodb;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_test_framework.cnf b/mysql-test/suite/rpl/t/rpl_test_framework.cnf
new file mode 100644
index 00000000000..8934d1c9ae1
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_test_framework.cnf
@@ -0,0 +1,46 @@
+!include ../my.cnf
+[mysqld.1]
+log-slave-updates
+[mysqld.2]
+log-slave-updates
+[mysqld.3]
+log-slave-updates
+[mysqld.4]
+log-slave-updates
+[mysqld.5]
+log-slave-updates
+[mysqld.6]
+log-slave-updates
+[mysqld.7]
+log-slave-updates
+[mysqld.8]
+log-slave-updates
+[mysqld.9]
+log-slave-updates
+#[mysqld.10]
+#log-slave-updates
+#[mysqld.11]
+#log-slave-updates
+#[mysqld.12]
+#log-slave-updates
+#[mysqld.13]
+#log-slave-updates
+#[mysqld.14]
+#log-slave-updates
+#[mysqld.15]
+#log-slave-updates
+
+[ENV]
+SERVER_MYPORT_3= @mysqld.3.port
+SERVER_MYPORT_4= @mysqld.4.port
+SERVER_MYPORT_5= @mysqld.5.port
+SERVER_MYPORT_6= @mysqld.6.port
+SERVER_MYPORT_7= @mysqld.7.port
+SERVER_MYPORT_8= @mysqld.8.port
+SERVER_MYPORT_9= @mysqld.9.port
+#SERVER_MYPORT_10= @mysqld.10.port
+#SERVER_MYPORT_11= @mysqld.11.port
+#SERVER_MYPORT_12= @mysqld.12.port
+#SERVER_MYPORT_13= @mysqld.13.port
+#SERVER_MYPORT_14= @mysqld.14.port
+#SERVER_MYPORT_15= @mysqld.15.port
diff --git a/mysql-test/suite/rpl/t/rpl_test_framework.test b/mysql-test/suite/rpl/t/rpl_test_framework.test
new file mode 100644
index 00000000000..e0f961caff1
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_test_framework.test
@@ -0,0 +1,143 @@
+# ==== Purpose ====
+#
+# Test that the sync chain generated by
+# include/rpl_change_topology.inc (sourced from include/rpl_init.inc)
+# is correct.
+#
+# We test a number of different topologies. Each topology is tested
+# in extra/rpl_tests/rpl_test_framework.inc. See
+# extra/rpl_tests/rpl_test_framework.inc for details on how the sync
+# chain is tested.
+#
+# ==== Related bugs ====
+#
+# BUG#49978: Replication tests don't clean up replication state at the end
+
+
+# We only need to execute this test once. Also, we rely on 'DELETE
+# FROM t1' to remove rows in slave tables that don't exist in master
+# tables (see include/rpl_test_framework.inc for details).
+--source include/have_binlog_format_statement.inc
+
+
+--echo ==== Create t1 on all servers. ====
+if ($mtr_supports_more_than_10_servers)
+{
+ --let $rpl_server_count= 15
+ --let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15
+}
+if (!$mtr_supports_more_than_10_servers)
+{
+ --let $rpl_server_count= 9
+ --let $rpl_topology= 1->2->3->4->5->6->7->8->9
+}
+--source include/rpl_init.inc
+CREATE TABLE t1 (a INT);
+--source include/rpl_end.inc
+
+# Initialize $next_number before first call to
+# extra/rpl_tests/rpl_test_framework.text
+--let $next_number= 0
+
+
+--echo ==== Test 3-server topologies ====
+
+--let $rpl_server_count= 3
+
+--let $rpl_topology= 1 -> 2
+--let $masters= 1,3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 2 -> 3
+--let $masters= 1,2
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= none
+--let $masters= 1,2,3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->2, 2->1
+--let $masters= 1,3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->2->1
+--let $masters= 2,3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 2->1->2
+--let $masters= 1,3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->2->3
+--let $masters= 1
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 2->3->2->1
+--let $masters= 3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->2,2->3,3->1
+--let $masters= 3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->3->2->1
+--let $masters= 3
+--source extra/rpl_tests/rpl_test_framework.inc
+
+
+--echo ==== Test 6-server topologies ====
+
+--let $rpl_server_count= 6
+
+--let $rpl_topology= 1->2->3->4->1->5->6
+--let $masters= 1
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 3->4->5->6->3->1->2
+--let $masters= 4
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 6->5->4->3->2->1
+--let $masters= 6
+--source extra/rpl_tests/rpl_test_framework.inc
+
+--let $rpl_topology= 1->2->3->1,4->5->6
+--let $masters= 3,4
+--source extra/rpl_tests/rpl_test_framework.inc
+
+
+--echo ==== Test 9-server topology ====
+
+--let $rpl_server_count= 9
+
+--let $rpl_topology= 1->2, 2->3, 3->4, 4->5, 5->1, 1->6, 6->7, 6->8, 8->9
+--let $masters= 2
+--source extra/rpl_tests/rpl_test_framework.inc
+
+if ($mtr_supports_more_than_10_servers) {
+--echo ==== Test 15-server topologies ====
+
+--let $rpl_server_count= 15
+
+--let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15->1
+--let $masters= 2
+--source extra/rpl_tests/rpl_test_framework.inc
+
+# This is a binary tree
+--let $rpl_topology= 1->2->4->8,1->3->6->12,2->5->10,3->7->14,4->9,5->11,6->13,7->15
+--let $masters= 1
+--source extra/rpl_tests/rpl_test_framework.inc
+}
+
+--echo ==== Clean up ====
+
+if ($mtr_supports_more_than_10_servers) {
+ --let $rpl_topology= 1->2->3->4->5->6->7->8->9->10->11->12->13->14->15
+}
+if (!$mtr_supports_more_than_10_servers) {
+ --let $rpl_topology= 1->2->3->4->5->6->7->8->9
+}
+--source include/rpl_init.inc
+--connection server_1
+DROP TABLE t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_timezone.test b/mysql-test/suite/rpl/t/rpl_timezone.test
index 45d1f12b5d5..5b8b1df2652 100644
--- a/mysql-test/suite/rpl/t/rpl_timezone.test
+++ b/mysql-test/suite/rpl/t/rpl_timezone.test
@@ -164,6 +164,8 @@ SET @@session.time_zone = default;
connection master;
DROP TABLE t1;
SET @@session.time_zone = default;
+--sync_slave_with_master
+--source include/stop_slave.inc
# Bug#41719 delayed INSERT into timestamp col needs set time_zone for concurrent binlogging
# To test that time_zone is correctly binloging for 'insert delayed' statement
@@ -196,4 +198,7 @@ select * from t1 order by a;
DROP TABLE t1;
SET @@session.time_zone = default;
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
+
--echo End of 5.0 tests
diff --git a/mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test b/mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
index b3efb578b68..cbd4ed5a097 100644
--- a/mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
+++ b/mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
@@ -12,3 +12,4 @@ LET $ENGINE_TYPE= MyISAM;
source extra/rpl_tests/rpl_tmp_table_and_DDL.test;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_trigger.test b/mysql-test/suite/rpl/t/rpl_trigger.test
index afa80e9c3f5..861b76ed00a 100644
--- a/mysql-test/suite/rpl/t/rpl_trigger.test
+++ b/mysql-test/suite/rpl/t/rpl_trigger.test
@@ -312,20 +312,19 @@ let $MYSQLD_DATADIR= `select @@datadir`;
FLUSH LOGS;
# Stop master server
---echo --> Stop master server
---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
---shutdown_server 10
---source include/wait_until_disconnected.inc
+--let $rpl_server_number= 1
+--source include/rpl_stop_server.inc
+
# Replace binlog
remove_file $MYSQLD_DATADIR/master-bin.000001;
copy_file $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLD_DATADIR/master-bin.000001;
-
---echo --> Start master server
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
---enable_reconnect
---source include/wait_until_connected_again.inc
+
+--let $rpl_server_number= 1
+--source include/rpl_start_server.inc
+
let $binlog_version= query_get_value(SHOW BINLOG EVENTS, Info, 1);
+
# Make the slave to replay the new binlog.
--echo --> Master binlog: $binlog_version
@@ -501,7 +500,8 @@ sync_slave_with_master;
#
connection master;
-source include/master-slave-reset.inc;
+--source include/rpl_reset.inc
+
source include/have_innodb.inc;
connection slave;
source include/have_innodb.inc;
@@ -518,12 +518,10 @@ insert into t1 values ( 1 );
rollback;
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
--source include/diff_tables.inc
-let $diff_table_1=master:test.log;
-let $diff_table_2=slave:test.log;
+let $diff_tables= master:log, slave:log;
--source include/diff_tables.inc
connection master;
@@ -533,3 +531,4 @@ sync_slave_with_master;
#
# End of tests
#
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_trunc_temp.test b/mysql-test/suite/rpl/t/rpl_trunc_temp.test
index 88ecb7c18b0..0e7d5483f62 100644
--- a/mysql-test/suite/rpl/t/rpl_trunc_temp.test
+++ b/mysql-test/suite/rpl/t/rpl_trunc_temp.test
@@ -52,3 +52,6 @@ let $wait_binlog_event= DROP;
source include/wait_for_binlog_event.inc;
show status like 'Slave_open_temp_tables';
+
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_truncate_2myisam.test b/mysql-test/suite/rpl/t/rpl_truncate_2myisam.test
index a0f0ea04f44..bea6332963e 100644
--- a/mysql-test/suite/rpl/t/rpl_truncate_2myisam.test
+++ b/mysql-test/suite/rpl/t/rpl_truncate_2myisam.test
@@ -1,4 +1,3 @@
--source include/not_ndb_default.inc
let $engine=MyISAM;
--source extra/rpl_tests/rpl_truncate.test
-
diff --git a/mysql-test/suite/rpl/t/rpl_truncate_3innodb.test b/mysql-test/suite/rpl/t/rpl_truncate_3innodb.test
index a31fd62a29a..093cf56a316 100644
--- a/mysql-test/suite/rpl/t/rpl_truncate_3innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_truncate_3innodb.test
@@ -1,6 +1,4 @@
-
--source include/have_innodb.inc
--source include/not_ndb_default.inc
-
let $engine=InnoDB;
--source extra/rpl_tests/rpl_truncate.test
diff --git a/mysql-test/suite/rpl/t/rpl_typeconv_innodb.test b/mysql-test/suite/rpl/t/rpl_typeconv_innodb.test
index e7882b28065..d4aae5736b4 100644
--- a/mysql-test/suite/rpl/t/rpl_typeconv_innodb.test
+++ b/mysql-test/suite/rpl/t/rpl_typeconv_innodb.test
@@ -6,17 +6,16 @@
# BUG#49618: Field length stored incorrectly in binary log for InnoDB
#
-source include/reset_master_and_slave.inc;
-
connection master;
CREATE TABLE t1(b1 BIT(1), b2 BIT(2), b3 BIT(3)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (b'0', b'01', b'101');
sync_slave_with_master;
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
connection master;
DROP TABLE t1;
sync_slave_with_master;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_udf.test b/mysql-test/suite/rpl/t/rpl_udf.test
index 262ad04630c..452431e2f52 100644
--- a/mysql-test/suite/rpl/t/rpl_udf.test
+++ b/mysql-test/suite/rpl/t/rpl_udf.test
@@ -20,3 +20,4 @@ set binlog_format=statement;
# Embedded server doesn't support binlogging
--source include/rpl_udf.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_user.test b/mysql-test/suite/rpl/t/rpl_user.test
index b8fe41d03c4..caa17b47733 100644
--- a/mysql-test/suite/rpl/t/rpl_user.test
+++ b/mysql-test/suite/rpl/t/rpl_user.test
@@ -59,3 +59,4 @@ select Host,User from mysql.user where Host='fakehost';
#
connection master;
source include/show_binlog_events.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_user_variables.test b/mysql-test/suite/rpl/t/rpl_user_variables.test
index 8d570f28f64..d496458c3fb 100644
--- a/mysql-test/suite/rpl/t/rpl_user_variables.test
+++ b/mysql-test/suite/rpl/t/rpl_user_variables.test
@@ -378,4 +378,5 @@ DROP FUNCTION f2;
DROP TABLE t1;
sync_slave_with_master;
-stop slave;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_variables.test b/mysql-test/suite/rpl/t/rpl_variables.test
index 6c3b3ab6d8a..001b8a6bc8e 100644
--- a/mysql-test/suite/rpl/t/rpl_variables.test
+++ b/mysql-test/suite/rpl/t/rpl_variables.test
@@ -109,9 +109,7 @@ SET @user_text = 'Alunda';
# Stop slave so that we get a fresh sql thread, reading the slave's
# global values of variables into its local copies.
---echo [on master]
-connection master;
-source include/reset_master_and_slave.inc;
+--source include/rpl_reset.inc
# We would have wanted to set this together with the other variables
# above, but can't because it affects how the slave works.
@@ -679,30 +677,11 @@ EXECUTE p61; EXECUTE p62; EXECUTE p63; EXECUTE p64;
# Show the result in table test.tstmt on master...
SELECT * FROM tstmt ORDER BY id;
-let $diff_table_1=master:test.tstmt;
-# ... then compare test.tstmt on master to the other tables on master...
-let $diff_table_2=master:test.tproc;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.tfunc;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.ttrig;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.tprep;
-source include/diff_tables.inc;
+--sync_slave_with_master
-# ... and to all tables on slave.
-connection master;
-sync_slave_with_master;
-let $diff_table_2=slave:test.tstmt;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tproc;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tfunc;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.ttrig;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tprep;
+# ... then compare test.tstmt on master to the other tables on master and slave.
+let $diff_tables= master:tstmt,tproc,tfunc,ttrig,tprep, slave:tstmt,tproc,tfunc,ttrig,tprep;
source include/diff_tables.inc;
@@ -737,3 +716,4 @@ SET @@global.sync_binlog= @s_sync_binlog;
connection master;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_variables_stm.test b/mysql-test/suite/rpl/t/rpl_variables_stm.test
index 85152ae878a..f2f535f27d1 100644
--- a/mysql-test/suite/rpl/t/rpl_variables_stm.test
+++ b/mysql-test/suite/rpl/t/rpl_variables_stm.test
@@ -575,29 +575,11 @@ EXECUTE p61; EXECUTE p62; EXECUTE p63; EXECUTE p64;
# Show the result in table test.tstmt on master...
SELECT * FROM tstmt ORDER BY id;
-let $diff_table_1=master:test.tstmt;
-# ... then compare test.tstmt on master to the other tables on master...
-let $diff_table_2=master:test.tproc;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.tfunc;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.ttrig;
-source include/diff_tables.inc;
-let $diff_table_2=master:test.tprep;
-source include/diff_tables.inc;
+--sync_slave_with_master
-# ... and to all tables on slave.
-sync_slave_with_master;
-let $diff_table_2=slave:test.tstmt;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tproc;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tfunc;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.ttrig;
-source include/diff_tables.inc;
-let $diff_table_2=slave:test.tprep;
+# ... then compare test.tstmt on master to the other tables on master and slave.
+let $diff_tables= master:tstmt,tproc,tfunc,ttrig,tprep, slave:tstmt,tproc,tfunc,ttrig,tprep;
source include/diff_tables.inc;
@@ -634,3 +616,4 @@ SET @@global.collation_database= @s_collation_database;
connection master;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_view.test b/mysql-test/suite/rpl/t/rpl_view.test
index 1053514bfec..5d878fda205 100644
--- a/mysql-test/suite/rpl/t/rpl_view.test
+++ b/mysql-test/suite/rpl/t/rpl_view.test
@@ -183,3 +183,4 @@ DROP TABLE t1;
sync_slave_with_master;
--echo End of 5.0 tests
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result
index 28ca1ac43b9..eae70ca5a69 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET storage_engine=ndb;
=== NDB -> MYISAM ===
@@ -805,3 +801,4 @@ TRUNCATE TABLE t1;
DROP TABLE IF EXISTS t1;
drop table mysql.ndb_apply_status;
set @@global.slave_exec_mode= @old_slave_exec_mode;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result
index 6babf49dcaa..136aee25fe2 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, vchar_column VARCHAR(100), PRIMARY KEY(a)) engine=NDB;
@@ -38,3 +34,4 @@ DROP PROCEDURE test.p1;
DROP FUNCTION test.fn1;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result
index 0fcd361da21..5e44591f87e 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
*** on slave there should be zero rows ***
select count(*) from mysql.ndb_apply_status;
count(*)
@@ -18,3 +14,4 @@ select count(*) from mysql.ndb_apply_status;
count(*)
1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result
index dd4cc90a75f..c537fb85ad2 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
***************** Test 1 ************************
CREATE TABLE t1 (a INT NOT NULL auto_increment,b INT, PRIMARY KEY (a)) ENGINE=NDB auto_increment=3;
@@ -168,3 +164,4 @@ a
32
42
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result
index d43165e2b5e..6109ea0b742 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE `t1` ( `nid` int(11) NOT NULL default '0',
`nom` char(4) default NULL,
`prenom` char(4) default NULL,
@@ -140,7 +136,8 @@ set GLOBAL slave_transaction_retries=1;
**** On Master ****
UPDATE t1 SET `nom`="DEAD" WHERE `nid`=1;
**** On Slave ****
-Last_SQL_Error = Could not execute Write_rows event on table test.t1; Got temporary error 266 'Time-out in NDB, probably caused by deadlock' from NDB, Error_code: 1297; Lock wait timeout exceeded; try restarting transaction, Error_code: 1205; handler error HA_ERR_LOCK_WAIT_TIMEOUT; the event's master log master-bin.000001, end_log_pos 6834
+include/wait_for_slave_sql_error.inc [errno=1205 ]
+Last_SQL_Error = 'Could not execute Write_rows event on table test.t1; Got temporary error 266 'Time-out in NDB, probably caused by deadlock' from NDB, Error_code: 1297; Lock wait timeout exceeded; try restarting transaction, Error_code: 1205; handler error HA_ERR_LOCK_WAIT_TIMEOUT; the event's master log master-bin.000001, end_log_pos 6834'
set GLOBAL slave_transaction_retries=10;
include/start_slave.inc
select * from t1 order by nid;
@@ -191,3 +188,4 @@ c1
104
105
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result
index c11de8c27e3..537af85d766 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (
a int not null primary key,
b text not null
@@ -133,3 +129,4 @@ S testtttttttttt t1 8fc937d303ee7e4795c0b964d4066cedd6d74cfd 11 12 13 14 15
S testttttttttttt t1 a5229e9f8977bc99afc3b3627c56f083e97e01bd 21 22 23 24 25
S testtttttttttttt t1 0820e6ad3eeb06ea60e5e04d0bfe36f286b91098 31 32 33 34 35
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result
index 055efffbd6a..4fb33dc4b6b 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
***** Table Create Section ****
@@ -154,3 +150,4 @@ c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3)
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result
index dfbd7a37d8e..7ff7830449f 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result
@@ -1,12 +1,6 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-RESET MASTER;
-CHANGE MASTER TO master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root";
-START SLAVE;
+include/rpl_init.inc [topology=1->2->1]
+include/rpl_connect.inc [creating master]
+include/rpl_connect.inc [creating slave]
CREATE TABLE t1 (a int key, b int) ENGINE=ndb;
SHOW TABLES;
Tables_in_test
@@ -17,11 +11,12 @@ SELECT * FROM t1 ORDER BY a;
a b
1 2
2 3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT * FROM t1 ORDER BY a;
a b
1 2
2 3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
STOP SLAVE;
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result
index b7d4a3d76db..75aa37f99f3 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result
@@ -1,21 +1,8 @@
-STOP SLAVE;
-STOP SLAVE;
-STOP SLAVE;
-STOP SLAVE;
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
-RESET MASTER;
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
-RESET MASTER;
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
-RESET MASTER;
-DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
-RESET MASTER;
-RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=MASTER_MYPORT,master_user='root';
-START SLAVE;
-RESET SLAVE;
-CHANGE MASTER TO master_host='127.0.0.1',master_port=SLAVE_MYPORT1,master_user='root';
-START SLAVE;
+include/rpl_init.inc [topology=1->2,4->3]
+include/rpl_connect.inc [creating master]
+include/rpl_connect.inc [creating master1]
+include/rpl_connect.inc [creating slave]
+include/rpl_connect.inc [creating slave1]
*** Check server_id of mysqld servers ***
SHOW VARIABLES LIKE "server_id";
@@ -45,20 +32,20 @@ CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL,
*** Basic testing ***
Insert rows via all hosts
Check data on both clusters
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
*** Transaction testing ***
BEGIN;
BEGIN;
COMMIT;
COMMIT;
Check data on both clusters
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
BEGIN;
BEGIN;
ROLLBACK;
ROLLBACK;
Check data on both clusters
-Comparing tables master:test.t1 and slave:test.t1
-DROP TABLE t1;
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result
index 99438d663bb..f3a4c132ee3 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a int key, b int) ENGINE=NDB;
SHOW TABLES;
Tables_in_test
@@ -12,9 +8,9 @@ RESET MASTER;
INSERT INTO t1 VALUES (1,2);
INSERT INTO t1 VALUES (2,3);
STOP SLAVE;
-CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=SLAVE_PORT,MASTER_USER="root";
+include/rpl_change_topology.inc [new topology=1->2->1]
START SLAVE;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT * FROM t1 ORDER BY a;
a b
1 2
@@ -25,5 +21,6 @@ SELECT * FROM t1 ORDER BY a;
a b
1 2
2 3
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result
index 3fc4ca26967..21546ed6524 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (a INT) ENGINE=NDB;
begin;
insert into t1 values(1);
@@ -11,3 +7,4 @@ flush tables with read lock;
commit;
unlock tables;
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result
index a6e2144f532..aa67c678773 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
show variables like 'collation_server';
Variable_name Value
collation_server ucs2_unicode_ci
@@ -25,3 +21,4 @@ nid nom prenom
1 XYZ1 ABC1
==== clean up ====
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result
index 6a0c863440e..6fda18ba207 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'undofile.dat'
@@ -70,3 +66,4 @@ drop datafile 'datafile02.dat'
engine=ndb;
DROP TABLESPACE ts1 ENGINE=NDB;
DROP LOGFILE GROUP lg1 ENGINE=NDB;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result
index c906f00bd40..acead977487 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
--- Doing pre test cleanup ---
DROP TABLE IF EXISTS t1;
CREATE LOGFILE GROUP lg1
@@ -788,3 +784,4 @@ drop datafile 'datafile02.dat'
engine=ndb;
DROP TABLESPACE ts1 ENGINE=NDB;
DROP LOGFILE GROUP lg1 ENGINE=NDB;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result
index e668b57293e..3ceb66f076a 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
-------- switch to master -------
SET AUTOCOMMIT = 1;
@@ -1626,3 +1622,4 @@ use test;
-------- switch to master -------
DROP DATABASE mysqltest1;
DROP DATABASE mysqltest3;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result
index 1cecb030181..5f61e4d7803 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int, b int) engine=NDB;
insert into t1 values(1,1);
select * from t1;
@@ -13,3 +9,4 @@ delete from t1;
select * from t1;
a b
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result
index 316f5fc7e31..6171d10657f 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS replica;
CREATE DATABASE replica;
CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB;
@@ -56,3 +52,4 @@ Tables_in_test
USE test;
DROP TABLE t1, t2;
DROP DATABASE IF EXISTS replica;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result
index dda2844f6d0..6ac55944e33 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB;
CREATE TABLE t2 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB;
@@ -24,3 +20,4 @@ ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
INSERT INTO t1 VALUES (3, repeat('bad too',1));
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
DROP TABLE IF EXISTS t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
index 1a79affabe6..9ae340d713e 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
call mtr.add_suppression("Slave: Unknown table 't6' Error_code: 1051");
**** Diff Table Def Start ****
*** On Slave ***
@@ -54,7 +50,8 @@ a b c
3 4 QA TESTING
*** Start Slave ***
START SLAVE;
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.'
STOP SLAVE;
RESET SLAVE;
SELECT * FROM t2 ORDER BY a;
@@ -83,10 +80,8 @@ INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TEST
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3'
*** Drop t3 ***
DROP TABLE t3;
*** Create t4 on slave ***
@@ -108,10 +103,8 @@ INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3'
*** Drop t4 ***
DROP TABLE t4;
*** Create t5 on slave ***
@@ -133,10 +126,8 @@ INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246'
*** Drop t5 ***
DROP TABLE t5;
*** Create t6 on slave ***
@@ -157,7 +148,8 @@ INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
-Last_SQL_Error = Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3'
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
*** Drop t6 ***
DROP TABLE t6;
@@ -231,10 +223,8 @@ INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5'
*** Drop t10 ***
DROP TABLE t10;
*** Create t11 on slave ***
@@ -255,10 +245,8 @@ INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252'
*** Drop t11 ***
DROP TABLE t11;
*** Create t12 on slave ***
@@ -468,10 +456,8 @@ ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
********************************************
*** Expect slave to fail with Error 1060 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5'
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 1;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1060]
+Last_SQL_Error = 'Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5''
*** Try to insert in master ****
INSERT INTO t15 () VALUES(5,2.00,'Replication Testing',@b1,'Buda',2);
SELECT * FROM t15 ORDER BY c1;
@@ -571,9 +557,8 @@ INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
********************************************
*** Expect slave to fail with Error 1535 ***
********************************************
---source include/wait_for_slave_sql_error_and_skip.inc
-Last_SQL_Error = Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
-SET GLOBAL SQL_SLAVE_SKIP_COUNTER= 2;
-include/start_slave.inc
+include/wait_for_slave_sql_error_and_skip.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2'
** DROP table t17 ***
DROP TABLE t17;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result
index 7e750f2ce2a..3829d1468fd 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CALL mtr.add_suppression('Statement may not be safe to log in statement format.');
DROP FUNCTION IF EXISTS test.f1;
DROP TABLE IF EXISTS test.t1;
@@ -28,3 +24,4 @@ ROLLBACK;
SET AUTOCOMMIT=1;
DROP FUNCTION test.f1;
DROP TABLE test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result
index e2755c04f28..019b8bc4cf0 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (c1 CHAR(15), c2 CHAR(15), c3 INT, PRIMARY KEY (c3)) ENGINE = NDB ;
INSERT INTO t1 VALUES ("row1","will go away",1);
SELECT * FROM t1 ORDER BY c3;
@@ -32,11 +28,12 @@ SELECT * FROM t1 ORDER BY c3;
c1 c2 c3
row3 C 3
row4 D 4
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
STOP SLAVE;
CHANGE MASTER TO
master_log_file = 'master-bin.000001',
master_log_pos = <the_pos> ;
+include/check_slave_no_error.inc
START SLAVE;
SELECT * FROM t1 ORDER BY c3;
c1 c2 c3
@@ -62,5 +59,6 @@ COMMIT;
SELECT * FROM t1;
c1 c2 c3
row2 new on slave 2
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
index 4c96ccf85ee..9fb019bf6e5 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET storage_engine=innodb;
--- Doing pre test cleanup ---
DROP TABLE IF EXISTS t1;
@@ -917,3 +913,4 @@ DELETE FROM t1;
--- End test 5 key partition testing ---
--- Do Cleanup ---
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result
index 7c3f331958f..a01841af003 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
create table t1 (a int, unique(a)) engine=ndbcluster;
create table t2 (a int, unique(a)) engine=innodb;
begin;
@@ -101,3 +97,4 @@ select count(*) from t2;
count(*)
0
drop table t1,t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result
index 030845e89e2..195392ae0c5 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
b int unsigned,
@@ -68,3 +64,4 @@ a b
5 5
6 6
drop table t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result
index 85ecb13bd66..a20e5d03595 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
include/stop_slave.inc
reset master;
reset slave;
@@ -256,18 +252,13 @@ slave-bin.000002 # Table_map # # table_id: # (mysql.ndb_apply_status)
slave-bin.000002 # Write_rows # # table_id: #
slave-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
slave-bin.000002 # Query # # COMMIT
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
create table t1(a int auto_increment primary key, b int);
insert into t1 values (NULL, 1);
set insert_id=5;
@@ -289,3 +280,4 @@ a b
5 1
6 1
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result
index 7caa88a16a1..d8b01dc1f5b 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE tmyisam (a int) ENGINE = MYISAM;
CREATE TABLE tinnodb (a int) ENGINE = INNODB;
CREATE TABLE tndb (a int) ENGINE = NDB;
@@ -477,10 +473,11 @@ a
151
152
[on slave]
-Comparing tables master:test.tmyisam and slave:test.tmyisam
-Comparing tables master:test.tinnodb and slave:test.tinnodb
-Comparing tables master:test.tndb and slave:test.tndb
+include/diff_tables.inc [master:tmyisam, slave:tmyisam]
+include/diff_tables.inc [master:tinnodb, slave:tinnodb]
+include/diff_tables.inc [master:tndb, slave:tndb]
==== Clean up ====
[on master]
DROP TABLE tmyisam, tinnodb, tndb;
[on slave]
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result
index 92fda774da5..3e88f846164 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result
@@ -1,10 +1,6 @@
==== Initialization ====
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
---- setup master ----
CREATE TABLE myisam_innodb (a INT) ENGINE=MYISAM;
CREATE TABLE innodb_myisam (a INT) ENGINE=INNODB;
@@ -274,13 +270,14 @@ a
34
57
58
-Comparing tables master:test.myisam_innodb and slave:test.myisam_innodb
-Comparing tables master:test.innodb_myisam and slave:test.innodb_myisam
-Comparing tables master:test.myisam_ndb and slave:test.myisam_ndb
-Comparing tables master:test.ndb_myisam and slave:test.ndb_myisam
-Comparing tables master:test.innodb_ndb and slave:test.innodb_ndb
-Comparing tables master:test.ndb_innodb and slave:test.ndb_innodb
+include/diff_tables.inc [master:myisam_innodb, slave:myisam_innodb]
+include/diff_tables.inc [master:innodb_myisam, slave:innodb_myisam]
+include/diff_tables.inc [master:myisam_ndb, slave:myisam_ndb]
+include/diff_tables.inc [master:ndb_myisam, slave:ndb_myisam]
+include/diff_tables.inc [master:innodb_ndb, slave:innodb_ndb]
+include/diff_tables.inc [master:ndb_innodb, slave:ndb_innodb]
==== Clean up ====
drop table myisam_innodb, innodb_myisam;
drop table myisam_ndb, ndb_myisam;
drop table innodb_ndb, ndb_innodb;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result
index 05524ae1ae3..97463efae94 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (c1 CHAR(15), c2 CHAR(15), c3 INT, PRIMARY KEY (c3)) ENGINE = NDB ;
reset master;
SHOW TABLES;
@@ -27,11 +23,8 @@ SELECT @the_pos:=Position,@the_file:=SUBSTRING_INDEX(FILE, '/', -1)
FROM mysql.ndb_binlog_index WHERE epoch = <the_epoch> ;
@the_pos:=Position @the_file:=SUBSTRING_INDEX(FILE, '/', -1)
106 master-bin.000001
-CHANGE MASTER TO
-master_port=<MASTER_PORT1>,
-master_log_file = 'MASTER_LOG_FILE',
-master_log_pos = MASTER_LOG_POS ;
-start slave;
+include/rpl_change_topology.inc [new topology=3->2]
+include/start_slave.inc
INSERT INTO t1 VALUES ("row2","will go away",2),("row3","will change",3),("row4","D",4);
DELETE FROM t1 WHERE c3 = 1;
UPDATE t1 SET c2="should go away" WHERE c3 = 2;
@@ -54,4 +47,4 @@ row4 D 4
row5 E 5
==== clean up ====
DROP TABLE t1;
-STOP SLAVE;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result
index 5d00ae6598c..f3142678ff8 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
drop table if exists t1,t2;
CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
@@ -53,3 +49,4 @@ select * from t1;
a
3
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result
index dc4e11c9c9e..d1cc10a930c 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
-------- Test for BUG#9361 --------
CREATE TABLE t1 (
@@ -195,3 +191,4 @@ idpro price nbprice
2 1.0000 2
3 2.0000 1
DROP TABLE t1, t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
index eb7d88c812b..d167a85bb8b 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET storage_engine=myisam;
--- Doing pre test cleanup ---
DROP TABLE IF EXISTS t1;
@@ -917,3 +913,4 @@ DELETE FROM t1;
--- End test 5 key partition testing ---
--- Do Cleanup ---
DROP TABLE IF EXISTS t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result
index 4e28a7e5865..801e1c0a9f2 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP DATABASE IF EXISTS replica;
CREATE DATABASE replica;
CREATE TABLE t1 (a INT NOT NULL KEY, b text NOT NULL)ENGINE=NDB;
@@ -52,3 +48,4 @@ Tables_in_test
USE test;
DROP TABLE t1, t2;
DROP DATABASE IF EXISTS replica;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result
index 7f75bdedd65..333e943d3ca 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (word CHAR(20) NOT NULL);
LOAD DATA INFILE 'LOAD_FILE' INTO TABLE t1;
LOAD DATA INFILE 'LOAD_FILE' INTO TABLE t1;
@@ -53,3 +49,4 @@ SELECT n FROM t1;
n
3456
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result
index 473cd63169c..b37f55b36a4 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result
@@ -1,35 +1,22 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=NDB;
INSERT INTO `t1` VALUES ( 1, 1 );
UPDATE t1 SET c1=NULL where c2=1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 WHERE c2=1 LIMIT 1;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
CREATE TABLE t1 (c1 CHAR) Engine=NDB;
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
SELECT * FROM t1;
c1
w
UPDATE t1 SET c1=NULL WHERE c1='w';
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DELETE FROM t1 LIMIT 2;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result
index d7922c61b52..e28e438610f 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
@@ -47,3 +43,4 @@ a
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result
index 047402f826f..2dd1754745b 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP PROCEDURE IF EXISTS p1;
@@ -42,3 +38,4 @@ DROP TABLE t1;
DROP TABLE t2;
DROP PROCEDURE p1;
DROP PROCEDURE p2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result
index 367738b21e5..f57becd18fe 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
SET binlog_format = STATEMENT;
*** Test 1 ***
@@ -123,12 +119,7 @@ master-bin.000002 # Xid 1 <end_pos> COMMIT /* XID */
** Test 4 **
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/rpl_reset.inc
select @log_name:=log_name, @start_pos:=start_pos, @end_pos:=end_pos
from mysql.ndb_apply_status;
@@ -142,3 +133,4 @@ master-bin.000001 # Xid 1 <end_pos> COMMIT /* XID */
*** DUMP MASTER & SLAVE FOR COMPARE ********
DROP DATABASE tpcb;
****** Do dumps compare ************
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result
index 49d068d5fe4..457933ae5f7 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
STOP SLAVE;
CREATE DATABASE ndbsynctest;
USE ndbsynctest;
@@ -68,7 +64,7 @@ CHANGE MASTER TO
master_log_file = 'master-bin.000001',
master_log_pos = <the_pos> ;
START SLAVE;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT hex(c1),hex(c2),c3 FROM t1 ORDER BY c3;
hex(c1) hex(c2) c3
1 1 row1
@@ -89,3 +85,4 @@ Position File epoch inserts updates deletes schemaops
reset slave;
select * from mysql.ndb_apply_status;
server_id epoch log_name start_pos end_pos
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result
index ba5f0dea91c..c6d9e29183e 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
DROP TRIGGER test.t1_bi_t2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
@@ -28,3 +24,4 @@ n f
DROP TRIGGER test.t1_bi_t2;
DROP TABLE test.t1;
DROP TABLE test.t2;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result
index 04a75bf3479..12f171531b5 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
CREATE TABLE t1 (C1 CHAR(1), C2 CHAR(1), INDEX (C1)) ENGINE = 'NDB' ;
SELECT * FROM t1;
C1 C2
@@ -422,11 +418,7 @@ a b c
**** Test for BUG#31552 ****
**** On Master ****
DELETE FROM t1;
-**** Resetting master and slave ****
-include/stop_slave.inc
-RESET SLAVE;
-RESET MASTER;
-include/start_slave.inc
+include/rpl_reset.inc
**** On Master ****
INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M');
**** On Master ****
@@ -436,7 +428,7 @@ DELETE FROM t1;
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
set @@global.slave_exec_mode= default;
-Checking that both slave threads are running.
+include/check_slave_is_running.inc
SELECT COUNT(*) FROM t1 ORDER BY c1,c2;
COUNT(*) 0
**** Test for BUG#37076 ****
@@ -478,50 +470,44 @@ j INT NOT NULL) ENGINE = 'NDB' ;
[expecting slave to replicate correctly]
INSERT INTO t1 VALUES (1, "", 1);
INSERT INTO t1 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
[expecting slave to replicate correctly]
INSERT INTO t2 VALUES (1, "", 1);
INSERT INTO t2 VALUES (2, repeat(_utf8'a', 16), 2);
-Comparing tables master:test.t2 and slave:test.t2
+include/diff_tables.inc [master:t2, slave:t2]
[expecting slave to stop]
INSERT INTO t3 VALUES (1, "", 1);
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 384, test.t3 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t4 VALUES (1, "", 1);
INSERT INTO t4 VALUES (2, repeat(_utf8'a', 128), 2);
-Comparing tables master:test.t4 and slave:test.t4
+include/diff_tables.inc [master:t4, slave:t4]
[expecting slave to stop]
INSERT INTO t5 VALUES (1, "", 1);
INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t5 on slave has size 49. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to stop]
INSERT INTO t6 VALUES (1, "", 1);
INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2);
-Last_SQL_Error = Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.
-RESET MASTER;
-STOP SLAVE;
-RESET SLAVE;
-START SLAVE;
+include/wait_for_slave_sql_error.inc [errno=1535]
+Last_SQL_Error = 'Table definition on master and slave does not match: Column 1 size mismatch - master has size 765, test.t6 on slave has size 385. Master's column size should be <= the slave's column size.'
+include/rpl_reset.inc
[expecting slave to replicate correctly]
INSERT INTO t7 VALUES (1, "", 1);
INSERT INTO t7 VALUES (2, repeat(_utf8'a', 255), 2);
-Comparing tables master:test.t7 and slave:test.t7
+include/diff_tables.inc [master:t7, slave:t7]
drop table t1, t2, t3, t4, t5, t6, t7;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE='NDB' ;
INSERT INTO t1 VALUES (1), (2), (3);
UPDATE t1 SET a = 10;
ERROR 23000: Duplicate entry '10' for key 'PRIMARY'
INSERT INTO t1 VALUES (4);
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (
@@ -575,7 +561,7 @@ ERROR 23000: Duplicate entry '6' for key 'PRIMARY'
DELETE FROM t2 WHERE `pk` < 7 LIMIT 1;
UPDATE t1 SET `int_key` = 4 ORDER BY `pk` LIMIT 6;
*** results: t2 must be consistent ****
-Comparing tables master:test.t2 and master:test.t2
+include/diff_tables.inc [master:t2, master:t2]
DROP TABLE t1, t2;
EOF OF TESTS
CREATE TABLE t1 (a int) ENGINE='NDB' ;
@@ -591,7 +577,7 @@ UPDATE t1 SET a = 9 WHERE a < 3;
INSERT INTO t1 ( a ) VALUES ( 3 );
UPDATE t1 SET a = 0 WHERE a < 4;
UPDATE t1 SET a = 8 WHERE a < 5;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
CREATE TABLE t1 (a bit) ENGINE='NDB' ;
INSERT IGNORE INTO t1 VALUES (NULL);
@@ -633,5 +619,6 @@ DELETE FROM t1 WHERE a < 3 LIMIT 0;
UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2;
INSERT INTO t1 ( a ) VALUES ( 1 );
UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3;
-Comparing tables master:test.t1 and slave:test.t1
+include/diff_tables.inc [master:t1, slave:t1]
drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result
index 14d3baee1b0..dd84fea8258 100644
--- a/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result
+++ b/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result
@@ -1,9 +1,5 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+include/master-slave.inc
+[connection master]
**** On Master ****
CREATE TABLE t1 (a INT PRIMARY KEY, b LONG) ENGINE=NDB;
INSERT INTO t1 VALUES (1,1), (2,2);
@@ -87,3 +83,4 @@ master-bin.000001 # Write_rows # # table_id: #
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE t1
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test
index 3b075808481..8279d814deb 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test
@@ -33,3 +33,4 @@ CREATE TABLE mysql.ndb_apply_status
--connection slave
drop table mysql.ndb_apply_status;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test
index 560efec255b..265b2f412dc 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test
@@ -32,3 +32,4 @@ CREATE TABLE mysql.ndb_apply_status
--connection slave
drop table mysql.ndb_apply_status;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test
index e954c72fd1d..1d0ee48bd20 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test
@@ -17,3 +17,4 @@ SET storage_engine=ndb;
--echo
connection slave;
--source extra/rpl_tests/rpl_ndb_2multi_basic.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test
index 41f91d62dec..df751214b40 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test
@@ -48,3 +48,4 @@ SET storage_engine=innodb;
connection slave;
drop table mysql.ndb_apply_status;
set @@global.slave_exec_mode= @old_slave_exec_mode;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test
index ea623a06fd1..e2bcb143ab0 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test
@@ -6,3 +6,4 @@
--source include/ndb_master-slave.inc
let $engine_type=NDB;
--source extra/rpl_tests/rpl_row_UUID.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test
index cc74acc6490..92f71e294b2 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test
@@ -24,3 +24,4 @@ select count(*) from mysql.ndb_apply_status;
connection master;
drop table t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test
index 5e0584e332a..d2921424d6a 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test
@@ -116,3 +116,4 @@ drop table t1;
# End cleanup
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test
index b90e6fff8bc..12bd8d533c5 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test
@@ -179,3 +179,4 @@ diff_files $MYSQLTEST_VARDIR/tmp/master_BANK.sql $MYSQLTEST_VARDIR/tmp/slave_BAN
--dec $2
}
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test
index c03738bc48b..1871c332c29 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test
@@ -188,7 +188,6 @@ UPDATE t1 SET `nom`="DEAD" WHERE `nid`=1;
# Wait for deadlock to be detected.
# When detected, the slave will stop, so we just wait for it to stop.
connection slave;
-source include/wait_for_slave_sql_to_stop.inc;
# Replication should have stopped, since max retries were not enough.
# verify with show slave status
@@ -259,4 +258,4 @@ SELECT c1 FROM t1 ORDER BY c1 LIMIT 5;
# cleanup
--connection master
DROP TABLE t1;
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test
index 822f1f224cd..560cebe2a41 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test
@@ -139,3 +139,4 @@ drop table t1;
#let $VERSION=`select version()`;
#--replace_result $VERSION VERSION
#show binlog events;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test
index e29f24998fe..ad4510d57c2 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test
@@ -8,3 +8,4 @@
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_blob.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test
index e63b7c5e8ff..233d4338256 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test
@@ -1,15 +1,16 @@
--source include/have_ndb.inc
---source include/ndb_master-slave.inc
# set up circular replication
+--let $rpl_topology= 1->2->1
+--source include/rpl_init.inc
---connection slave
-RESET MASTER;
+--let $rpl_connection_name= master
+--let $rpl_server_number= 1
+--source include/rpl_connect.inc
---connection master
---replace_result $SLAVE_MYPORT SLAVE_PORT
---eval CHANGE MASTER TO master_host="127.0.0.1",master_port=$SLAVE_MYPORT,master_user="root"
-START SLAVE;
+--let $rpl_connection_name= slave
+--let $rpl_server_number= 2
+--source include/rpl_connect.inc
# create the table on the "slave"
@@ -51,3 +52,6 @@ STOP SLAVE;
--connection master
DROP TABLE t1;
-- sync_slave_with_master
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
index b1b010ef0f3..b234f9a8c2c 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
@@ -15,14 +15,7 @@ skip-slave-start
[mysqld.2.slave]
server-id= 2
-master-host= 127.0.0.1
-master-port= @mysqld.2.1.port
-master-password= @mysqld.2.1.#password
-master-user= @mysqld.2.1.#user
-master-connect-retry= 1
-init-rpl-role= slave
log-bin
-skip-slave-start
ndb_connectstring= @mysql_cluster.slave.ndb_connectstring
[ENV]
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test
index 8721e85780d..2d1f75f148d 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test
@@ -75,9 +75,7 @@ let $wait_condition= SELECT COUNT(*)=40 FROM t1 WHERE c = 1;
# Check data
--echo Check data on both clusters
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
--echo *** Transaction testing ***
@@ -116,9 +114,7 @@ let $wait_condition= SELECT COUNT(*)=400 FROM t1 WHERE c = 2;
--source include/wait_condition.inc
--echo Check data on both clusters
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
# Start transaction and then roll back
@@ -155,18 +151,17 @@ let $wait_condition= SELECT COUNT(*)=200 FROM t1 WHERE c = 3;
--source include/wait_condition.inc
--echo Check data on both clusters
-let $diff_table_1=master:test.t1;
-let $diff_table_2=slave:test.t1;
-
+let $diff_tables= master:t1, slave:t1;
source include/diff_tables.inc;
# Clean up
--connection master
-DROP TABLE t1;
---connection slave
---disable_warnings
DROP TABLE IF EXISTS t1;
---enable_warnings
+--connection slave
+# Wait until table is dropped on slave.
+--let $query= SELECT COUNT(*) FROM t1
+--source include/wait_for_query_to_fail.inc
--echo
# End of test 5.1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test
index 8b0f869c1a3..19af5d54559 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test
@@ -31,9 +31,9 @@ INSERT INTO t1 VALUES (2,3);
# Replicate back to the master to test this mixed event on the master
STOP SLAVE;
+--let $rpl_topology= 1->2->1
+--source include/rpl_change_topology.inc
connection master;
---replace_result $SLAVE_MYPORT SLAVE_PORT
-eval CHANGE MASTER TO MASTER_HOST="127.0.0.1",MASTER_PORT=$SLAVE_MYPORT,MASTER_USER="root";
START SLAVE;
@@ -76,3 +76,6 @@ source include/check_slave_is_running.inc;
-- connection master
DROP TABLE t1;
-- sync_slave_with_master
+
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test
index 8c45ac5dbdd..2353a2a8b5a 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test
@@ -8,3 +8,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_commit_after_flush.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test
index 8d5ad334766..f2eec56e176 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test
@@ -41,3 +41,4 @@ select * from t1 order by nid;
connection master;
DROP TABLE t1;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test
index ac0ab01f8dd..dbe6929bbef 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test
@@ -82,4 +82,4 @@ drop datafile 'datafile02.dat'
engine=ndb;
DROP TABLESPACE ts1 ENGINE=NDB;
DROP LOGFILE GROUP lg1 ENGINE=NDB;
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test
index c84854e89e8..373cc88fb00 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test
@@ -308,3 +308,4 @@ DROP LOGFILE GROUP lg1 ENGINE=NDB;
--sync_slave_with_master
# End of 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test
index 654d1c08944..5798bff163a 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test
@@ -31,3 +31,4 @@ let $temp_engine_type= MEMORY;
let $show_binlog = 0;
let $manipulate = 0;
-- source extra/rpl_tests/rpl_ddl.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test
index 6b1d932f9a6..76484e5b5ae 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test
@@ -6,3 +6,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_delete_no_where.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test
index ffe8551d00f..7b42d86a260 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test
@@ -54,3 +54,4 @@ DROP DATABASE IF EXISTS replica;
--sync_slave_with_master
# End 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test
index ee6abd580f5..9d5db57f988 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test
@@ -43,3 +43,4 @@ INSERT INTO t1 VALUES (3, repeat('bad too',1));
connection master;
DROP TABLE IF EXISTS t1, t2;
--sync_slave_with_master
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test
index 9cf4f8dba0b..67101c11d26 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test
@@ -11,3 +11,4 @@ let $engine_type = 'NDB';
-- source extra/rpl_tests/rpl_extraSlave_Col.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test
index c02d82e2dc9..ca1f1d9463f 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test
@@ -10,4 +10,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_row_func003.test
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test
index 99c9df40094..da22e0ae8f8 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test
@@ -106,4 +106,4 @@ connection master;
DROP TABLE IF EXISTS t1;
# End of 5.1 Test
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
index 92374c26742..b9ad0f6375e 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
@@ -13,3 +13,4 @@
-- source include/ndb_master-slave.inc
SET storage_engine=innodb;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test
index fcc2928c5e2..eaf34a0131d 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test
@@ -64,3 +64,4 @@ connection master;
drop table t1,t2;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test
index e6c66011fb7..edbc3d17334 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test
@@ -6,3 +6,4 @@
let $engine_type=NDB;
let $engine_type2=myisam;
-- source extra/rpl_tests/rpl_insert_ignore.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test
index 75fe2688b4a..8411daa5e88 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test
@@ -64,3 +64,4 @@ CREATE TABLE SERVER
#
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/DbCreate >> $NDB_TOOLS_OUTPUT
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/DbAsyncGenerator >> $NDB_TOOLS_OUTPUT
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test
index d32a05bf92a..7ce9d17a0c9 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test
@@ -11,3 +11,4 @@
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_log.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test
index 22ccabe3745..52fd19669bd 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test
@@ -448,16 +448,13 @@ SELECT * FROM tndb ORDER BY a;
--echo [on slave]
--sync_slave_with_master
-let $diff_table_1=master:test.tmyisam;
-let $diff_table_2=slave:test.tmyisam;
+let $diff_tables= master:tmyisam, slave:tmyisam;
source include/diff_tables.inc;
-let $diff_table_1=master:test.tinnodb;
-let $diff_table_2=slave:test.tinnodb;
+let $diff_tables= master:tinnodb, slave:tinnodb;
source include/diff_tables.inc;
-let $diff_table_1=master:test.tndb;
-let $diff_table_2=slave:test.tndb;
+let $diff_tables= master:tndb, slave:tndb;
source include/diff_tables.inc;
@@ -470,4 +467,4 @@ DROP TABLE tmyisam, tinnodb, tndb;
--echo [on slave]
sync_slave_with_master;
-source include/master-slave-end.inc;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test
index 7d7cd5770cf..d994393d75a 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test
@@ -316,28 +316,22 @@ SELECT * FROM ndb_myisam ORDER BY a;
SELECT * FROM innodb_ndb ORDER BY a;
SELECT * FROM ndb_innodb ORDER BY a;
-let $diff_table_1=master:test.myisam_innodb;
-let $diff_table_2=slave:test.myisam_innodb;
+let $diff_tables= master:myisam_innodb, slave:myisam_innodb;
source include/diff_tables.inc;
-let $diff_table_1=master:test.innodb_myisam;
-let $diff_table_2=slave:test.innodb_myisam;
+let $diff_tables= master:innodb_myisam, slave:innodb_myisam;
source include/diff_tables.inc;
-let $diff_table_1=master:test.myisam_ndb;
-let $diff_table_2=slave:test.myisam_ndb;
+let $diff_tables= master:myisam_ndb, slave:myisam_ndb;
source include/diff_tables.inc;
-let $diff_table_1=master:test.ndb_myisam;
-let $diff_table_2=slave:test.ndb_myisam;
+let $diff_tables= master:ndb_myisam, slave:ndb_myisam;
source include/diff_tables.inc;
-let $diff_table_1=master:test.innodb_ndb;
-let $diff_table_2=slave:test.innodb_ndb;
+let $diff_tables= master:innodb_ndb, slave:innodb_ndb;
source include/diff_tables.inc;
-let $diff_table_1=master:test.ndb_innodb;
-let $diff_table_2=slave:test.ndb_innodb;
+let $diff_tables= master:ndb_innodb, slave:ndb_innodb;
source include/diff_tables.inc;
@@ -347,3 +341,4 @@ drop table myisam_innodb, innodb_myisam;
drop table myisam_ndb, ndb_myisam;
drop table innodb_ndb, ndb_innodb;
sync_slave_with_master;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
index e9107fd90bd..65093319fbe 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
@@ -1,6 +1,11 @@
--source include/have_multi_ndb.inc
--source include/have_binlog_format_mixed_or_row.inc
---source include/ndb_master-slave.inc
+
+# We need server 3 later on in this test.
+--let $rpl_server_count= 3
+--source include/master-slave.inc
+
+--connection master
# note: server2 is another "master" connected to the master cluster
@@ -38,13 +43,12 @@ let $the_pos= `SELECT @the_pos` ;
let $the_file= `SELECT @the_file` ;
# now connect the slave to the _other_ "master"
-connection slave;
---replace_result $MASTER_MYPORT1 <MASTER_PORT1> $the_pos MASTER_LOG_POS $the_file MASTER_LOG_FILE
-eval CHANGE MASTER TO
- master_port=$MASTER_MYPORT1,
- master_log_file = '$the_file',
- master_log_pos = $the_pos ;
-start slave;
+--let $rpl_topology= 3->2
+--let $rpl_master_log_file= 2:$the_file
+--let $rpl_master_log_pos= 2:$the_pos
+--source include/rpl_change_topology.inc
+--connection slave
+--source include/start_slave.inc
# insert some more values on the first master
connection master;
@@ -61,7 +65,6 @@ connection server2;
INSERT INTO t1 VALUES ("row5","E",5);
SELECT * FROM t1 ORDER BY c3;
sync_slave_with_master;
-connection slave;
SELECT * FROM t1 ORDER BY c3;
--echo ==== clean up ====
@@ -69,4 +72,4 @@ connection server2;
DROP TABLE t1;
sync_slave_with_master;
-STOP SLAVE;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test
index 6b86f8146f8..40ec8d2b6c5 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test
@@ -11,3 +11,4 @@
let $engine_type=NDB;
--source extra/rpl_tests/rpl_multi_update2.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test
index f144965e9b0..fc618becd3c 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test
@@ -6,3 +6,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_multi_update3.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
index a9e56d17139..33a4b029914 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
@@ -12,3 +12,4 @@
-- source include/ndb_master-slave.inc
SET storage_engine=myisam;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test
index b0b9dd9e7da..83cc64993b0 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test
@@ -7,3 +7,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_relayrotate.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test
index 1f305d20c92..a88ac18f711 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test
@@ -55,3 +55,4 @@ DROP DATABASE IF EXISTS replica;
--sync_slave_with_master
# End 5.1 test case
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test
index f5b05080131..083b1e59242 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test
@@ -5,3 +5,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_row_001.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test
index 454807d9591..41641ec793b 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test
@@ -4,3 +4,4 @@
-- let $engine= NDB
-- source extra/rpl_tests/rpl_set_null.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test
index 6453f45aa75..cff9bb7837a 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test
@@ -8,3 +8,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_sp003.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test
index c2c7be6112c..5ad34c6a573 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test
@@ -8,3 +8,4 @@
-- source include/ndb_master-slave.inc
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_sp006.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test
index 7c65e04717a..60d7d6b3d10 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test
@@ -35,3 +35,4 @@ SET binlog_format = STATEMENT;
let $off_set = 6;
let $rpl_format = 'SBR';
--source extra/rpl_tests/rpl_ndb_apply_status.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test
index b91ff198c51..f3722a1c8a4 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test
@@ -98,3 +98,5 @@ reset slave;
select * from mysql.ndb_apply_status;
# End 5.1 Test
+--let $rpl_only_running_threads= 1
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test
index 7f7e08685bf..a283aa60504 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test
@@ -12,3 +12,4 @@
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_trig004.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test b/mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test
index 543393b980d..fdb0293676b 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test
@@ -9,3 +9,4 @@
--exec echo Running mgmapi_logevent
--exec $NDB_EXAMPLES_DIR/mgmapi_logevent/mgmapi_logevent "$NDB_CONNECTSTRING" "$NDB_CONNECTSTRING_SLAVE" 1 >> $NDB_EXAMPLES_OUTPUT
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test
index 3a17de1bc9e..ac31e4de654 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test
@@ -5,4 +5,4 @@
let $type= 'NDB' ;
let $extra_index= ;
-- source extra/rpl_tests/rpl_row_basic.test
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test
index 898bf310dc5..a539720d6e7 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test
@@ -63,4 +63,4 @@ connection master;
DROP TABLE t1;
source include/show_binlog_events.inc;
--- source include/master-slave-end.inc
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test b/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test
index 549227db61a..7c9684d5cbb 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test
@@ -9,3 +9,4 @@
--source include/have_binlog_format_mixed.inc
--source include/big_test.inc
--source suite/rpl_ndb/t/rpl_truncate_7ndb.test
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/sys_vars/t/rpl_init_slave_func.test b/mysql-test/suite/sys_vars/t/rpl_init_slave_func.test
index 2cc31c91388..d4607dc6bf1 100644
--- a/mysql-test/suite/sys_vars/t/rpl_init_slave_func.test
+++ b/mysql-test/suite/sys_vars/t/rpl_init_slave_func.test
@@ -100,3 +100,4 @@ SET @@global.init_slave= @start_init_slave;
# End of functionality Testing for init_slave #
##################################################
+--source include/rpl_end.inc
diff --git a/mysql-test/t/init_file.test b/mysql-test/t/init_file.test
index 7eb5381651d..d73a9c60e8e 100644
--- a/mysql-test/t/init_file.test
+++ b/mysql-test/t/init_file.test
@@ -33,4 +33,4 @@ drop table t1, t2;
# MTR will restart server anyway, but by forcing it we avoid being warned
# about the apparent side effect
-call mtr.force_restart();
+--source include/force_restart.inc