Skip to content

test: repair source fixtures after recent main merges - #2648

Merged
hckrman101 merged 6 commits into
NotRexed:mainfrom
mooki000:test/main-source-fixtures
Nov 12, 2026
Merged

hckrman101 merged 6 commits into
NotRexed:mainfrom
mooki000:test/main-source-fixtures

Conversation

@mooki000

Copy link
Copy Markdown
Contributor

What this is for: restore ten game-free checks whose extracted fixtures or expectations no longer match intentional changes on main; main's CI log shows these failures. What is measured: those ten checks on Linux with GCC 16.2.1 and Clang 23.1.3, plus the strict full suite and deliberate regression mutations, as detailed below. Not measured: a game run, Windows execution, audio output or GPU behavior; no production file changes in this diff.

Cause and changes

Each row is a separate commit, naming the change that made the fixture stale; the quoted diagnostics come from main's failed jobs.

Introduced by Checks / CI diagnostic Repair
#1544, after #2042's switch helper audio_aux, audio_biquad: implicit declaration of function ‘env_on’ Include the real helper before the extracted DSP.
#2116 display_startup_failure, wayland_libdecor_hint: use of undeclared identifier 'window_title' Extract the real title helper along with its callers.
#1906 texel_buffer_ownership: use of undeclared identifier 'dead_import_bytes' Model the counter and check that it stays charged until completion.
#2458 readback_part: extraneous closing brace ('}') Select the complete wait_recorded definition, not its new forward declaration.
#2574 dlss_checks: FAIL under a third wide at line 40; framegen_preset / rumble_menu: undeclared temporal_reset_failure Check both sides of the intended two-pixel tolerance; supply a counted reset hook and exercise the real scaling rows.
#2435 mods_size_table: undefined reference to hos_xinput_pads Supply the fixture's no-controller answer; retain real merge and routing checks.

The diff retains the existing assertions: no check is deleted or skipped, and it does not revert the production behavior named above.

How it was tested

Recorded on 2026-11-11, Linux kernel 7.2.15-1-omarchy; base de866017, head eeb09c09, GCC 16.2.1 and Clang 23.1.3 (compiler version output and test records).

  • Untouched main a016b7a6: 455 passed, 15 failed, 20 skipped; each of these ten failures also reproduced alone with both compilers, matching the linked CI diagnostics.
  • Branch: all ten repaired checks pass independently with each compiler (python -I -B tests/run_all.py --strict --jobs 1 <test> records).
  • Negative controls: 14 deliberate source regressions were each rejected with both compilers, without a compile failure—28 behavioral rejections (mutation records). These remove Aux sizing, biquad filtering, startup failure handling, the libdecor hint, view ownership release, part-specific waits, preset preservation, temporal reset or mod-table routing; the DLSS controls independently make each axis's tolerance too narrow and too broad.
  • One full python -I -B tests/run_all.py --strict run: 464 passed, 6 failed, 20 skipped in 141 s, 32 workers, load 7.24 → 28.38 (complete suite output).

Remaining failures and the path to green

The complete branch run names these six failures; the first five are outside this fixture-only diff:

Remaining check Separate fix
test_env_on.py fix/capture-switch-values: the three presence-only capture switch reads from #2437.
test_linux_docker_packages.py test/docker-ppa-options: distinguish --no-update from its PPA operand.
test_mouse_native.py fix/mouse-camera-handover: discard retained angles while another camera owns the view.
test_menu_i18n.py fix/menu-hint-translations: update three complete hint keys and their translations.
test_hdr_encode.py Already repaired in #2614; deliberately not duplicated here.
test_release_scripts.py An intermittent, unchanged release-script concurrency failure: SHA256SUMS still differs from the files after 5 uploads. It passed untouched main and current main CI; isolated reruns passed once and failed once. Neither run invokes a C/C++ compiler.

Not tested / risks

No Windows, game, display, controller, listening or GPU run was performed; the evidence above is game-free only. The fixture extraction still follows source structure, so future helper/signature changes must update its inputs rather than remove its behavioral guards.

Overlaps

The inspected merge hunks overlap #1834's frame-generation fixture helpers and #2622's older readback extraction; neither contains these repairs. #2614 owns the separate HDR initializer check. Other same-file changes merge cleanly in the recorded overlap comparison.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra noreply@openai.com

mooki000 and others added 6 commits November 11, 2026 22:04
The Aux and biquad cut-outs added by NotRexed#1544 use env_on from NotRexed#2042. Compile them with the real header, retaining every DSP assertion.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
Include window_title before the actual startup functions. Keep startup failure handling and libdecor ordering checks unchanged.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
Supply dead_import_bytes for the actual reaper and assert it remains charged until GPU completion. Keep view-before-buffer destruction checks.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
Match the full wait_recorded definition rather than the forward declaration added by NotRexed#2458. Keep all part-wait and event-order assertions.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
Check both sides of the intentional two-pixel DLSS tolerance and model temporal_reset_failure in the complete menu handlers. Assert scaling rows reset failures while frame generation and rumble preserve their choices.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>
The routing fixture has no controllers. Supply hos_xinput_pads alongside its existing SDL stand-ins without changing resource-table merge or routing checks.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <noreply@openai.com>

@hckrman101 hckrman101 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is a useful cleanup. I checked each repair against current main (the PR is 0 commits behind):

  • audio_aux / audio_biquad: including hookshot_env.h gives the extracted DSP the real env_on, no stub.
  • display_startup_failure / wayland_libdecor_hint: window_title is a static helper in display_sdl.c now used by both init and window creation, so extracting it with its callers is the right fix.
  • texel_buffer_ownership: dead_import_bytes is the real counter from vk_memory.cpp, and the new asserts (still 64 before the fence passes, 0 after) check the decrement in reap_mirrors instead of just making it compile.
  • readback_part: matching the full definition signature skips the new forward declaration. Fine.
  • dlss_checks: #2574 meant to add the (w + 2) * 3 tolerance, so flipping the old "under a third" negatives is correct. The new pairs (510/509 wide, 286/285 high, 1471x620 vs 1469 / 619 in mode_for) pin the edges on both sides, so a looser or tighter tolerance would both be caught.
  • framegen_preset / rumble_menu: set_row on main resets temporal failures for exactly dlss, resolution and dlss_model. The fixture now uses the real upscaler_rows.h and the three real row definitions, and checks one reset per row and none for preset, frame-gen or rumble. That's stronger than the old stubbed ur namespace.
  • mods_size_table: a hos_xinput_pads that reports no pads fits this routing fixture.

CI: all ten target checks now pass on Linux and Windows. What's still failing (test_env_on, test_menu_i18n, test_hdr_encode, test_linux_docker_packages, test_mouse_native) fails the same way on main's latest run, and the PR body lists it as separate work.

Nit, not blocking: the eviction case in texel_buffer_ownership could also assert that imports_give_back charges dead_import_bytes. That would cover the other half of the accounting #1906 added.

Approving.

@hckrman101
hckrman101 merged commit 9776c36 into NotRexed:main Nov 12, 2026
9 of 13 checks passed
tapxgamestudio-coder added a commit to tapxgamestudio-coder/Hookshot that referenced this pull request Nov 12, 2026
…ts' source slices

test_audio_aux and test_audio_biquad (NotRexed#1544, NotRexed#2648) compile slices of
host/nn_audio.c on their own: the reverb section up to the mixer, and
#define FRAME up to mix_depth. The wheel's sounds sat in both, and
their hos_game_path_a and MAX_PATH aren't there. The block now follows
mix_depth, still before render_frame, which mixes its cues in. A move
only; every tests/test_audio*.py passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tapxgamestudio-coder added a commit to tapxgamestudio-coder/Hookshot that referenced this pull request Nov 12, 2026
…ts' source slices

test_audio_aux and test_audio_biquad (NotRexed#1544, NotRexed#2648) compile slices of
host/nn_audio.c on their own: the reverb section up to the mixer, and
#define FRAME up to mix_depth. The wheel's sounds sat in both, and
their hos_game_path_a and MAX_PATH aren't there. The block now follows
mix_depth, still before render_frame, which mixes its cues in. A move
only; every tests/test_audio*.py passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
notquiteog added a commit to notquiteog/Hookshot that referenced this pull request Nov 12, 2026
…seeded, V-Sync Auto with DLSS Frame Gen, NotRexed#2746)

Upstream fixed most of what e3f076a fixed here (NotRexed#2648, NotRexed#2651, NotRexed#2652, NotRexed#2653, NotRexed#2654,
NotRexed#2661), so the conflicts are resolved to upstream's versions: its fixtures, its
menu_i18n.h, its mouse_native.c, and its dlss_checks.h with the two-pixel tolerance it
chose and tests. Kept from the fork: the fixtures' framegen_by_pick stand-in, and
vk_texture.cpp's typed min.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
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.

2 participants