Repository navigation
test(ios): replay the round engine vectors through the round adapter - #681
Conversation
round_replay_test compiles the unchanged RCTPushyOrchestrator round adapter (runOnce, perform:, download:, commit:, finishRound:) extracted by extract.py, with a scripted flowcore::StepRound playing each trace of round-engine-vectors.json and the IO faked from the trace's next event. It checks every event the adapter answers with, the sticky crash-hold and forceActivate flags, the arguments each command ran with, the start facts, the host result, the unactivated hash and the breadcrumb. 30 traces replay, crash hold, forceActivate, deadlines and timeouts included. A drop-config-changed mutant joins the negative controls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump package.json and harmony/pushy/oh-package.json5 together, with the bilingual release notes. Ships everything since 10.60.0: the shared native round engine (#673-#681), the cross-platform alignment and fixes (#664, #666, #671, #687, #688), the JS client fixes and split (#667, #684, #685), the bounded host prepareBundle (#669), the generated cross-platform contract (#683, #686) and the trimmed npm package (#670). Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
scripts/tests/ios-purge-restore/round_replay_test.mm, built byscripts/test-ios-purge-restore.sh(so the existingNative purge-restore orderingCI job runs it, with ASan/UBSan). It compiles the unchangedRCTPushyOrchestratorround adapter —runOnce,perform:,download:,commit:,finishRound:,PushyWaitSecondsand their globals, extracted byextract.pyintoround*.inc— against a scriptedflowcore::StepRound. No production code changes.cpp/update_flow_core/tests/round-engine-vectors.jsonthe engine returns the trace's commands and the IO (PushyHttpRequest, install check,RCTPushyInstaller fetch,commitRoundWithGeneration:, monotonic clock) is faked from the trace's next event. Checked: every answered event (type/text/installed/ok/code/timedOut/reason/error/activated/now,ok/codeas the engine reads them), stickycrashHold/forceActivate, the arguments each command ran with, the start facts, the host result, the remembered unactivated hash, the breadcrumb.harmonySyncRound.test.tsand Android'sSyncRoundReplayTest(test(android): replay the round engine vectors through the sync adapter #680).drop-config-changed(VERIFY_REGRESSIONS): a lost commit reported withoutreason: "config_changed"fails the config-change trace.Test plan
SANITIZE=1 VERIFY_REGRESSIONS=1 bash scripts/test-ios-purge-restore.sh: all orderings,round replay: 30 rounds, all seven negative controls detected🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by CodeRabbit