test(build): the lift clean-up check stands in for the shared lift store #623

Open
zeldaootr wants to merge 1 commit from zeldaootr/Longshot:fix-lift-cleanup-check-lift-store into main
Contributor

Type: test · Risk: low · Tested on: Linux, no GPU (game-free check) · Needs: none

Why

tests/test_lift_cleanup_error.py has failed on main since the shared lift store merged (#372), so main is red before a release candidate. A review of #372 already noted the same five errors on its head. The build is right; the check runs make_game.py's fresh-lift branch in a namespace of its own and lacked the name that branch now uses. No open pull request or claim covers it.

How to reproduce

Seen on: Linux (Ubuntu 24.04), no GPU
Settings and switches: none
Steps: on main aa95d35f, run python -I -B tests/test_lift_cleanup_error.py
Expected: 9 tests OK, as on 86c04034, the commit before #372
Actual: FAILED (errors=5): NameError: name '_lift_store' is not defined at lifts = _lift_store.root() (nx2/make_game.py)

What changed

Test-only: the check's namespace gets a _lift_store whose root() is None, the store unset (LONGSHOT_LIFT_STORE empty), which is the path every one of its cases is about. No product file changes.

  • tests/test_lift_cleanup_error.py: setUp adds _lift_store=types.SimpleNamespace(root=lambda: None); every assertion stays as it was.

Measurements

Verdict: passes: the check fails on main and passes on this branch in two interleaved rounds.

Hardware: Linux (Ubuntu 24.04, kernel 6.8), x86-64, no GPU used; Python 3.15
Scene: no game: the game-free check
Method: the check run alone, round 1 on main then this branch, round 2 the same again; its unittest errors per run
How to reproduce: python -I -B tests/test_lift_cleanup_error.py on each commit

Before: main @ aa95d35f After: this PR @ 1075bf13
Errors of 9 cases, round 1 / round 2 5 / 5 0 / 0
main@aa95d35f r1 test_lift_cleanup_error.py none rc=1 | FAILED (errors=5)
main@aa95d35f r2 test_lift_cleanup_error.py none rc=1 | FAILED (errors=5)
fix-lift-cleanup-check-lift-store@1075bf13 r1 test_lift_cleanup_error.py none rc=0 | OK
fix-lift-cleanup-check-lift-store@1075bf13 r2 test_lift_cleanup_error.py none rc=0 | OK

Flags and settings

None

Testing

Tested: on Linux, the check failing on main aa95d35f and passing here in two interleaved rounds (before this rebase, the same on main 6c9edffe at c64817af); it passes at 86c04034 and fails at 2d37cb42 (#372's merge), which is what turned it red. The full suite (python -I -B tests/run_all.py, Linux, LONGSHOT_VULKAN_HEADERS set) on main 6c9edffe with this and the six other red-check repairs from the same sweep merged locally (1ba90202, not pushed): 525 passed, 4 failed, 51 skipped. Three of the failures fail on main too and have their own pull requests: tests/test_walk_key.py (#497), tests/test_cpm_discovery.py (#561), tests/test_make_game_cache.py (#592). The fourth, tests/test_crash_record.py, timed out waiting 10 s for a signalled child under load and passes alone, twice. Rebased since onto main aa95d35f, the commit re-authored under the forge's noreply address: its change is identical to before by git patch-id; on aa95d35f the check also ran through the runner with g++ 13.3 and with clang 23.1.5, failing on main and passing here.

Not tested: Windows: the change is a name in the check's Python namespace, the same on both systems. The shared-store path itself (LONGSHOT_LIFT_STORE set) is not what this check covers.

Must be tested: None

Risks

What could break: only this check.

Turning it off: revert the commit

Compatibility: Nothing changes

Checklist

Everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description) of the status line's type.
  • Why gives the reason plainly and links the issues that fit (the tracker searched).
  • Measurements has a verdict, or one line saying why there is nothing to measure.
  • Testing names what was tested, what wasn't, and what must still be tested, where and how.
  • Rebased on current main. Onto main aa95d35f with no conflict; the change is identical to before by git patch-id.
  • python -I -B tests/run_all.py passes (any failure that also fails on main is named). The full run is the one in Testing, on main 6c9edffe; after the rebase onto aa95d35f, the changed check through the runner with g++ and clang, as above.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

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.
**Type:** test · **Risk:** low · **Tested on:** Linux, no GPU (game-free check) · **Needs:** none ## Why `tests/test_lift_cleanup_error.py` has failed on `main` since the shared lift store merged (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/372), so `main` is red before a release candidate. A review of #372 already noted the same five errors on its head. The build is right; the check runs `make_game.py`'s fresh-lift branch in a namespace of its own and lacked the name that branch now uses. No open pull request or claim covers it. ## How to reproduce **Seen on:** Linux (Ubuntu 24.04), no GPU **Settings and switches:** none **Steps:** on `main` aa95d35f, run `python -I -B tests/test_lift_cleanup_error.py` **Expected:** 9 tests OK, as on 86c04034, the commit before #372 **Actual:** `FAILED (errors=5)`: `NameError: name '_lift_store' is not defined` at `lifts = _lift_store.root()` (nx2/make_game.py) ## What changed Test-only: the check's namespace gets a `_lift_store` whose `root()` is `None`, the store unset (`LONGSHOT_LIFT_STORE` empty), which is the path every one of its cases is about. No product file changes. - `tests/test_lift_cleanup_error.py`: `setUp` adds `_lift_store=types.SimpleNamespace(root=lambda: None)`; every assertion stays as it was. ## Measurements **Verdict:** passes: the check fails on `main` and passes on this branch in two interleaved rounds. Hardware: Linux (Ubuntu 24.04, kernel 6.8), x86-64, no GPU used; Python 3.15 Scene: no game: the game-free check Method: the check run alone, round 1 on main then this branch, round 2 the same again; its unittest errors per run How to reproduce: `python -I -B tests/test_lift_cleanup_error.py` on each commit | | Before: main @ aa95d35f | After: this PR @ 1075bf13 | |---|---|---| | Errors of 9 cases, round 1 / round 2 | 5 / 5 | 0 / 0 | ``` main@aa95d35f r1 test_lift_cleanup_error.py none rc=1 | FAILED (errors=5) main@aa95d35f r2 test_lift_cleanup_error.py none rc=1 | FAILED (errors=5) fix-lift-cleanup-check-lift-store@1075bf13 r1 test_lift_cleanup_error.py none rc=0 | OK fix-lift-cleanup-check-lift-store@1075bf13 r2 test_lift_cleanup_error.py none rc=0 | OK ``` ### Flags and settings None ## Testing **Tested:** on Linux, the check failing on main aa95d35f and passing here in two interleaved rounds (before this rebase, the same on main 6c9edffe at c64817af); it passes at 86c04034 and fails at 2d37cb42 (#372's merge), which is what turned it red. The full suite (`python -I -B tests/run_all.py`, Linux, `LONGSHOT_VULKAN_HEADERS` set) on main 6c9edffe with this and the six other red-check repairs from the same sweep merged locally (1ba90202, not pushed): 525 passed, 4 failed, 51 skipped. Three of the failures fail on main too and have their own pull requests: `tests/test_walk_key.py` (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/497), `tests/test_cpm_discovery.py` (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/561), `tests/test_make_game_cache.py` (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/592). The fourth, `tests/test_crash_record.py`, timed out waiting 10 s for a signalled child under load and passes alone, twice. Rebased since onto main aa95d35f, the commit re-authored under the forge's noreply address: its change is identical to before by `git patch-id`; on aa95d35f the check also ran through the runner with g++ 13.3 and with clang 23.1.5, failing on main and passing here. **Not tested:** Windows: the change is a name in the check's Python namespace, the same on both systems. The shared-store path itself (`LONGSHOT_LIFT_STORE` set) is not what this check covers. **Must be tested:** None ## Risks **What could break:** only this check. **Turning it off:** revert the commit **Compatibility:** Nothing changes ## Checklist ### Everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`) of the status line's type. - [x] Why gives the reason plainly and links the issues that fit (the tracker searched). - [x] Measurements has a verdict, or one line saying why there is nothing to measure. - [x] Testing names what was tested, what wasn't, and what must still be tested, where and how. - [x] Rebased on current `main`. Onto main aa95d35f with no conflict; the change is identical to before by `git patch-id`. - [x] `python -I -B tests/run_all.py` passes (any failure that also fails on `main` is named). The full run is the one in Testing, on main 6c9edffe; after the rebase onto aa95d35f, the changed check through the runner with g++ and clang, as above. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### When it applies - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] Numbers from the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
give the lift clean-up check a _lift_store stand-in
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 4s
Website / Website on Cloudflare (pull_request_target) Has been skipped
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
c64817af7a
Assisted-by: Claude

#372 made the fresh-lift branch in `make_game.main` ask `_lift_store.root()` for a shared lift; the check runs that branch in a namespace without it, so five of its nine cases stopped on a NameError. The stand-in is the store unset, the path every case is about.
zeldaootr force-pushed fix-lift-cleanup-check-lift-store from c64817af7a
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 4s
Website / Website on Cloudflare (pull_request_target) Has been skipped
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 1075bf13eb
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Guide screenshots / Guide images and local UI source review (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 4s
2026-11-15 17:12:21 +00:00
Compare
Author
Contributor

Rebased onto main aa95d35f (head 1075bf13); the commits are re-authored with the forge's noreply address: no code change, the same patches by git patch-id.
Test re-run: test_lift_cleanup_error fails on main aa95d35f (errors=5) and passes here, two interleaved rounds, and through the runner with g++ and clang; the description names the new commit.

Rebased onto `main` aa95d35f (head 1075bf13); the commits are re-authored with the forge's noreply address: no code change, the same patches by `git patch-id`. Test re-run: `test_lift_cleanup_error` fails on main aa95d35f (errors=5) and passes here, two interleaved rounds, and through the runner with g++ and clang; the description names the new commit.
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Guide screenshots / Guide images and local UI source review (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 4s
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
Some workflows are waiting to be reviewed.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'fix-lift-cleanup-check-lift-store:zeldaootr-fix-lift-cleanup-check-lift-store'
git switch 'zeldaootr-fix-lift-cleanup-check-lift-store'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!623
No description provided.