Repository navigation
Require Windows x64 native and Python checks in pull requests - #47
Merged
Merged
Conversation
Release Artifacts first compiled the 0.2.4 lifetime test with MSVC after the merge, because pull-request CI built no native Windows targets. Add windows_native_tests (MSVC/Ninja, CTest, ABI exports) and windows_python_tests (the full CPython 3.12 suite) on windows-2022 with the scopes of their Linux/macOS counterparts, and require both in the test aggregate and the publication proofs. The Windows suite exposes two shared-memory defects that 0.2.3 also has. ObjectEngine.share() closed its only handle, which deletes a Windows named mapping before readers attach; the publisher now keeps its mappings until it is released. FastSerializer.loads_shm compares the requested region with the attached mapping size, which Windows rounds up to pages; negative regions are rejected, and bytes inside the mapping are left to native validation.
MSVC Debug builds timed out 13 payload tests and pushed compiled_spec over its allocation budget through debug STL bookkeeping. Release Artifacts already runs the same 41 tests with Release on Windows x64 and ARM64.
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.
Pull-request CI built no native Windows targets, so the MSVC compile failure fixed in PR #45 first appeared in Release Artifacts after the 0.2.4 version merge. This adds two required Windows x64 jobs on
windows-2022, with the path scopes of their Linux/macOS counterparts:windows_native_tests: MSVC/Ninja Core and C++ test build, CTest with the builtfastdb.dllonPATH, and the ABI export check, as in Release Artifacts.windows_python_tests: the full Python suite on CPython 3.12 x64.Both jobs feed the
testaggregate. P2 records them in its post-P2 inventory and checks theirneedsand result wiring; P4 validates their results;publish_release.pyrequires their exact-source proofs before publication. Windows ARM64 stays in the release matrix.Before 0.2.4 was tagged, the full Python suite on a Windows 11 x64 machine had five failures that 0.2.3 shares (see the 0.2.4 release record). This PR fixes their causes:
ObjectEngine.share()closed its only handle, and Windows deletes a named mapping when its last handle closes, soObjectEngine.loadcould not open it. The publisher now keeps every mapping it publishes until it is released, asRecordEngine.sharedoes.python/README.mddocuments when mappings and names are released on POSIX and Windows.FastSerializer.loads_shmcompared the requested region with the size of the attached mapping, which Windows rounds up to pages. The size error now applies to regions beyond the attached mapping; negative regions are rejected; bytes inside the mapping are validated by the native loader (Invalid FastDB database buffer.). The tests define both cases without platform skips, and the zero-length test now expects that error instead of accepting any outcome.Validation on macOS ARM64: 408 Python tests pass on CPython 3.12 from source; every command of the
release_toolsandclean_cutjobs passes, including the P2/P4 gates and their self-tests. The Windows jobs run for the first time in this PR's CI.