Testing duplicate and reordered events for Fairino FR10

LucyAli0219 · 25 Jul 2026, 11:35 UTC

Reply to discussion
LU
LucyAli0219
I'm testing our fixture-check completion reporting tracking offline for a setup using Fairino FR10 in a sample inspection setup with recorded job events, with an inspection coupon as a reference. An earlier attempt's completion incorrectly completes a newer attempt if I deliver it after that attempt starts. I need repeatable delayed and duplicate event tests because the random sleeps aren't reliable.

18 replies

LU
LuisAbbott0086
Replying to LucyAli0219

Save the exact event order. Does your handler match the completion by attempt identity, or just the job label?

9 points
LU
LucyAli0219
Replying to LuisAbbott0086

Our handler matches only the job label. The saved sequence reliably shows the earlier completion arriving after a new attempt begins and being attached to that new attempt.

8 points
LU
LuisAbbott0086
Replying to LucyAli0219

Replay that sequence with explicit attempt matching. Give the harness a clock you advance deliberately; repeatable ordering should cover the race.

21 points
ZA
ZaraBennett0743
Replying to LuisAbbott0086

A deterministic replay covers the schedule you give it. Your wording skips other relevant schedules, including duplicates and acknowledgements arriving after timeout.

6 points
LU
LuisAbbott0086
Replying to ZaraBennett0743

Fair. I meant this reproduced wrong match, not the whole class. Keep it as one named schedule and add duplicates and timeout-then-acknowledgement separately.

20 points
LU
LucyAli0219
Replying to LuisAbbott0086

How should I handle history when the same completion is delivered twice? I'd expect one count change but still want both observations visible.

17 points
LU
LuisAbbott0086
Replying to LucyAli0219

Keep the duplicate in diagnostic history while making the completion update idempotent, so receiving it again doesn't alter the accepted result or count.

10 points
CA
CarlaBarnes0575
Replying to LuisAbbott0086

Idempotent means ignoring it, basically? Or am I missing why you'd log something you ignored?

12 points
LU
LuisAbbott0086
Replying to CarlaBarnes0575

@CarlaBarnes0575 Same effect when applied again. You can observe and log the duplicate without repeating its business effect; those are different actions.

8 points
EL
ElenaAli0253
Replying to LuisAbbott0086

My offline test used to assert only the final count. It missed a duplicate notification because the number happened to stay right.

10 points
LU
LucyAli0219
Replying to ElenaAli0253

I'll include our emitted notifications in the expected result, not just the count. A correct number with a doubled message would still be confusing.

16 points
ZA
ZaraBennett0743
Replying to LucyAli0219

And the timeout case? Waiting too long doesn't tell you whether the remote job completed.

7 points
LU
LucyAli0219
Replying to ZaraBennett0743

@ZaraBennett0743 I'll expect an unknown outcome pending matching evidence, rather than having our test treat a timeout as permission to submit another attempt.

0 points
LU
LuisAbbott0086
Replying to LucyAli0219

@LucyAli0219 Your deterministic schedule can check unknown after the timeout and then deliver the delayed acknowledgement, verifying that it causes only the transition justified by its meaning.

19 points
CA
CarlaBarnes0575
Replying to LuisAbbott0086

An acknowledgement isn't completion, right? I keep mentally jumping from accepted to finished

6 points
LU
LuisAbbott0086
Replying to CarlaBarnes0575

Follow your interface's definitions. If it acknowledges acceptance, it says nothing by itself about completion. Name those events differently in the test.

15 points
LU
LucyAli0219
Replying to LuisAbbott0086

I've isolated the incorrect job-label match in a saved sequence. The remaining duplicate and delayed-event behaviour still needs establishing.

17 points
LU
LuisAbbott0086
Replying to LucyAli0219

The saved wrong-match case is useful progress. It makes sense to keep the broader event handling open.

17 points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.