Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot
, '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

Add DependencyAnalysisFramework tests from CoreRT repo - #130849

Merged
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests
Sep 1, 2026
Merged

Add DependencyAnalysisFramework tests from CoreRT repo#130849
MichalStrehovsky merged 3 commits into
dotnet:mainfrom
MichalStrehovsky:daftests

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
Member

We forgot these in the CoreRT repo. DependencyAnalysisFramework originally moved here with crossgen2, but without the testing. First commit just copies file over, second commit hooks them up to the build.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing ILCompiler.DependencyAnalysisFramework unit test project to the runtime repo and wires it into the CoreCLR tools test subset so it participates in CI/tool test runs.

Changes:

  • Adds TestGraph test infrastructure for exercising static, conditional, and dynamic dependency marking.
  • Adds xUnit tests validating dependency marking behavior across logging strategies and validating DGML output shape.
  • Hooks the new test project into the +clr.toolstests+ subset build/test list.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

FileDescription
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/TestGraph.csAdds a small test graph/node model used by the unit tests to drive the dependency analyzer.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/DependencyAnalysisFrameworkTests.csAdds xUnit tests for dependency marking and DGML output across different log strategies.
src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework.Tests/ILCompiler.DependencyAnalysisFramework.Tests.csprojIntroduces the new test project and references the DependencyAnalysisFramework project + xUnit extensions.
eng/Subsets.propsEnsures the new test project runs as part of the clr.toolstests subset.

@github-actions

github-actionsBot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Workflow state for the Holistic Review Orchestrator.

{
"version": 5,
"last_dispatched_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_reviewed_commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "ac90ce8e7a5c217d4ab9effb35c82e5b6596371f",
"last_recorded_worker_run_id": "29684897252",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "c9a00a5d86a6f3fd87458fcf3b342dad6a34f4a6",
"review_id": 4730668815
}
]
}

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Holistic Review

Motivation: The ILCompiler.DependencyAnalysisFramework component was moved into dotnet/runtime alongside crossgen2, but its unit tests were left behind in the old CoreRT repository. This PR restores that lost test coverage for the dependency-analysis graph marking logic (full/first-mark/no-log strategies, static/conditional/dynamic rules, and DGML output).

Approach: The change copies the original TestGraph.cs helper and DependencyAnalysisFrameworkTests.cs xUnit tests verbatim, adds a new ILCompiler.DependencyAnalysisFramework.Tests.csproj that references the framework project and Microsoft.DotNet.XUnitExtensions, and wires the project into the clr.toolstests subset in eng/Subsets.props (guarded by Condition="'$(DotNetBuildSourceOnly)' != 'true'", consistent with the neighboring AOT test projects). The split into a copy commit followed by a build-hookup commit keeps the port easy to audit.

Summary: This is a low-risk, test-only addition that recovers previously-existing coverage. The csproj mirrors the conventions of sibling AOT test projects (TargetFramework=$(NetCoreAppToolCurrent), Configurations, TestRunnerAdditionalArguments, NU1701 suppression). The ported code uses older C# idioms (explicit Tuple<>, new T[0], out-var-free TryGetValue) rather than the repository's current conventions, but that is expected and appropriate for a faithful port and not worth churning. No functional runtime code is affected. LGTM.

Detailed Findings

No actionable issues found. Two non-blocking observations, neither warranting a change:

  • TestGraph.cs and the test bodies retain legacy style (e.g. s_emptyDynamicList = new CombinedDependencyListEntry[0], explicit Tuple<> allocations, Assert.True(results.Count == N) instead of Assert.Equal(N, results.Count)). Preserving the original source verbatim is reasonable for a port; modernizing is optional.
  • Unlike some sibling AOT test csproj files, this project omits EnableDefaultItems=false/CopyLocalLockFileAssemblies, which is correct here since it has no test-asset subprojects or generated content to exclude.

Note

This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.

Generated by Holistic Review · 52.6 AIC · ⌖ 10.2 AIC · ⊞ 10K

awakecoding added a commit to awakecoding/runtime that referenced this pull request Aug 31, 2026
The dependency analysis framework tests belong in the dedicated test project being added by dotnet#130849, not ILCompiler.Compiler.Tests.
CopilotAI review requested due to automatic review settings September 1, 2026 00:10

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 6
  • Review effort level: Lite

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MichalStrehovsky@agocke@dotnet-bot