tests: make the tests build incrementally.
Re-work the Makefile rules so the binary targets include $OBJECT_DIR. This lets the tests build incrementally, which makes the iterating when building new tests much faster. Signed-off-by: Michael Hope <mlhx@google.com>
This commit is contained in:
parent
73d7bc6187
commit
266d0d6726
|
@ -61,16 +61,18 @@ TESTS = \
|
|||
lowpass_unittest \
|
||||
baro_unittest
|
||||
|
||||
TEST_BINARIES = $(TESTS:%=$(OBJECT_DIR)/%)
|
||||
|
||||
# All Google Test headers. Usually you shouldn't change this
|
||||
# definition.
|
||||
GTEST_HEADERS = $(GTEST_DIR)/inc/gtest/*.h
|
||||
|
||||
# House-keeping build targets.
|
||||
|
||||
all : $(TESTS)
|
||||
all : $(TEST_BINARIES)
|
||||
|
||||
clean :
|
||||
rm -rf $(TESTS) $(OBJECT_DIR)
|
||||
rm -rf $(OBJECT_DIR)
|
||||
|
||||
# Builds gtest.a and gtest_main.a.
|
||||
|
||||
|
@ -127,16 +129,16 @@ $(OBJECT_DIR)/battery_unittest.o : \
|
|||
$(GTEST_HEADERS)
|
||||
|
||||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/battery_unittest.cc -o $@
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $< -o $@
|
||||
|
||||
battery_unittest : \
|
||||
$(OBJECT_DIR)/battery_unittest : \
|
||||
$(OBJECT_DIR)/sensors/battery.o \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
$(OBJECT_DIR)/battery_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
||||
$(CXX) $(CXX_FLAGS) $^ -o $(OBJECT_DIR)/$@
|
||||
|
||||
$(CXX) $(CXX_FLAGS) $^ -o $@
|
||||
|
||||
$(OBJECT_DIR)/common/encoding.o : $(USER_DIR)/common/encoding.c $(USER_DIR)/common/encoding.h $(GTEST_HEADERS)
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(C_FLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/common/encoding.c -o $@
|
||||
|
@ -149,7 +151,7 @@ $(OBJECT_DIR)/encoding_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/encoding_unittest.cc -o $@
|
||||
|
||||
encoding_unittest : \
|
||||
$(OBJECT_DIR)/encoding_unittest : \
|
||||
$(OBJECT_DIR)/common/encoding.o \
|
||||
$(OBJECT_DIR)/encoding_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -172,7 +174,7 @@ $(OBJECT_DIR)/flight_imu_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/flight_imu_unittest.cc -o $@
|
||||
|
||||
flight_imu_unittest : \
|
||||
$(OBJECT_DIR)/flight_imu_unittest : \
|
||||
$(OBJECT_DIR)/flight/imu.o \
|
||||
$(OBJECT_DIR)/flight/altitudehold.o \
|
||||
$(OBJECT_DIR)/flight_imu_unittest.o \
|
||||
|
@ -188,15 +190,13 @@ $(OBJECT_DIR)/maths_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/maths_unittest.cc -o $@
|
||||
|
||||
maths_unittest : \
|
||||
$(OBJECT_DIR)/maths_unittest : \
|
||||
$(OBJECT_DIR)/maths_unittest.o \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
||||
$(CXX) $(CXX_FLAGS) $^ -o $(OBJECT_DIR)/$@
|
||||
|
||||
|
||||
|
||||
$(OBJECT_DIR)/flight/altitudehold.o : \
|
||||
$(USER_DIR)/flight/altitudehold.c \
|
||||
$(USER_DIR)/flight/altitudehold.h \
|
||||
|
@ -213,7 +213,7 @@ $(OBJECT_DIR)/altitude_hold_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/altitude_hold_unittest.cc -o $@
|
||||
|
||||
altitude_hold_unittest : \
|
||||
$(OBJECT_DIR)/altitude_hold_unittest : \
|
||||
$(OBJECT_DIR)/flight/altitudehold.o \
|
||||
$(OBJECT_DIR)/altitude_hold_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -237,7 +237,7 @@ $(OBJECT_DIR)/gps_conversion_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/gps_conversion_unittest.cc -o $@
|
||||
|
||||
gps_conversion_unittest : \
|
||||
$(OBJECT_DIR)/gps_conversion_unittest : \
|
||||
$(OBJECT_DIR)/flight/gps_conversion.o \
|
||||
$(OBJECT_DIR)/gps_conversion_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -258,11 +258,11 @@ $(OBJECT_DIR)/telemetry_hott_unittest.o : \
|
|||
$(TEST_DIR)/telemetry_hott_unittest.cc \
|
||||
$(USER_DIR)/telemetry/hott.h \
|
||||
$(GTEST_HEADERS)
|
||||
|
||||
|
||||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/telemetry_hott_unittest.cc -o $@
|
||||
|
||||
telemetry_hott_unittest : \
|
||||
$(OBJECT_DIR)/telemetry_hott_unittest : \
|
||||
$(OBJECT_DIR)/telemetry/hott.o \
|
||||
$(OBJECT_DIR)/telemetry_hott_unittest.o \
|
||||
$(OBJECT_DIR)/flight/gps_conversion.o \
|
||||
|
@ -288,7 +288,7 @@ $(OBJECT_DIR)/rc_controls_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/rc_controls_unittest.cc -o $@
|
||||
|
||||
rc_controls_unittest : \
|
||||
$(OBJECT_DIR)/rc_controls_unittest : \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
$(OBJECT_DIR)/io/rc_controls.o \
|
||||
$(OBJECT_DIR)/rc_controls_unittest.o \
|
||||
|
@ -301,7 +301,7 @@ $(OBJECT_DIR)/io/ledstrip.o : \
|
|||
$(USER_DIR)/io/ledstrip.c \
|
||||
$(USER_DIR)/io/ledstrip.h \
|
||||
$(GTEST_HEADERS)
|
||||
|
||||
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(C_FLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/io/ledstrip.c -o $@
|
||||
|
||||
|
@ -313,7 +313,7 @@ $(OBJECT_DIR)/ledstrip_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/ledstrip_unittest.cc -o $@
|
||||
|
||||
ledstrip_unittest : \
|
||||
$(OBJECT_DIR)/ledstrip_unittest : \
|
||||
$(OBJECT_DIR)/io/ledstrip.o \
|
||||
$(OBJECT_DIR)/ledstrip_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -338,7 +338,7 @@ $(OBJECT_DIR)/ws2811_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/ws2811_unittest.cc -o $@
|
||||
|
||||
ws2811_unittest : \
|
||||
$(OBJECT_DIR)/ws2811_unittest : \
|
||||
$(OBJECT_DIR)/drivers/light_ws2811strip.o \
|
||||
$(OBJECT_DIR)/ws2811_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -362,7 +362,7 @@ $(OBJECT_DIR)/lowpass_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/lowpass_unittest.cc -o $@
|
||||
|
||||
lowpass_unittest : \
|
||||
$(OBJECT_DIR)/lowpass_unittest : \
|
||||
$(OBJECT_DIR)/flight/lowpass.o \
|
||||
$(OBJECT_DIR)/lowpass_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -385,7 +385,7 @@ $(OBJECT_DIR)/flight_mixer_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/flight_mixer_unittest.cc -o $@
|
||||
|
||||
flight_mixer_unittest : \
|
||||
$(OBJECT_DIR)/flight_mixer_unittest : \
|
||||
$(OBJECT_DIR)/flight/mixer.o \
|
||||
$(OBJECT_DIR)/flight_mixer_unittest.o \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
|
@ -409,7 +409,7 @@ $(OBJECT_DIR)/flight_failsafe_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/flight_failsafe_unittest.cc -o $@
|
||||
|
||||
flight_failsafe_unittest : \
|
||||
$(OBJECT_DIR)/flight_failsafe_unittest : \
|
||||
$(OBJECT_DIR)/flight/failsafe.o \
|
||||
$(OBJECT_DIR)/flight_failsafe_unittest.o \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
|
@ -433,7 +433,7 @@ $(OBJECT_DIR)/io_serial_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/io_serial_unittest.cc -o $@
|
||||
|
||||
io_serial_unittest : \
|
||||
$(OBJECT_DIR)/io_serial_unittest : \
|
||||
$(OBJECT_DIR)/io/serial.o \
|
||||
$(OBJECT_DIR)/io_serial_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
@ -456,7 +456,7 @@ $(OBJECT_DIR)/rx_rx_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/rx_rx_unittest.cc -o $@
|
||||
|
||||
rx_rx_unittest : \
|
||||
$(OBJECT_DIR)/rx_rx_unittest : \
|
||||
$(OBJECT_DIR)/rx/rx.o \
|
||||
$(OBJECT_DIR)/rx_rx_unittest.o \
|
||||
$(OBJECT_DIR)/common/maths.o \
|
||||
|
@ -480,15 +480,14 @@ $(OBJECT_DIR)/baro_unittest.o : \
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/baro_unittest.cc -o $@
|
||||
|
||||
baro_unittest : \
|
||||
$(OBJECT_DIR)/baro_unittest : \
|
||||
$(OBJECT_DIR)/drivers/barometer_ms5611.o \
|
||||
$(OBJECT_DIR)/baro_unittest.o \
|
||||
$(OBJECT_DIR)/gtest_main.a
|
||||
|
||||
$(CXX) $(CXX_FLAGS) $^ -o $(OBJECT_DIR)/$@
|
||||
|
||||
test: $(TESTS)
|
||||
set -e && for test in $(TESTS) ; do \
|
||||
$(OBJECT_DIR)/$$test; \
|
||||
done
|
||||
test: $(TESTS:%=test-%)
|
||||
|
||||
test-%: $(OBJECT_DIR)/%
|
||||
$<
|
||||
|
|
Loading…
Reference in New Issue