diff options
author | jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-12-15 16:54:44 +0000 |
---|---|---|
committer | jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-12-15 16:54:44 +0000 |
commit | 7f941f990aa436c7d736f19a2f5579cd85933ec6 (patch) | |
tree | ed8f40ee4483bc3dcd68b24b3ba1e399b02f11ab /src/tools | |
parent | Issue 25003: Linux dumper: Fix infinite loop in stabs parser. (diff) | |
download | breakpad-7f941f990aa436c7d736f19a2f5579cd85933ec6.tar.xz |
Linux dumper: Add unit tests for google_breakpad::StabsReader.
The test system is based on Google C++ Testing Framework and the
Google C++ Mocking Framework.
This includes a parser that turns human-readable input files ("mock
stabs") into .stab and .stabstr section contents, which we can then
pass to a StabsReader instance, using a handler object written with
GoogleMock. The 'make check' target in src/tools/linux/dump_syms runs
this.
The supplied input file is pretty small, but I've done coverage
testing, and it does cover the parser.
I thought the mock stabs parser would be less elaborate than it turned
out to be. Lesson learned.
a=jimblandy, r=nealsid
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@444 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/linux/dump_syms/Makefile | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tools/linux/dump_syms/Makefile b/src/tools/linux/dump_syms/Makefile index 61aee177..a0424c05 100644 --- a/src/tools/linux/dump_syms/Makefile +++ b/src/tools/linux/dump_syms/Makefile @@ -78,6 +78,40 @@ dump_symbols.o: dump_symbols.cc file_id.o: file_id.cc module.o: module.cc stabs_reader.o: stabs_reader.cc +COVERAGE_SOURCES += stabs_reader.cc + + + +### Google C++ Testing Framework. +VPATH += $(SRC)/testing/gtest/src +GTEST_CPPFLAGS = -I$(SRC)/testing/gtest/include -I$(SRC)/testing/gtest +gtest-all.o: gtest-all.cc +gtest_main.o: gtest_main.cc +gtest-all.o gtest_main.o: override CPPFLAGS += $(GTEST_CPPFLAGS) + + +### Google C++ Mocking Framework. +VPATH += $(SRC)/testing/src +GMOCK_CPPFLAGS = -I$(SRC)/testing -I$(SRC)/testing/include +gmock-all.o: gmock-all.cc +gmock-all.o: override CPPFLAGS += $(GTEST_CPPFLAGS) $(GMOCK_CPPFLAGS) + + +### Unit tests for google_breakpad::StabsReader. +check: check-stabs_reader_unittest +check-stabs_reader_unittest: stabs_reader_unittest +stabs_reader_unittest: \ + gmock-all.o \ + gtest-all.o \ + gtest_main.o \ + stabs_reader.o \ + $(empty) +CPP_EXECUTABLES += stabs_reader_unittest +stabs_reader_unittest.o: stabs_reader_unittest.cc +stabs_reader_unittest.o: override CPPFLAGS += $(GTEST_CPPFLAGS) \ + $(GMOCK_CPPFLAGS) +clean:: + rm -f stabs_reader_unittest ### Generic compilation rules. |