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

Added option to turn off PDB file parsing #41

Merged
merged 5 commits into from
Mar 25, 2016

Conversation

peterbudai
Copy link
Contributor

About

This pull request adds a new setting to the option page dialog. This setting controls whether the PDB files should be parsed at all.
The default setting maintains the original behavior of parsing symbol information.
The effects of disabling PDB parsing are as follows (mentioned in the description of the setting):

  • Test discovery becomes significantly (less than 1s instead of more than 10s) faster for large test binaries
  • Test execution also becomes significantly faster, due to the faster test discovery phase before each run
  • GTA_Traits.h style traits will not be processed
  • Regex-based traits discovery will still remain effective
  • Test source file location will not be displayed in the Test Explorer window, because it is also obtained from the PDB

Background

Our project outputs some pretty large test binaries. Associated PDB files are tens of megabytes large with hundreds of thousands of symbols. Parsing PDB files this large via MS DIA SDK takes considerable amount of time. Moreover, it seems that DIA SDK sometimes (3 out of 5) simply returns empty list of symbols. In these cases, test traits regexes are not processed, making empty set of traits.

If a project does not make use of the GTA_Traits.h-style traits, only test name regex based, then parsing PDB files are not required, but adds ten seconds delay to every test run for test discovery.
This comes with a compromise that test source file/line information is also lost.

peterbudai and others added 5 commits March 23, 2016 16:56
This will turn off source locations in Test Explorer and GTA traits parsing.
Regex-based traits will remain active, and not parsing PDB files will
greatly speed up test discovery and execution in case of very large
test binaries.

The default option is to keep current behavior.
@csoltenborn
Copy link
Owner

Thanks for your pull request. At first glance, your use case for that option sounds reasonable. Please give us a couple of days to discuss and review your code changes (and the broken build, which - again at first glance - doesn't look like it's caused by you).

@csoltenborn
Copy link
Owner

Your pull request seems to be just fine - we would just have preferred that you would have added some tests, e.g. to prove that Dia indeed isn't called (we try to take regressions seriously). However, I admit that this currently isn't trivial and requires some refactoring, thus I will take care of that myself.

Thanks for the nice work!

@csoltenborn csoltenborn merged commit 291be42 into csoltenborn:master Mar 25, 2016
@peterbudai peterbudai deleted the disable_pdb_parsing branch March 26, 2016 11:45
csoltenborn pushed a commit that referenced this pull request Oct 21, 2017
Sign up for free to 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.

2 participants