Conversation
Mass refresh of all baseline files across the test suite to ensure they reflect current compiler output. Addresses #18289. Categories refreshed: - EmittedIL baselines (756+ tests, both net10.0 and net48) - SyntaxTree baselines (1042 tests) - Conformance/TypeChecks/Shadowing/Nullness baselines - CompilerOptions/ConstraintSolver/Signatures baselines - Surface Area baselines (FCS + FSharp.Core) - Legacy FSharpSuite baselines (543 tests) - ILVerify baselines (8 files, verified matching) All tests verified passing after refresh: - EmittedIL: 2187 passed, 0 failed - SyntaxTree: 2084 passed, 0 failed - Conformance: 2852 passed, 0 failed - Legacy: 543 passed, 0 failed 381 .bsl files updated (338 modified, 43 new empty .err.bsl files). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ No release notes required |
|
@T-Gro Thanks a lot for this!
There're also Debug-specific baselines, could you update them too, please? |
I can do it now, it fits into this PR. Longterm I don't like having them as they are not CI exercised. |
Or maybe we should check some of them on CI, since debug/optimize switches may affect code generation drastically and we probably want to verify that too. |
Update 69 debug-specific IL baseline files to match current compiler output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Locally, you typically run a debug-mode-created compiler to run tests in debug.
But we never ship the debug-mode-created compiler. This will create the additional overhead of having to maintain two sets of baselines any time release and debug will differ. Until now, it was optional. (the initial introduction will have to deal with that for all existing tests, + also new combinations (e.g. debug mode, but having a selected optimization flag on ) |
Yes, these are what I meant. Not the compiler but the emitted IL ones. |
|
Doing it right now, I am more inclined to dropping the .il.debug.bsl files. It only runs the same tests with the compiler built in debug, which is not a product concern. So for intentionally different codegen scenarios, having two tests over same source code, but with different compiler flags, is what we should want instead. => I will check if I can normalize that and reduce the .debug and .release duplicates |
Summary
Mass refresh of all test baseline (.bsl) files to ensure they exactly match current compiler output. Addresses #18289 (comment).
Approach
Temporarily modified test framework files to force-write baselines unconditionally (even on pass) when
TEST_UPDATE_BSL=1, ran every test suite in both Release and Debug modes across net10.0 and net48, then reverted all framework modifications — only .bsl file changes remain.Changes by category
Release baselines (381 files)
Debug baselines (69 files)
Validation
All tests verified passing in Release mode on both TFMs:
Zero baseline-related failures.