chiark / gitweb /
apitest: wip sort out Conflict error on claim
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Mar 2021 12:08:42 +0000 (12:08 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Mar 2021 13:25:33 +0000 (13:25 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/at-otter.rs

index dcfa1e70544b8242506813c2f6e7058bfe93b84d..8cd18a77ef030b0b734e70517c15f5c7473c2758 100644 (file)
@@ -236,6 +236,15 @@ impl Session {
     self.api_piece_op(su, piece, "ungrab", json!({}))?;
   }
 
+  #[throws(AE)]
+  fn api_with_piece_op_synch(&mut self, su: &mut SetupCore, piece: &str,
+                             pathfrag: &str, op: serde_json::Value) {
+    self.api_piece_op(su, piece, "grab", json!({}))?;
+    self.api_piece_op(su, piece, pathfrag, op)?;
+    self.synch(su)?;
+    self.api_piece_op(su, piece, "ungrab", json!({}))?;
+  }
+
   #[throws(AE)]
   fn await_update<
     R,
@@ -351,18 +360,20 @@ impl Ctx {
       .into_inner().unwrap();
     dbg!(&pawns);
 
+    session.api_with_piece_op_synch(&mut self.su, &hand.id, "k", json!({
+      "opname": "claim",
+      "wrc": "Unpredictable",
+    }))?;
+
     for (pawn, &xoffset) in izip!(&pawns, [10,20].iter()) {
       session.api_with_piece_op(&self.su, &pawn.id, "m", json![
         (hand.pos + PosC([xoffset, 0]))?.0
       ])?;
     }
 
-    session.api_with_piece_op(&self.su, &hand.id, "k", json!({
-      "opname": "claim",
-      "wrc": "Unpredictable",
-    }))?;
-
-    session.synch(&mut self.su)?;
+    session.synchx(&mut self.su, |session, gen, k, v| {
+      dbgc!((k, v));
+    })?;
 
     // to repro a bug, have Bob move the RHS pawn out again