Skip to content

Commit b558039

Browse files
committed
Document version and platform checking conformance approach.
Signed-off-by: Jos Verlinde <jos_verlinde@hotmail.com>
1 parent 54b4d7b commit b558039

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

‎conformance/README.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,32 @@ To add a new test, create a new ".py" file in the `tests` directory. Its name mu
9191

9292
If a test is updated (augmented or fixed), the process is similar to when adding a new test. Run the conformance test tool to generate new results and manually examine the output of each supported type checker. Then update the conformance status accordingly. Once the conformance status has been updated, rerun the conformance test tool to regenerate the summary report.
9393

94+
## Version and Platform Checking Tests
95+
96+
The version and implementation checks use the suite's Python 3.12 CPython target,
97+
with no implementation override. Tests cover both reachable and unreachable
98+
branches: intentional errors in reachable branches must be reported, errors in
99+
unreachable branches must be suppressed, and `assert_type` checks verify branch
100+
selection. Existing three-element version comparisons and `os.name` checks remain
101+
optional; tuple, set, and list membership checks are required.
102+
103+
Platform tests use nonexistent platform names for portable nonmatches and guard
104+
positive Linux membership checks with `sys.platform == "linux"`. Tagged errors in
105+
the outer `else` branch keep the expectations valid on non-Linux targets. Run on a
106+
Linux target to exercise the positive membership cases. Prefix checks include the
107+
empty prefix (always a match) and a nonexistent prefix (never a match). A guarded
108+
`freebsd13` scenario tests a matching `freebsd` prefix and a nonmatching `linux`
109+
prefix; run with a `freebsd13` target to exercise these branches.
110+
111+
The ordinary suite does not validate all target configuration mechanisms. Separate
112+
targeted runs are needed for Windows/Linux selection, the versioned FreeBSD
113+
scenario, and non-CPython implementation versions distinct from the language version.
114+
The current runner has no target-scenario matrix, and the checker CLIs examined
115+
for this change expose language-version/platform options but no implementation-name
116+
or implementation-version options. Non-CPython configuration coverage is therefore
117+
deferred until suitable checker support is available; missing implementation-check
118+
support is still recorded in the ordinary conformance results.
119+
94120
## Updating a Type Checker
95121

96122
Type checker versions are locked in `uv.lock`.

0 commit comments

Comments
 (0)