feat: POSIX conformance test suite and implementation fixes (99.4%)#46
Open
NathanFlurry wants to merge 38 commits intomainfrom
Open
feat: POSIX conformance test suite and implementation fixes (99.4%)#46NathanFlurry wants to merge 38 commits intomainfrom
NathanFlurry wants to merge 38 commits intomainfrom
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…file Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…and wasm-limitation tests - Populate posix-exclusions.json with 178 skip exclusions across categories: compile-error (namespace/*, posix-parse/*, basic/ and include/ subsuites without WASI sysroot support), wasm-limitation (io/*, process/*, signal/*, pthread runtime failures, mmap, spawn), wasi-gap (pty/*, udp/*, paths/*, sys_statvfs, shared memory, sockets, termios), timeout (pthread_key_delete) - Switch test runner from kernel.exec() to kernel.spawn() to bypass sh -c wrapper and get real WASM binary exit codes (shell returned exit 17 for all child commands due to benign "could not retrieve pid" issue) - Add crossterm-0.28.1 WASI patch (ratatui/reedline dependency) to fix WASM runtime build — adds WASI stubs for terminal, cursor, event, and TTY modules matching the existing crossterm 0.29.0 patch - 35 remaining failures are implementation-gap tests for US-006 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Classify all 35 remaining os-test failures into 10 GitHub issues: - #31: stdout duplication in WASM binaries (8 tests) - #32: realloc(ptr,0) semantics (1 test) - #33: VFS directory enumeration + nftw (6 tests) - #34: VFS stat metadata (4 tests) - #35: file descriptor operations (5 tests) - #36: glob pattern matching (2 tests) - #37: locale/monetary formatting (2 tests) - #38: long double precision (3 tests) - #39: wide character streams (2 tests) - #40: missing libc functions ffsll/inet_ntop (2 tests) Also fix fail-exclusion check to consider both exit code AND native output parity (not just exit code), so tests that exit 0 but produce wrong stdout are correctly detected as still failing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…fix dev-ptc/dev-ptm exclusions US-033: Verified no suite-specific special-casing remains (already removed in US-024). US-034: Added native parity detection for tests where both WASM and native fail identically. /dev/ptc and /dev/ptm are Sortix-specific paths that don't exist on real Linux either — both WASM and native produce identical ENOENT output. Removed both exclusions, conformance now 3330/3350 (99.4%).
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
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.
Summary
What changed
Infrastructure (US-001 → US-011)
make fetch-os-test/make os-test/make os-test-nativebuild targetsposix-exclusions.jsonschema with honest categorization (wasm-limitation / wasi-gap / implementation-gap)posix-conformance.test.tstest runner with native parity detectionvalidate-posix-exclusions.tsvalidation scriptgenerate-posix-report.tsMDX report generatorimport-os-test.tsupstream update script.github/workflows/posix-conformance.ymlCI workflowKernel & runtime fixes (US-012 → US-034)
spawnManaged()fdOpendetects directories by stat; VFS populated from native buildfstatatparent-relative path lookupREALLOC_ZERO_BYTES_FREESin dlmallocmain()for compile-only header conformance checks-lc-printscan-long-doubleIntegrity fixes (US-023 → US-025, US-028, US-033)
Remaining exclusions (20 tests)
Test plan
make -C native/wasmvm/c os-test os-test-nativecompiles all testspnpm vitest run packages/wasmvm/test/posix-conformance.test.tspassespnpm tsx scripts/validate-posix-exclusions.tspasses🤖 Generated with Claude Code