From 7f941f990aa436c7d736f19a2f5579cd85933ec6 Mon Sep 17 00:00:00 2001 From: "jimblandy@gmail.com" Date: Tue, 15 Dec 2009 16:54:44 +0000 Subject: 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 --- src/tools/linux/dump_syms/Makefile | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/tools/linux') 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. -- cgit v1.2.1