aboutsummaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorjimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-12-15 16:54:44 +0000
committerjimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-12-15 16:54:44 +0000
commit7f941f990aa436c7d736f19a2f5579cd85933ec6 (patch)
treeed8f40ee4483bc3dcd68b24b3ba1e399b02f11ab /src/tools
parentIssue 25003: Linux dumper: Fix infinite loop in stabs parser. (diff)
downloadbreakpad-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/Makefile34
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.