From: Ian Jackson Date: Sat, 27 Feb 2021 00:46:18 +0000 (+0000) Subject: tests: Break out synch X-Git-Tag: otter-0.4.0~339 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9d4deae7f22bd49ad26ff68bc3eedb1b1cc90ee5;p=otter.git tests: Break out synch Signed-off-by: Ian Jackson --- diff --git a/apitest.rs b/apitest.rs index 4d2f4257..8e906a8e 100644 --- a/apitest.rs +++ b/apitest.rs @@ -786,6 +786,30 @@ impl DirSubst { } } +// -------------------- utilities -------------------- + +#[throws(AE)] +pub fn mgmt_game_synch(chan: &mut MgmtChannel, game: InstanceName) + -> Generation { + let cmd = MgmtCommand::AlterGame { + how: MgmtGameUpdateMode::Online, + insns: vec![ MgmtGameInstruction::Synch ], + game + }; + let gen = if_chain!{ + let resp = chan.cmd(&cmd)?; + if let MgmtResponse::AlterGame { + error: None, + ref responses + } = resp; + if let [MgmtGameResponse::Synch(gen)] = responses[..]; + then { gen } + else { throw!(anyhow!("unexpected resp to synch {:?}", resp)) } + }; + trace!("gen={} ...", gen); + gen +} + // ==================== core entrypoint, for wdriver too ==================== #[throws(AE)] diff --git a/wdriver.rs b/wdriver.rs index 0f5a4224..e171780b 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -462,22 +462,8 @@ impl<'g> WindowGuard<'g> { #[throws(AE)] fn synch_raw(&mut self) { - let cmd = MgmtCommand::AlterGame { - game: self.w.instance.clone(), - how: MgmtGameUpdateMode::Online, - insns: vec![ MgmtGameInstruction::Synch ], - }; - let gen = if_chain!{ - let resp = self.su.mgmt_conn.cmd(&cmd)?; - if let MgmtResponse::AlterGame { - error: None, - ref responses - } = resp; - if let [MgmtGameResponse::Synch(gen)] = responses[..]; - then { gen } - else { throw!(anyhow!("unexpected resp to synch {:?}", resp)) } - }; - trace!("{:?} gen={} ...", self, gen); + let gen = mgmt_game_synch(&mut self.su.mgmt_conn, + self.w.instance.clone())?; (|| { loop { let tgen = self.su.driver.execute_async_script(