chiark / gitweb /
atpitests: Make game_synch an extension method
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Mar 2021 14:56:10 +0000 (14:56 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Mar 2021 14:56:10 +0000 (14:56 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest.rs
apitest/at-otter.rs
wdriver.rs

index fd333209c9249d04c35901fecf536815290ef901..cb474c80703f4eb508fde001ec7661d61d6d73a2 100644 (file)
@@ -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 ====================
index 0c8fa5c9485e8b8639c82a9730b010d5833d495e..f1003d82f3ac0620f1fea10f9d6c013dfde33f74 100644 (file)
@@ -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) }
index 4a334a2a48689d7858d8c76088db701f6c7a0ffa..bc838470a975a398d1d6eb2749bc018b1d6a908f 100644 (file)
@@ -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(