Skip to content

Add a self-contained all-round test suite#317

Open
TetzkatLipHoka wants to merge 1 commit into
remobjects:masterfrom
TetzkatLipHoka:feature/test-suite
Open

Add a self-contained all-round test suite#317
TetzkatLipHoka wants to merge 1 commit into
remobjects:masterfrom
TetzkatLipHoka:feature/test-suite

Conversation

@TetzkatLipHoka

Copy link
Copy Markdown

Tests/PascalScriptTestSuite.dpr consolidates the probe programs that were
written while triaging issues #198/#246/#255/#296 and the compatibility,
interface, COM, DLL, wide-string, record and p-char work into one console
program with PASS/FAIL/SKIP verdicts, a summary line and a CI-friendly exit
code.

The same source runs against ANY tree state: script-language features are
detected at run time by test-compiling snippets, optional host APIs are
gated with {$IF DECLARED}, platform differences use plain conditionals, and
expectations adapt to SizeOf(TbtChar). Checks for behavioral fixes are
probed: on a tree without the fix they report SKIP with the observed
misbehavior; with -strict those probe-skips become failures so CI catches
regressions on fixed trees.

Compiles with Delphi 7 through 12 (Win32/Win64) and FPC 3.2.2 (-Mdelphi,
also on Linux). See Tests/README.md for one-liners, the section list, the
skip philosophy and current reference numbers per tree.

The suite runs against ANY tree state: missing language features are SKIPped (detected by test-compiling snippets), probe-detected broken behavior is reported as SKIP with the observation, and -strict turns those probe-skips into failures for CI use on a fixed tree. See Tests/README.md for the section list and current reference numbers (this vanilla tree: 93 checks, 70 pass, 23 skip, exit code 0).

🤖 Generated with Claude Code

Tests/PascalScriptTestSuite.dpr consolidates the probe programs that were
written while triaging issues remobjects#198/remobjects#246/remobjects#255/remobjects#296 and the compatibility,
interface, COM, DLL, wide-string, record and p-char work into one console
program with PASS/FAIL/SKIP verdicts, a summary line and a CI-friendly exit
code.

The same source runs against ANY tree state: script-language features are
detected at run time by test-compiling snippets, optional host APIs are
gated with {$IF DECLARED}, platform differences use plain conditionals, and
expectations adapt to SizeOf(TbtChar). Checks for behavioral fixes are
probed: on a tree without the fix they report SKIP with the observed
misbehavior; with -strict those probe-skips become failures so CI catches
regressions on fixed trees.

Compiles with Delphi 7 through 12 (Win32/Win64) and FPC 3.2.2 (-Mdelphi,
also on Linux). See Tests/README.md for one-liners, the section list, the
skip philosophy and current reference numbers per tree.

Co-Authored-By: Claude Fable 5 <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.

1 participant