Skip to content

feat(headless): pump the streamer in WARMUP + add bOnSideStand differ… - #1

Open
paulostation wants to merge 1 commit into
j0y:mainfrom
paulostation:feat/streaming-pump-and-bike-diff-test
Open

feat(headless): pump the streamer in WARMUP + add bOnSideStand differ…#1
paulostation wants to merge 1 commit into
j0y:mainfrom
paulostation:feat/streaming-pump-and-bike-diff-test

Conversation

@paulostation

Copy link
Copy Markdown

…ential test

Two changes plus reproduction docs, on top of j0y base 5650884.

  1. game_tests.cpp: the WARMUP phase now services the on-demand streaming queue (CStreaming::LoadRequestedModels() per frame, LoadAllRequestedModels(false) flush before tests). Without this the headless frame loop never drives the queue -- requested models never stream in (census loaded_bikes=0), silently blocking every test that needs a streamed model. Safe here: WARMUP runs before SuspendOtherThreads, so CdStreamThread is still alive. Same calls the game itself uses (Pools.cpp, Game.cpp).

  2. test_CCarCtrl_GetNewVehicle_diff.cpp: behavioural differential test for CCarCtrl::GetNewVehicleDependingOnCarModel (0x421440, paulo-sysframe PR feat(headless): pump the streamer in WARMUP + add bOnSideStand differ… #1). Runs the ORIGINAL machine code (via HookDisableGuard) vs the reversed C++ on each loaded bike and compares bikeFlags.bOnSideStand, with vacuous-pass guards (compared/bikesSeen/onSideStandTrue/origSetFlag all > 0).

  3. docs/: reproduction manifest (exact commands, GAME_TEST_REQUEST_MODELS + WARMUP_FRAMES, expected 34-assertion PASS, and a falsification check), the PR#1 CarCtrl reversal diff for reference, and the write-up.

Result: PASS CCarCtrl/Diff_GetNewVehicleDependingOnCarModel (34 assertions), STATUS=PASS, reproduced twice. PR #1's bOnSideStand write proven faithful to the original, headless.

…ential test

Two changes plus reproduction docs, on top of j0y base 5650884.

1. game_tests.cpp: the WARMUP phase now services the on-demand streaming queue
   (CStreaming::LoadRequestedModels() per frame, LoadAllRequestedModels(false)
   flush before tests). Without this the headless frame loop never drives the
   queue -- requested models never stream in (census loaded_bikes=0), silently
   blocking every test that needs a streamed model. Safe here: WARMUP runs
   before SuspendOtherThreads, so CdStreamThread is still alive. Same calls the
   game itself uses (Pools.cpp, Game.cpp).

2. test_CCarCtrl_GetNewVehicle_diff.cpp: behavioural differential test for
   CCarCtrl::GetNewVehicleDependingOnCarModel (0x421440, paulo-sysframe PR j0y#1).
   Runs the ORIGINAL machine code (via HookDisableGuard) vs the reversed C++ on
   each loaded bike and compares bikeFlags.bOnSideStand, with vacuous-pass guards
   (compared/bikesSeen/onSideStandTrue/origSetFlag all > 0).

3. docs/: reproduction manifest (exact commands, GAME_TEST_REQUEST_MODELS +
   WARMUP_FRAMES, expected 34-assertion PASS, and a falsification check), the
   PR#1 CarCtrl reversal diff for reference, and the write-up.

Result: PASS CCarCtrl/Diff_GetNewVehicleDependingOnCarModel (34 assertions),
STATUS=PASS, reproduced twice. PR j0y#1's bOnSideStand write proven faithful to
the original, headless.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant