From 1562809717d3576a7ef94b20b8f0d282d7c7eb82 Mon Sep 17 00:00:00 2001 From: Eugine Blikh <bigbes@gmail.com> Date: Tue, 2 Jul 2013 01:28:02 +0400 Subject: [PATCH] Fix of race condition in replication/memcached.test, some code cleanup --- test/replication/memcached.test | 35 +++++++++------------------------ 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/test/replication/memcached.test b/test/replication/memcached.test index 691e40a4eb..a8909049e0 100644 --- a/test/replication/memcached.test +++ b/test/replication/memcached.test @@ -22,39 +22,21 @@ replica.deploy("replication/cfg/replica.cfg", replica_memcached = replica.memcached ################################### -def wait_for_lsn(lsn, serv): - serv_admin = serv.admin - while True: - if get_lsn(serv) == lsn: - return lsn - time.sleep(0.01) - -def wait_for_next_lsn(lsn, serv): - serv_admin = serv.admin - while True: - if get_lsn(serv) != lsn: - return lsn - time.sleep(0.01) - def get_lsn(serv): serv_admin = serv.admin resp = exec serv_admin silent "lua box.info.lsn" return yaml.load(resp)[0] -def wait(next = False, serv_master = master, serv_replica = replica): - if next: - lsn = get_lsn(serv_replica) - return wait_for_next_lsn(lsn, serv_replica) - else: - lsn = get_lsn(serv_master) - return wait_for_lsn(lsn, serv_replica) +def wait(serv_master = master, serv_replica = replica): + lsn = get_lsn(serv_master) + serv_replica.wait_lsn(lsn) + return lsn def get_memcached_len(serv): serv_admin = serv.admin resp = exec serv_admin silent "lua box.space[box.cfg.memcached_space]:len()" return yaml.load(resp)[0] - def wait_for_empty_space(serv): serv_admin = serv.admin while True: @@ -102,20 +84,21 @@ exec replica_memcached "get 10\r\n" print """# check that expiration is working properly on replica""" exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0]) -wait() +lsn = wait() exec replica_memcached "get 1\r\n" -wait(True) +replica.wait_lsn(lsn + 1) exec replica_memcached "get 1\r\n" print """# check that expiration is working properly, when replica becomes master""" exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0]) +lsn = wait() replica.reconfigure("replication/cfg/replica_to_master.cfg") exec replica_memcached "get 1\r\n" -wait(True) +replica.wait_lsn(lsn + 1) exec replica_memcached "get 1\r\n" -# resore default suite config +# restore default suite config replica.stop() replica.cleanup(True) master.stop() -- GitLab