DUnitX migration: full suite parity, keep DUnit for comparison#97
Open
omonien wants to merge 15 commits into
Open
DUnitX migration: full suite parity, keep DUnit for comparison#97omonien wants to merge 15 commits into
omonien wants to merge 15 commits into
Conversation
Record that AEAD architecture must be separated from ChaCha features, and that a full DUnit to DUnitX migration is the prerequisite before that work.
Inventory dual suites, sense-check existing tests, and record that DECDUnitTestSuite stays until a later removal PR.
Compare DECDUnitXTestSuite.dpr to VSoft D12/D13 templates; fold runner hardening into Task 3 of the migration plan.
Record Win32 Console DUnit (1425 run, 12 failures) and Debug DUnitX (1457 found, 15 failures) baselines, coverage gap (CCM/ZIP), and environment notes for the DUnitX migration.
Use non-published virtual hooks (NormalizeAddPaddingResult, ExpectedIsPasswordHash) so ISO10126 and BCrypt keep correct assertions without DUnitX double-discovery.
They only affect DUnitX case counts, not fail-set parity; no cleanup needed.
Define TESTINSIGHT for the TestInsight build config, and reject ISO 10126 padding results whose length does not match the expected pattern before masking random pad bytes.
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.
For Markus — theme: test infrastructure (prerequisite)
This is the foundation for the cleanup work: make DUnitX a complete, parity-proven runner for the whole suite, while keeping classic DUnit as a comparison baseline.
No production crypto algorithms are changed here.
Why this matters for you
Before larger AEAD / cipher-mode work (and before reviewing a split of PR #90), we need a single trustworthy test signal. Today both runners exist; DUnitX was incomplete and had DUnitX-only failures from dual-stack quirks. After this PR:
What changed (high level)
DECDUnitXTestSuiteUseRTTI := False, console/CI exit codes, TestInsight path)readme.mdParity (Delphi 13 / Win32, at time of work)
TestIsPasswordHashredeclares — accepted (count noise only, no fail impact)Out of scope (intentionally later)
Check*/ DUnitCompatibility to nativeAssert.*Suggested review focus
NormalizeAddPaddingResult,ExpectedIsPasswordHash) — OK as dual-stack bridge?Risk
Low for library users (tests + docs). Medium for maintainers who still open the DUnit project (still valid).
Dependency note
This branch includes
Docs/Cleanup-Roadmap.md(updated for the DUnitX phase). If PR #96 (roadmap only) is already merged, GitHub should auto-merge the common docs with little conflict; otherwise this PR alone is self-contained.Test plan
Source\DEC60.dprojDebug Win32DECDUnitTestSuiteConsole Win32DECDUnitXTestSuiteDebug Win32Details:
Docs/plans/2026-07-22-dunitx-migration.md,Docs/plans/dunitx-parity-log.md