You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Require platform AND target framework AND runtime to match the four-argument ActiveIssue overload. Check framework/runtime before applying the existing platform decorator, preserving runtime OS checks for AnyOS builds.
Apply the same semantics to conditional OuterLoop attributes at priority zero; preserve higher-priority inclusion and existing skip reasons/reporters.
Add 46 host-side xUnit generator tests, registered in clr.toolstests, covering ordinary, process-isolated, and merged runners, including referenced legacy entry points.
Mark calli_excep.il explicitly Windows-only. Fixing the over-skip exposed its kernel32 dependency on Linux; directly running its body confirmed DllNotFoundException.
Root cause
The old implementation chained three independent skip transformations. A match in any dimension could permanently remove the test body; TargetFrameworkMonikers.Any matched Netcoreapp regardless of the runtime/platform restrictions. The fix follows the conjunction in the pinned Arcade implementation.
#126517 addressed a different switch branch: unspecified SkipOnCoreClr dimensions defaulting to Any instead of zero. Its zero defaults remain unchanged.
46 passed, zero failed/skipped, through both VSTest and the repository /t:Test target. Tests compile generated runners, inspect actual invocation syntax and skip reasons, and execute ordinary runners with a test-body counter to reject successful no-ops.
Restoring only the original four-argument composition caused 22 failures, including the referenced-assembly cases; restoring the fix returned all 46 to passing.
Built Linux Directed_ro, inspected the restored call to calli_excep before adding its Windows restriction, and verified that the final Linux runner excludes this Windows-only test.
Independent code review found no actionable issues. Secret scanning and the added dependency advisory check passed.
Limitations
Actual Windows/Mono SEH execution was not available; those generator configurations were tested on the Linux host. Later builds retained unavailable NuGet-audit-endpoint warnings using local WarningsNotAsErrors=NU1900;NU1905; audit remained enabled. The baseline also reported existing Microsoft.DiaSymReader.Native advisories. Automated code review was unavailable, and CodeQL skipped analysis because its database was too large.
Note
This pull request was generated by GitHub Copilot.
Azure Pipelines:
Successfully started running 3 pipeline(s).
13 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.
Cool, we now run the calli_excep test again and as expected, it fails with native AOT. This test was supposed to be disabled on dotnet/runtimelab#166 but we lost the disablement and never noticed because the test just stopped running everywhere in #123248.
@copilot delete the XUnitWrapperGenerator.Tests and related test infra that was added in this branch.
Removed in 1ebd1a4: the test project, test source, Directory.Build imports, and clr.toolstests registration. The generator and calli_excep fixes are unchanged. Directed_ro builds successfully, and MSBuild selects exactly the five original tools-test projects.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
Add the missing host-side regression tests and clr.toolstests registration.
Review effort: Lite Findings: None
What changed in this PR
Fixes combined ActiveIssue/OuterLoop filtering so platform, framework, and runtime restrictions are conjunctive, and marks calli_excep.il Windows-only.
Changes:
Corrects combined restriction evaluation.
Adds Windows/platform guards to the interop test.
Claimed generator regression tests are not present in the submitted files.
Why: The old ActiveIssue generator bug incorrectly skipped these tests on CoreCLR, masking unresolved WASM interop problems. Fixing the skip semantics now executes their bodies; CdeclMemberFunctionTest fails with missing WASM calli thunk MS8ii.
Restore the CoreCLR/browser exclusions for these three tests that were enabled by #133367:
...
Addressed in d6bfcee. Restored the three CoreCLR/browser-only corerun opt-outs with #131811 comments. Their existing guards were insufficient, so each entry point now has an explicit IsBrowser && IsCoreCLR ActiveIssue exclusion. Existing Mono/Windows restrictions, the conjunction fix, and unrelated tests are unchanged.
Validation: baseline and all three browser managed builds passed; generated wrappers skip before calling the bodies and report #131811. All three tests execute and pass on Linux (zero skipped); 15 project evaluations confirm the opt-outs’ scope. Live browser execution remains unverified.
Independent review and secret scanning passed. Automated review was unavailable; CodeQL skipped its oversized database. Post-merge disabled-test labeling of #131811 remains pending.
@copilot for the WASM specific changes to tests, stick to the wording that was removed in #133367. also looks like we don't need the ActiveIssue, WasmBuildTestCorerun should be enough.
@copilot for the WASM specific changes to tests, stick to the wording that was removed in #133367. also looks like we don't need the ActiveIssue, Wasm...
The original wording is restored locally, but removing the attributes exposed a concrete problem: all three compiled browser wrappers call TestEntryPoint unconditionally. WasmBuildTestCorerun=false skips private-host generation only; the launcher still uses CORE_ROOT/corerun.js, and these tests have no native-asset guard.
Baseline, browser managed builds, and all three Linux test runs passed; actual browser execution was not run. I have not committed the pending changes. Should I retain the explicit guards, or replace them with a CoreCLR/browser project-level exclusion?
@copilot JIT/Directed/callconv/ThisCall/ThisCallTest is also failing on WASM, we need to restore the disabling for that one too.
Addressed in 04b2092. Restored ThisCall’s CoreCLR/browser corerun opt-out with the original wording and #131811 link. Since this test has no native-assets guard, added a matching CLRTestTargetUnsupported exclusion so it actually stays out of the browser runner—no new ActiveIssue attribute.
Baseline and targeted Linux build passed; ThisCall executed with exit 100. Browser runner discovery excludes it while retaining its four siblings; configuration checks preserve Mono/browser and CoreCLR Linux/Windows/WASI. Live browser execution was not run. Other tests and the generator fix are unchanged.
This browser/CoreCLR ActiveIssue makes the test body skip on the exact configuration that #133367 explicitly enabled and verified: the PR built CdeclMemberFunctionTest with a test-specific corerun.wasm, linked its native assets, and passed it. Adding this condition therefore regresses the browser coverage rather than fixing an unsupported test. Please remove it unless a newer reproducible failure supersedes that result, and update the tracking issue if so.
Do not reintroduce browser opt-out for CdeclMemberFunctionTest
This reintroduces the browser opt-out that #133367 removed for CdeclMemberFunctionTest. That PR explicitly rebuilt this project with a test-specific corerun.wasm and recorded it among the 9/9 browser-wasm projects that linked and passed; the current #131811 issue likewise lists it as enabled. Keeping this property now sends the test back to the shared host and loses the native coverage that was verified on main, contradicting the stated reason for the workaround. Please retain it only if a newer reproducible failure supersedes #133367 and update the tracking issue accordingly.
This browser/CoreCLR ActiveIssue makes the test body skip on the exact configuration that #133367 explicitly enabled and verified: the PR built PlatformDefaultMemberFunctionTest with a test-specific corerun.wasm, linked its native assets, and passed it. Adding this condition therefore regresses the browser coverage rather than fixing an unsupported test. Please remove it unless a newer reproducible failure supersedes that result, and update the tracking issue if so.
Do not reintroduce browser opt-out for PlatformDefaultMemberFunctionTest
This reintroduces the browser opt-out that #133367 removed for PlatformDefaultMemberFunctionTest. That PR explicitly rebuilt this project with a test-specific corerun.wasm and recorded it among the 9/9 browser-wasm projects that linked and passed; the current #131811 issue likewise lists it as enabled. Keeping this property now sends the test back to the shared host and loses the native coverage that was verified on main, contradicting the stated reason for the workaround. Please retain it only if a newer reproducible failure supersedes #133367 and update the tracking issue accordingly.
This browser/CoreCLR ActiveIssue makes the test body skip on the exact configuration that #133367 explicitly enabled and verified: the PR built StdCallMemberFunctionTest with a test-specific corerun.wasm, linked its native assets, and passed it. Adding this condition therefore regresses the browser coverage rather than fixing an unsupported test. Please remove it unless a newer reproducible failure supersedes that result, and update the tracking issue if so.
Do not reintroduce browser opt-out for StdCallMemberFunctionTest
This reintroduces the browser opt-out that #133367 removed for StdCallMemberFunctionTest. That PR explicitly rebuilt this project with a test-specific corerun.wasm and recorded it among the 9/9 browser-wasm projects that linked and passed; the current #131811 issue likewise lists it as enabled. Keeping this property now sends the test back to the shared host and loses the native coverage that was verified on main, contradicting the stated reason for the workaround. Please retain it only if a newer reproducible failure supersedes #133367 and update the tracking issue accordingly.
@radekdoulik@lewing could you have a look at the WASM test disablement in this PR? These tests were enabled for WASM in #133367 but they don't work. We were just not running them anywhere due to the bug I'm fixing.
You can see the failure mode at the commit that Jeremy approved:
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
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
ActiveIssueoverload. Check framework/runtime before applying the existing platform decorator, preserving runtime OS checks for AnyOS builds.OuterLoopattributes at priority zero; preserve higher-priority inclusion and existing skip reasons/reporters.clr.toolstests, covering ordinary, process-isolated, and merged runners, including referenced legacy entry points.calli_excep.ilexplicitly Windows-only. Fixing the over-skip exposed itskernel32dependency on Linux; directly running its body confirmedDllNotFoundException.Root cause
The old implementation chained three independent skip transformations. A match in any dimension could permanently remove the test body;
TargetFrameworkMonikers.AnymatchedNetcoreappregardless of the runtime/platform restrictions. The fix follows the conjunction in the pinned Arcade implementation.#126517 addressed a different switch branch: unspecified
SkipOnCoreClrdimensions defaulting toAnyinstead of zero. Its zero defaults remain unchanged.Validation
build.sh clr+libs -lc release -rc checked./t:Testtarget. Tests compile generated runners, inspect actual invocation syntax and skip reasons, and execute ordinary runners with a test-body counter to reject successful no-ops.Directed_ro, inspected the restored call tocalli_excepbefore adding its Windows restriction, and verified that the final Linux runner excludes this Windows-only test.Limitations
Actual Windows/Mono SEH execution was not available; those generator configurations were tested on the Linux host. Later builds retained unavailable NuGet-audit-endpoint warnings using local
WarningsNotAsErrors=NU1900;NU1905; audit remained enabled. The baseline also reported existingMicrosoft.DiaSymReader.Nativeadvisories. Automated code review was unavailable, and CodeQL skipped analysis because its database was too large.Note
This pull request was generated by GitHub Copilot.