Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Convert the Remaining Legacy Tests to the Merged Wrapper Model - #98469

Merged
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light
Mar 18, 2024
Merged

Convert the Remaining Legacy Tests to the Merged Wrapper Model#98469
ivdiazsa merged 15 commits into
dotnet:mainfrom
ivdiazsa:the-darkest-legacy-to-light

Conversation

@ivdiazsa

@ivdiazsaivdiazsa commented Feb 14, 2024

Copy link
Copy Markdown
Contributor

@ivdiazsaivdiazsa added the area-Infrastructure-coreclr Only use for closed issues label Feb 14, 2024
@ivdiazsaivdiazsa added this to the 9.0.0 milestone Feb 14, 2024
@ghostghost assigned ivdiazsaFeb 14, 2024
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR intends to finish the efforts of the Test Consolidation Project. We are aiming to have our entire coreclr test system use the merged wrappers. The previous efforts are detailed in their respective PR's:

This is still a Work In Progress.

Author:ivdiazsa
Assignees:-
Labels:

area-Infrastructure-coreclr

Milestone:9.0.0

{
Delegates.Run();
Devirtualization.Run();
// Generics.Run();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a functional change.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh if you mean having Generics.Run() commented out, that's just temporarily. I was running into some build issues but I wanted to test in CI for a more complete feedback. It will be restored before moving this PR from "Draft" to "Ready for Review".

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

feasible to migrate them, at least for the time being.
@ivdiazsa
ivdiazsa marked this pull request as ready for review March 6, 2024 17:09
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jkoritzinsky Besides reenabling that Generics.Run() I commented out, the test consolidation PR is ready for review 😄

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few comments

Comment on lines +5 to +15
<!-- Due to the nature of the MultiModule tests, it is unfeasible to convert
them to the Merged Wrapper system.

The main idea of these ones is that we pre-NativeAOT the whole framework,
then NativeAOT each assembly separately, and then link them all together
at the end using the native linker.

So, when we try using the Merged Wrapper system, nothing ends up producing
the code for xunit.assert, as its assembly is not in the actual framework.
-->
<MergedWrapperProjectReference Remove="SmokeTests/MultiModule/*.csproj" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we mark the MultiModule tests as "RequiresProcessIsolation", then we shouldn't be getting warnings here. My guess is that I never hooked up the MSBuild logic for the "out of process" tests to exclude them as inputs to ILC. If you want to fix in this this PR, you can. Otherwise, can you file a follow-up issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm that adding <RequiresProcessIsolation> removes the warnings from this test. So, just to confirm, the follow-up issue is to write the necessary logic to exclude out-of-process tests from being inputs to ILC. Is this accurate?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

<!-- Shouldn't need this: https://github.com/dotnet/linker/issues/2618 -->
<NoWarn>$(NoWarn);IL2050</NoWarn>

<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For tests that are legitimately marked as RequiresProcessIsolation due to something in the test, we should add comments explaining why so when we come around and clean up some of them in the future, we know which ones need to stay.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Registers a global ComWrappers instance for marshalling -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<StartupHookSupport>true</StartupHookSupport>
<NoWarn>$(NoWarn);IL2026</NoWarn>
<RequiresProcessIsolation>true</RequiresProcessIsolation>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- Uses a custom test environment variable -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>

@ivdiazsa
ivdiazsa merged commit 41c6057 into dotnet:mainMar 18, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
@MichalStrehovskyMichalStrehovsky mentioned this pull request Mar 20, 2024
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 20, 2024
dotnet#98469 regressed a development scenario around passing command line arguments to this test. Command line argument can selectively choose one test to run. This is extremely useful when there’s test failures. The test does a ton of things and ability to zoom in is useful.
Alternatively, we could put the test on the non-merged plan, same way we left nativeaot\SmokeTests\ControlFlowGuard on the non-merged plan (I assume for the same reason because it uses command line arguments?). I would prefer that solution but made a PR for the other approach because if I understand it correctly, we don't want to leave tests like that.
MichalStrehovsky added a commit that referenced this pull request Mar 20, 2024
#98469 deleted this line. The test is generating half a dozen of these warnings, so put it back.
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 26, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ivdiazsa@jkoritzinsky@filipnavara