summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_blob.test12
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_func003.test5
-rw-r--r--mysql-test/extra/rpl_tests/rpl_row_sp003.test5
-rw-r--r--mysql-test/extra/rpl_tests/rpl_stm_000001.test4
-rw-r--r--mysql-test/extra/rpl_tests/rpl_trig004.test5
-rw-r--r--mysql-test/include/wait_for_ndb_to_binlog.inc41
6 files changed, 53 insertions, 19 deletions
diff --git a/mysql-test/extra/rpl_tests/rpl_row_blob.test b/mysql-test/extra/rpl_tests/rpl_row_blob.test
index 080df7d75dd..762daa816c0 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_blob.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_blob.test
@@ -36,7 +36,7 @@ SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
save_master_pos;
connection slave;
sync_with_master;
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
--echo
--echo **** Data Insert Validation Slave Section test.t1 ****
--echo
@@ -56,12 +56,10 @@ UPDATE t1 set data=repeat('c',17*1024) where c1 = 2;
--echo
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
-# Sleep is needed for NDB to allow time for
-# Injector thread to populate the bin log.
save_master_pos;
connection slave;
sync_with_master;
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
--echo
--echo **** Data Update Validation Slave Section test.t1 ****
--echo
@@ -132,7 +130,7 @@ FROM test.t2 WHERE c1=2;
save_master_pos;
connection slave;
sync_with_master;
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
--echo
--echo **** Data Insert Validation Slave Section test.t2 ****
--echo
@@ -155,12 +153,10 @@ SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
FROM test.t2 WHERE c1=1;
SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
FROM test.t2 WHERE c1=2;
-# Sleep is needed for NDB to allow time for
-# Injector thread to populate the bin log.
save_master_pos;
connection slave;
sync_with_master;
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
--echo
--echo **** Data Update Validation Slave Section test.t2 ****
--echo
diff --git a/mysql-test/extra/rpl_tests/rpl_row_func003.test b/mysql-test/extra/rpl_tests/rpl_row_func003.test
index 8ee2d863527..9d4b516f96f 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_func003.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_func003.test
@@ -44,9 +44,10 @@ END|
delimiter ;|
INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
-sleep 6;
+let $wait_time= 6;
+--source include/wait_for_ndb_to_binlog.inc
INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
-sleep 6;
+--source include/wait_for_ndb_to_binlog.inc
#Select in this test are used for debugging
#select * from test.t1;
diff --git a/mysql-test/extra/rpl_tests/rpl_row_sp003.test b/mysql-test/extra/rpl_tests/rpl_row_sp003.test
index 7cf3d0fa19c..7bc326a3791 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_sp003.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_sp003.test
@@ -41,10 +41,7 @@ CALL test.p2();
SELECT release_lock("test");
SELECT * FROM test.t1;
#show binlog events;
-# Added sleep for use with NDB to ensure that
-# the injector thread will populate log before
-# we switch to the slave.
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
sync_slave_with_master;
connection slave;
SELECT * FROM test.t1;
diff --git a/mysql-test/extra/rpl_tests/rpl_stm_000001.test b/mysql-test/extra/rpl_tests/rpl_stm_000001.test
index 1f5eb5786dd..61d443158d0 100644
--- a/mysql-test/extra/rpl_tests/rpl_stm_000001.test
+++ b/mysql-test/extra/rpl_tests/rpl_stm_000001.test
@@ -68,8 +68,8 @@ enable_query_log;
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;
+connection master;
+--source include/sync_slave_io_with_master.inc
unlock tables;
#test handling of aborted connection in the middle of update
diff --git a/mysql-test/extra/rpl_tests/rpl_trig004.test b/mysql-test/extra/rpl_tests/rpl_trig004.test
index 45cb11f2787..1a738db27fc 100644
--- a/mysql-test/extra/rpl_tests/rpl_trig004.test
+++ b/mysql-test/extra/rpl_tests/rpl_trig004.test
@@ -35,9 +35,8 @@ INSERT INTO test.t2 VALUES (1, 0.0);
#show binlog events;
select * from test.t1;
select * from test.t2;
-# Have to sleep for a few seconds to allow
-# NDB injector thread to populate binlog
-sleep 10;
+let $wait_time= 10;
+--source include/wait_for_ndb_to_binlog.inc
sync_slave_with_master;
connection slave;
select * from test.t1;
diff --git a/mysql-test/include/wait_for_ndb_to_binlog.inc b/mysql-test/include/wait_for_ndb_to_binlog.inc
new file mode 100644
index 00000000000..77da6d62154
--- /dev/null
+++ b/mysql-test/include/wait_for_ndb_to_binlog.inc
@@ -0,0 +1,41 @@
+# ==== Purpose ====
+#
+# Several test primitives from mysql-test/extra/rpl_tests
+# shared for test cases for MyISAM, InnoDB, NDB and other
+# engines. But for NDB all events will be added by NDB
+# injector and now there are no way to detect the state of
+# NDB injector therefore this primitive waits 5 sec
+# if engine type is NDB.
+# In future that should be fixed by waiting of proper
+# state of NDB injector.
+#
+# ==== Usage ====
+#
+# let $engine_type= NDB;
+# --source include/wait_for_ndb_to_binlog.inc
+#
+# ==== Parameters =====
+#
+# $engine_type
+# Type of engine. If type is NDB then it waits $wait_time sec
+#
+# $wait_time
+# Test will wait $wait_time seconds
+
+let $_wait_time= 5;
+
+if (!$wait_time) {
+ let $_wait_time= $wait_time;
+}
+
+if (`SELECT UPPER(LEFT('$engine_type',3)) = 'NDB'`) {
+ while (!$_wait_time) {
+ let $_wait_time_internal= 10;
+ while (!$_wait_time_internal) {
+ sleep 0.1;
+ dec $_wait_time_internal;
+ }
+ dec $_wait_time;
+ }
+}
+