mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
BUG#25211: events_bugs.test fails on sapsrv1
The problem was that the events_bugs test could randomly fail due to races in the test case. The solution is to replace fixed sleeps with reliable polling of a certain state to settle. For that, a new auxiliary script include/wait_condition.inc is used, that allows waiting for a given query to return true.
This commit is contained in:
39
mysql-test/include/wait_condition.inc
Normal file
39
mysql-test/include/wait_condition.inc
Normal file
@@ -0,0 +1,39 @@
|
||||
# include/wait_condition.inc
|
||||
#
|
||||
# SUMMARY
|
||||
#
|
||||
# Waits until the passed statement returns true, or the operation
|
||||
# times out.
|
||||
#
|
||||
# USAGE
|
||||
#
|
||||
# let $wait_condition=
|
||||
# SELECT c = 3 FROM t;
|
||||
# --source include/wait_condition.inc
|
||||
#
|
||||
# EXAMPLE
|
||||
# events_bugs.test
|
||||
#
|
||||
|
||||
--disable_query_log
|
||||
|
||||
let $wait_counter= 300;
|
||||
while ($wait_counter)
|
||||
{
|
||||
let $success= `$wait_condition`;
|
||||
if ($success)
|
||||
{
|
||||
let $wait_counter= 0;
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
real_sleep 0.1;
|
||||
dec $wait_counter;
|
||||
}
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
echo Timeout in wait_condition.inc for $wait_condition;
|
||||
}
|
||||
|
||||
--enable_query_log
|
||||
Reference in New Issue
Block a user