twitter/CocoaSPDY — pull request #86 by kgoodier (2014-11-19 21:21:38+00:00)
Title: Add "Coverage" configuration with code coverage flags set.

- new build settings
- integration with Coveralls.io when using Travis CI
- workarounds for Apple bugs

"Coverage" config is based on "Debug" but enables "Generate Test Coverage
Files" and "Instrument Program Flow" for builds. Unit tests use
this configuration now instead of Debug and also set a COVERAGE=1 flag,
for conditional use in the code.

.gcda and .gcno files are now generated, and live in
~/Library/Developer/Xcode/DerivedData/SPDY-fkxxegoemtsttmayyuvejarxgimy/Build/Intermediates/SPDY.build/Coverage-iphonesimulator/SPDYUnitTests.build/Objects-normal/i386

They can be opened with something like CoverStory locally after running
the unit tests. On Github, our integration with Travis will produce
Coveralls data for pull requests and inserts a little coverage badge.

The Travis build uses the cpp-coverage utility (coveralls) to produce
reports for Coveralls.io ingestion. This tool requires the source code and
the coverage files to be located under a common root, hence the copy into
the "gcov" directory. Finding the location where Xcode puts the
intermediate files is non-trivial, so we take advantage of the fact
Travis gives us a clean slate each time.

SPDYSenTestLog.m is created to workaround a bug where no .gcda files
are generated for certain combinations unless they are explicitly
flushed. It's unclear exactly when this happens, but simulator 7.0 is
affected, and simulator 8.0 with Travis is affected.