Repository navigation
Conversation
…ipt's module global with an ignore and its reason, and pack_quiet's quiet time is a float, as its test passes a fraction of a day
maceopark
force-pushed
the
fix/tool-tests-after-fast-path
branch
from
November 5, 2026 08:21
6ead327 to
9c24382
Compare
Owner
|
Thanks for the lint and fixture repairs. The remaining two-file diff is now covered on Closing as superseded by the current implementation; no additional changes from this remaining diff need to land. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
main's checks have been red since the shader builder's instruction scan (#1036), and every pull request based on it inherits the failures:ruff and pyright (ratchet)reports two findings, andTool testsfails two test files. Neither comes from a branch's own change.Lint. Ruff B023 at
dm/games/settings.py:115:offered()closes over the loop's row numbern, so the row is now a default argument. Pyright'sreportOptionalIterableindm/tools/tests/test_split_linkdata.py:linkdata_jobs()returnsNonefor a file it cannot read, so the test narrows the result before iterating it. This is the same fix as #1235, which covers the first finding alone; if #1235 lands first, this branch rebases to the two test files.test_dmsh_pool_arrays. The test loadsdmsh_build.pyby executing only the functions it names.reflect()gained a call tohas_word(), which callsin_word(), and neither was in the list, soreflect()raisedNameError: name 'has_word' is not defined.load()now pulls in every function the named ones call, so the next helper a tested function gains comes with it.test_image_atomic_bounds. The test pinneduses_image_atomics()raising on a zero-length instruction in a module that holds noOpImageTexelPointer. Since the instruction scan, a module without that word is answered "no image atomics" without being walked, so the malformed check runs only where the walk does. The test now pins both halves: the walk'sValueError, on a module with the opcode's word before the malformed instruction, and the fast path'sFalsefor the module without it.Making the malformed check exact again would put a scan for a zero instruction word in front of the walk, in
dmsh_atomic.py, which is a chain file: the new chain version would rebuild every game's shader library to change nothing on a well-formed module. So the fast path's contract is pinned instead. That is open if a malformed module's error message matters. Nothing here changes what the chain computes, sodmsh_chain.his untouched.Checked
python3 -m unittest dm.tools.tests.test_dmsh_pool_arrays dm.tools.tests.test_image_atomic_bounds dm.tools.tests.test_split_linkdata(21 tests, OK, 7 skipped locally: the Metal compiles CI runs), anddm/tools/tests/test_settings*.py(19 tests, OK).dm/tools/lint_python.py --against origin/mainwith the pinned tools from.github/requirements/lint.txt: 389 findings, 389 in the baseline, 0 new.scripts/regress.py, which reports nothing for a chain that does not change; no game was run.Docs
dmsh_chain.py --headerwas not run.