From 46fac0f58d169555cd0d53f8acb7fbe83a45a191 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Sun, 30 Aug 2009 21:12:17 -0700 Subject: Tests use valgrind, chdir in test. --- Makefile | 21 ++++++++++++++++----- tests/test_vs_proto2.cc | 16 +++++++++++++++- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 282e3a3..3f2d8c7 100644 --- a/Makefile +++ b/Makefile @@ -73,31 +73,42 @@ python: $(LIBUPB_PIC) # Tests tests: tests/tests \ + tests/test_table \ tests/t.test_vs_proto2.googlemessage1 \ tests/t.test_vs_proto2.googlemessage2 -test: tests/tests - ./tests/tests +test: tests + @echo Running all tests under valgrind. + valgrind --leak-check=full --error-exitcode=1 ./tests/tests +# Needs to be rewritten to separate the benchmark. +# valgrind --error-exitcode=1 ./tests/test_table + @for test in tests/t.* ; do \ + echo valgrind --leak-check=full --error-exitcode=1 ./$$test; \ + valgrind --leak-check=full --error-exitcode=1 ./$$test; \ + done; tests/t.test_vs_proto2.googlemessage1 \ tests/t.test_vs_proto2.googlemessage2: \ tests/test_vs_proto2.cc $(LIBUPB) benchmarks/google_messages.proto.pb \ benchmarks/google_messages.pb.cc - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o tests/test_vs_proto2.googlemessage1 $< \ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o tests/t.test_vs_proto2.googlemessage1 $< \ -DMESSAGE_NAME=\"benchmarks.SpeedMessage1\" \ -DMESSAGE_DESCRIPTOR_FILE=\"../benchmarks/google_messages.proto.pb\" \ -DMESSAGE_FILE=\"../benchmarks/google_message1.dat\" \ -DMESSAGE_CIDENT="benchmarks::SpeedMessage1" \ -DMESSAGE_HFILE=\"../benchmarks/google_messages.pb.h\" \ benchmarks/google_messages.pb.cc -lprotobuf -lpthread $(LIBUPB) - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o tests/test_vs_proto2.googlemessage2 $< \ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o tests/t.test_vs_proto2.googlemessage2 $< \ -DMESSAGE_NAME=\"benchmarks.SpeedMessage2\" \ -DMESSAGE_DESCRIPTOR_FILE=\"../benchmarks/google_messages.proto.pb\" \ -DMESSAGE_FILE=\"../benchmarks/google_message2.dat\" \ -DMESSAGE_CIDENT="benchmarks::SpeedMessage2" \ -DMESSAGE_HFILE=\"../benchmarks/google_messages.pb.h\" \ benchmarks/google_messages.pb.cc -lprotobuf -lpthread $(LIBUPB) -tests/test_table: src/libupb.a +tests/test_table: tests/test_table.cc + # Includes which is a deprecated header. + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -Wno-deprecated -o $@ $< $(LIBUPB) + tests/tests: src/libupb.a # Tools diff --git a/tests/test_vs_proto2.cc b/tests/test_vs_proto2.cc index e284100..f1966ef 100644 --- a/tests/test_vs_proto2.cc +++ b/tests/test_vs_proto2.cc @@ -172,8 +172,22 @@ void parse_and_compare(MESSAGE_CIDENT *proto2_msg, struct upb_msg *upb_msg, compare(*proto2_msg, upb_msg); } -int main() +int main(int argc, char *argv[]) { + // Change cwd to where the binary is. + (void)argc; + char *lastslash = strrchr(argv[0], '/'); + char *progname = argv[0]; + if(lastslash) { + *lastslash = '\0'; + if(chdir(argv[0]) < 0) { + fprintf(stderr, "Error changing directory to %s.\n", argv[0]); + return 1; + } + *lastslash = '/'; + progname = lastslash + 3; /* "/b_" */ + } + // Initialize upb state, parse descriptor. struct upb_context *c = upb_context_new(); struct upb_string *fds = upb_strreadfile(MESSAGE_DESCRIPTOR_FILE); -- cgit v1.2.3