From: Ian Jackson Date: Wed, 21 Jul 2021 20:09:47 +0000 (+0100) Subject: js test: synch: wait for api queue empty X-Git-Tag: otter-0.7.2~8 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=db9129aa781af008591bdcf3389dbb7eb10b2723;p=otter.git js test: synch: wait for api queue empty Otheerwise we can lose a race, if we somehow keep the browser JS environment and the Otter game server busy enough that the browser doesn't manage to empty its api queue. Signed-off-by: Ian Jackson --- diff --git a/wdriver/wdriver.rs b/wdriver/wdriver.rs index ee2d619f..ec07a46f 100644 --- a/wdriver/wdriver.rs +++ b/wdriver/wdriver.rs @@ -665,10 +665,11 @@ impl<'g> WindowGuard<'g> { ("wanted", &gen.to_string()) ]).subst(r#" var done = arguments[0]; - if (gen >= @wanted@) { done(gen); return; } + function no_queue() { return !api_queue.length && !api_posting; } + if (gen >= @wanted@ && no_queue()) { done(gen); return; } window.test_update_hook = function() { window.test_update_hook = function() { }; - done(gen); + done(no_queue() ? gen : 0); }; "#)? )