Convert tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e 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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 \u003e 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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n
, '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 tests under GC subtree to the merged test model - #92543

Merged
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC
Aug 28, 2024
Merged

Convert tests under GC subtree to the merged test model#92543
jkoritzinsky merged 18 commits into
dotnet:mainfrom
trylek:MergeGC

Conversation

@trylek

Copy link
Copy Markdown
Member

No description provided.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-reflection-metadata
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-System.Reflection.Metadata

Milestone:-

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

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

@markples

Copy link
Copy Markdown
Contributor

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples

Copy link
Copy Markdown
Contributor

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples

Copy link
Copy Markdown
Contributor

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek

Copy link
Copy Markdown
MemberAuthor

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek

Copy link
Copy Markdown
MemberAuthor

/cc @dotnet/gc

@azure-pipelines

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

@ghost

Copy link
Copy Markdown

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

Issue Details

null

Author:trylek
Assignees:trylek
Labels:

area-GC-coreclr

Milestone:-

@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr outerloop

@azure-pipelines

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

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky

Copy link
Copy Markdown
Member

/azp run runtime-coreclr gc-simulator

@azure-pipelines

Copy link
Copy Markdown
No pipelines are associated with this pull request.

@markples

Copy link
Copy Markdown
Contributor

@jkoritzinsky

Copy link
Copy Markdown
Member

@markples

Copy link
Copy Markdown
Contributor

Thank you very much @trylek@jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markplesmarkples mentioned this pull request Aug 26, 2024
@jkoritzinsky

Copy link
Copy Markdown
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples

Copy link
Copy Markdown
Contributor

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky

Copy link
Copy Markdown
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky

Copy link
Copy Markdown
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky
jkoritzinsky merged commit 4adc0b4 into dotnet:mainAug 28, 2024
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Sep 28, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@trylek@markples@jkoritzinsky@buyaa-n