Testing duplicate and reordered events for Fairino FR10

LucyAli0219 · 2026年7月25日 11:35 UTC

回复讨论

主帖中文翻译暂不可用,以下显示英文原文;回复保留原文。 查看英文原文

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 条回复

LU
LuisAbbott0086

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

9分
LU
LucyAli0219

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分
LU
LuisAbbott0086

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

21分
ZA
ZaraBennett0743

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

6分
LU
LuisAbbott0086

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分
LU
LucyAli0219

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分
LU
LuisAbbott0086

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分
CA
CarlaBarnes0575

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

12分
LU
LuisAbbott0086

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

8分
EL
ElenaAli0253

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

10分
LU
LucyAli0219

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分
ZA
ZaraBennett0743

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

7分
LU
LucyAli0219

@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分
LU
LuisAbbott0086

@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分
CA
CarlaBarnes0575

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

6分
LU
LuisAbbott0086

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

15分
LU
LucyAli0219

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

17分
LU
LuisAbbott0086

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

17分

参与讨论

欢迎来到 Application Robot

所有人都可以阅读论坛。登录或注册后即可发起讨论、回复或上传照片。

忘记密码?

注册账号即表示你同意我们的 使用条款 和 社区准则。请阅读我们的 隐私政策 ,了解我们如何处理你的信息。