Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial provisions for semantic Crossgen2 PDB validation #97090

Merged
merged 12 commits into from
Jan 24, 2024

Conversation

trylek
Copy link
Member

@trylek trylek commented Jan 17, 2024

After I fixed PDB generation in Crossgen2 for the second time, I have revived my old PR

#75172

for semantic PDB validation (the GitHub bot doesn't let me reopen the pull request even after unlocking the conversation claiming it can no longer track the rebased branch).

Thanks

Tomas

P.S. In this iteration the test is instrumented to fail to let me see the list of symbols in the log. Once I verify that, I'll remove the instrumentation and the change should be ready for review.

@trylek
Copy link
Member Author

trylek commented Jan 18, 2024

@jkoritzinsky / @markples - I think this mostly works now so I'm opening this for review. As you probably know, I'm about to move to a different org so I'll either need to get this in quickly or finalizing this PR will likely fall on one of you. I think we shouldn't drop the ball on this as it's already got broken twice.

This Quality Week work item is motivated by my findings from a few
months back that Crossgen2 PDB generator had been producing bogus
symbol files for almost half a year due to a trivial bug and no
testing in place was able to catch that. This change adds initial
provisions for semantic PDB validation.

In this initial commit I'm adding a new managed app PdbChecker
that uses the DIA library to read a given PDB and optionally check
it for the presence of given symbols. In parallel I'm making test
infra changes that enable selective PDB validation support in
individual tests including checks for the presence of expected
symbols.

This change by itself introduces rudimentary PR / CI validation of
PDB files produced by Crossgen2. As next step I plan to introduce
additional provisions for running this logic for all tests to be
added to one of the Crossgen2-specific pipelines, and validation
of PDBs produced during compilation of the framework assemblies.

Thanks

Tomas
@trylek trylek merged commit b2a63c1 into dotnet:main Jan 24, 2024
181 checks passed
@trylek trylek deleted the PdbTest branch January 24, 2024 20:47
@github-actions github-actions bot locked and limited conversation to collaborators Feb 24, 2024
Sign up for free to 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.

3 participants