From c2b8a63ccf70164962fcee3d03824d60f5071b43 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 30 Oct 2006 14:42:28 +0100 Subject: [PATCH] Bug#18654 Test is timing-dependent and fails from scheduling effects (?) - Wait in loop with small sleep until tables has been renamed mysql-test/t/rename.test: To avoid scheduling effects wait for the tables to be renamed in a loop with small sleeps before continuing with tests mysql-test/include/wait_for_query_to_suceed.inc: New BitKeeper file ``mysql-test/include/wait_for_query_to_suceed.inc'' --- .../include/wait_for_query_to_suceed.inc | 25 +++++++++++++++++++ mysql-test/t/rename.test | 12 ++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 mysql-test/include/wait_for_query_to_suceed.inc diff --git a/mysql-test/include/wait_for_query_to_suceed.inc b/mysql-test/include/wait_for_query_to_suceed.inc new file mode 100644 index 00000000000..6ac1144620e --- /dev/null +++ b/mysql-test/include/wait_for_query_to_suceed.inc @@ -0,0 +1,25 @@ +# +# Run a query over and over until it suceeds ot 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 suceed"); + } +} +enable_abort_on_error; +enable_query_log; +enable_result_log; diff --git a/mysql-test/t/rename.test b/mysql-test/t/rename.test index 5caecef176e..b0fb60c0ee4 100644 --- a/mysql-test/t/rename.test +++ b/mysql-test/t/rename.test @@ -43,8 +43,8 @@ select * from t3; drop table if exists t1,t2,t3,t4; # -# Test-case for Bug #2397 RENAME TABLES is not blocked by -# FLUSH TABLES WITH READ LOCK +# Bug #2397 RENAME TABLES is not blocked by +# FLUSH TABLES WITH READ LOCK # connect (con1,localhost,root,,); @@ -58,10 +58,14 @@ FLUSH TABLES WITH READ LOCK; connection con1; send RENAME TABLE t1 TO t2, t3 to t4; connection con2; -sleep 1; show tables; UNLOCK TABLES; -sleep 1; + +# Wait for the the tables to be renamed +# i.e the query below succeds +let $query= select * from t2, t4; +source include/wait_for_query_to_suceed.inc; + show tables; drop table t2, t4;