test(build): isolate shipped-profile lookups in game-free fixtures #592
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
beanstalk: approved @ 1697603
beanstalk: approved @ 2c5a62e
beanstalk: approved @ 4fd82b7
beanstalk: approved @ 64d6d09
beanstalk: approved @ 6f91fae
beanstalk: approved @ 70a78f9
beanstalk: approved @ 8d361dc
beanstalk: approved @ 9d8356e
beanstalk: approved @ abf2227
beanstalk: approved @ d82f202
beanstalk: approved @ e5f1e40
beanstalk: approved @ ee8ab5f
ci: approved
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/macos
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
regression
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!592
Loading…
Reference in a new issue
No description provided.
Delete branch "futondestroyer/Longshot:test/hermetic-vk-profile-fixtures"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type: test · Risk: low · Tested on: Windows 11 build 26300, Python 3.14.7 (game-free) · Needs: none
Why
Two game-free check drivers fail on main after the renderer's committed PGO profile was added. Their authored checkouts are meant to keep real compiler probes out, but the profile helper still looks in the real repository. This restores those checks without changing the player's build or disabling their process-launch guards.
No existing tracker issue was found for
vk_profile_for; this follows the shipped-profile change in #569.How to reproduce
Seen on: Windows 11 build 26300, native Python 3.14.7; no GPU used.
Settings and switches: the check runner's ordinary tool environment; no game or dump.
Steps: On main
5d3ecc78, runpython -I -B tests/run_all.py test_make_game_cache test_linux_preflight test_vk_pgo.Expected: the authored fixtures reach their intended build boundaries without launching a profile-readability compiler probe.
Actual: the cache check stops with
Unexpected process launch; the injected-preflight case records an unexpected compiler process.What changed
Both fixtures now supply their authored checkout explicitly to the real
vk_profile_forhelper, whose default root was bound when the module was imported.functools.partialretains the helper's actual selection and readability behavior; the authored root has no profile to probe.tests/test_make_game_cache.py: bind the profile lookup to the same temporary root already used by the cache fixture.tests/test_linux_preflight.py: bind it to the injected preflight checkout.docs/tested/file.Measurements
Verdict: the two affected check drivers pass in both interleaved comparisons; the full suite has exactly two fewer failures and no new failures.
Hardware: Windows 11 build 26300, native Python 3.14.7, llvm-mingw clang 23.1.5, i7-13700F, 32 GB RAM; no GPU work.
Scene: authored game-free fixtures; no game scene.
Method: main/PR/main/PR runs of the three selected drivers; median failed-driver count below. One complete game-free suite per arm, 12 workers. Same environment; optional NGX SDK variable unset. All logs retained locally.
How to reproduce: the targeted command above, followed by
python -I -B tests/run_all.py --jobs 12on each checkout.5d3ecc78328c326b328c326bis the measured code commit; the following run-record commit changes only documentation. Earlier checks of the same eight-line patch on main414f56e2are retained in six additional records: 532/7/34 before, 534/5/34 after. The final table above uses the refreshed base, including its newer upstream fixture changes. No game-performance claim.Flags and settings
None. No production switch, default, profile or build behavior changes.
Testing
Tested: both interleaved targeted pairs and both refreshed full suites above on native Windows. The remaining seven failures are shared with the clean current-main control:
tests/test_appimage_player_build.py,tests/test_cpm_discovery.py,tests/test_lift_cleanup_error.py,tests/test_oot_state_tap.py,tests/test_release.py,tests/test_tested_configurations.py,tests/test_walk_key.py. No PR-only failure. The original-base comparison also has no PR-only failure. The real tested-configurations renderer accepts all twelve new run fragments; the frozen source table is untouched. The source helpers, process guards and PGO contract check remain in use.Not tested: native Linux execution or a game build. Only Python test-fixture root injection and authored run records change; the Linux-preflight cases use their existing injected Linux environment on Windows. No runtime, native host or profile-selection implementation changes.
Must be tested: None; existing game-free regressions and the unchanged PGO contract check cover this fixture-only change.
Risks
What could break: a future fixture that deliberately adds a profile will invoke the real readability check within its own root, and its existing process guards will still reject an unexpected compiler launch.
Turning it off: revert the fixture commit.
Compatibility: no player-visible behavior, game data, saves, caches, SDKs or renderer ABI changes.
Issues
See #569
Checklist
Everyone
type(scope): description) of the status line's type.main(5d3ecc78for this validation).python -I -B tests/run_all.pypasses (any failure that also fails onmainis named).third_party/untouched (a new folder with aPROVENANCE.mdinstead).When it applies
AI assistance recorded with
Assisted-by:/Co-Authored-By:trailers.Numbers from the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
A file in
docs/tested/for each new measured run (format indocs/tested-configurations.md).A check under
tests/that reads changed source updated in this PR, not weakened.Docs updated.
WIP: test(build): isolate shipped-profile lookups in game-free fixturesto test(build): isolate shipped-profile lookups in game-free fixturesReady for review with refreshed Windows main/PR controls: exactly two check-driver failures removed, no PR-only failures. All twelve game-free run records and the complete checklist are in the description.
zeldaootr referenced this pull request2026-11-15 00:55:49 +00:00
zeldaootr referenced this pull request2026-11-15 00:56:00 +00:00
For the record from Windows: test_make_game_cache and test_linux_preflight also error on Windows since #630 (WinError 32 on work\make_game.lock, 14 and 17 errors). #804 fixes that part. With #804 and this PR's diff together on main
aa95d35f, both checks pass on Windows 11 (17 and 19 tests OK). With either alone, they still fail.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.