Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR accomplishes two things:
(1) All unit tests have been transformed into GTests. Now GTests are the only kind of unit tests we have.
(2) There were some GTest features that were interacting poorly with libgc on Linux systems. In particular, GTest includes its own implementation of TLS, and when pthread support is enabled, that TLS implementation is active and interacts badly with libgc. I also disabled support for SEH just to be cautious, since that feature also enables some threading-related things. We don't need or use either of those features right now, anyway.
The first change, beyond filling us all with that warm sense of satisfaction that always accompanies a completed refactoring, should speed up testing by eliminating the need to link a bunch of test executables. The second should eliminate some intermittent failures that Chris (and perhaps others?) were seeing on Linux.