Add metrics library tests. Some metrics daemon API cleanup.
Refactor the metrics daemon API a little so that we don't need
to link in libmetrics into the daemon test binary.
Review URL: http://codereview.chromium.org/2079007
diff --git a/metrics/Makefile b/metrics/Makefile
index 5ce0caf..e0c3741 100644
--- a/metrics/Makefile
+++ b/metrics/Makefile
@@ -15,11 +15,15 @@
DAEMON_TEST = metrics_daemon_test
LIB = libmetrics.a
SHAREDLIB = libmetrics.so
+LIB_TEST = metrics_library_test
CLIENT_OBJS = \
metrics_client.o
LIB_OBJS = \
metrics_library.o
+TESTLIB_OBJS = \
+ metrics_library.o \
+ metrics_library_test.o
DAEMON_OBJS = \
metrics_daemon.o \
metrics_daemon_main.o
@@ -27,12 +31,13 @@
metrics_daemon.o \
metrics_daemon_test.o
-DAEMON_LDFLAGS = $(LDCONFIG) -lrt -lbase -lpthread -lgflags
+DAEMON_LDFLAGS = $(LDFLAGS) $(LDCONFIG) -lrt -lbase -lpthread -lgflags
TESTDAEMON_LIBS = -lgmock -lgtest
+TESTLIB_LIBS = -lgtest -lbase -lrt -lpthread
all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON)
-tests: $(DAEMON_TEST)
+tests: $(DAEMON_TEST) $(LIB_TEST)
$(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
$(CXX) $(LDFLAGS) $^ -o $@
@@ -40,7 +45,7 @@
$(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
$(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
-$(DAEMON_TEST): $(TESTDAEMON_OBJS) $(SHAREDLIB)
+$(DAEMON_TEST): $(TESTDAEMON_OBJS)
$(CXX) -o $@ $^ $(DAEMON_LDFLAGS) $(TESTDAEMON_LIBS)
$(LIB): $(LIB_OBJS)
@@ -49,6 +54,9 @@
$(SHAREDLIB): $(LIB_OBJS)
$(CXX) $(LDFLAGS) -shared $^ -o $@
+$(LIB_TEST): $(TESTLIB_OBJS) $(SHAREDLIB)
+ $(CXX) -o $@ $^ $(LDFLAGS) $(TESTLIB_LIBS)
+
%.o: %.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
@@ -64,4 +72,5 @@
power_states.h
clean:
- rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) $(TESTDAEMON) *.o
+ rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) *.o
+ rm -f $(DAEMON_TEST) $(LIB_TEST)