From: Ian Jackson Date: Sat, 13 Mar 2021 14:56:10 +0000 (+0000) Subject: atpitests: Make game_synch an extension method X-Git-Tag: otter-0.4.0~123 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=8168f18600199314829599bb05e395f1fde9f1f5;p=otter.git atpitests: Make game_synch an extension method Signed-off-by: Ian Jackson --- diff --git a/apitest.rs b/apitest.rs index fd333209..cb474c80 100644 --- a/apitest.rs +++ b/apitest.rs @@ -744,26 +744,28 @@ 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 +#[ext(pub)] +impl MgmtChannel { + #[throws(AE)] + fn game_synch(&mut self, game: InstanceName) -> Generation { + let cmd = MgmtCommand::AlterGame { + how: MgmtGameUpdateMode::Online, + insns: vec![ MgmtGameInstruction::Synch ], + game + }; + let gen = if_chain!{ + let resp = self.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 ==================== diff --git a/apitest/at-otter.rs b/apitest/at-otter.rs index 0c8fa5c9..f1003d82 100644 --- a/apitest/at-otter.rs +++ b/apitest/at-otter.rs @@ -308,7 +308,7 @@ impl Session { { let exp = { let mut su = self.su_rc.borrow_mut(); - mgmt_game_synch(&mut su.mgmt_conn, TABLE.parse().unwrap())? + su.mgmt_conn.game_synch(TABLE.parse().unwrap())? }; let efwrap = ef.map(|ef| { move |s: &mut _, g, v: &_| { ef(s,g,v)?; Ok::<_,AE>(None) } diff --git a/wdriver.rs b/wdriver.rs index 4a334a2a..bc838470 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -462,8 +462,7 @@ impl<'g> WindowGuard<'g> { #[throws(AE)] fn synch_raw(&mut self) { - let gen = mgmt_game_synch(&mut self.su.mgmt_conn, - self.w.instance.clone())?; + let gen = self.su.mgmt_conn.game_synch(self.w.instance.clone())?; (|| { loop { let tgen = self.su.driver.execute_async_script(