Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 1 | # Copyright 2015 The Weave Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | ### |
| 6 | # tests |
| 7 | |
Jacob Marble | e785ec9 | 2016-01-13 13:49:44 -0800 | [diff] [blame] | 8 | TEST_FLAGS ?= \ |
| 9 | --gtest_break_on_failure |
| 10 | |
| 11 | TEST_ENV ?= |
| 12 | ifeq (1, $(CLANG)) |
| 13 | TEST_ENV += ASAN_SYMBOLIZER_PATH=$(shell which llvm-symbolizer-3.6) |
| 14 | endif |
| 15 | |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 16 | weave_test_obj_files := $(WEAVE_TEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o) |
| 17 | |
Jacob Marble | 2da7e94 | 2016-01-20 15:58:33 -0800 | [diff] [blame] | 18 | $(weave_test_obj_files) : out/$(BUILD_MODE)/%.o : %.cc third_party/include/gtest/gtest.h |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 19 | mkdir -p $(dir $@) |
| 20 | $(CXX) $(DEFS_$(BUILD_MODE)) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $< |
| 21 | |
| 22 | out/$(BUILD_MODE)/libweave-test.a : $(weave_test_obj_files) |
| 23 | $(AR) crs $@ $^ |
| 24 | |
| 25 | weave_unittest_obj_files := $(WEAVE_UNITTEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o) |
| 26 | |
Jacob Marble | 2da7e94 | 2016-01-20 15:58:33 -0800 | [diff] [blame] | 27 | $(weave_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc third_party/include/gtest/gtest.h |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 28 | mkdir -p $(dir $@) |
| 29 | $(CXX) $(DEFS_$(BUILD_MODE)) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $< |
| 30 | |
| 31 | out/$(BUILD_MODE)/libweave_testrunner : $(weave_unittest_obj_files) $(third_party_chromium_crypto_unittest_obj_files) $(third_party_chromium_base_unittest_obj_files) out/$(BUILD_MODE)/libweave_common.a out/$(BUILD_MODE)/libweave-test.a |
Jacob Marble | f1ac1d4 | 2016-01-12 16:34:39 -0800 | [diff] [blame] | 32 | $(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lgmock -lgtest -lpthread -lrt -Lthird_party/lib |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 33 | |
| 34 | test : out/$(BUILD_MODE)/libweave_testrunner |
Jacob Marble | e785ec9 | 2016-01-13 13:49:44 -0800 | [diff] [blame] | 35 | $(TEST_ENV) $< $(TEST_FLAGS) |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 36 | |
| 37 | ### |
| 38 | # export tests |
| 39 | |
| 40 | weave_exports_unittest_obj_files := $(WEAVE_EXPORTS_UNITTEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o) |
| 41 | |
Jacob Marble | 2da7e94 | 2016-01-20 15:58:33 -0800 | [diff] [blame] | 42 | $(weave_exports_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc third_party/include/gtest/gtest.h |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 43 | mkdir -p $(dir $@) |
| 44 | $(CXX) $(DEFS_$(BUILD_MODE)) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $< |
| 45 | |
| 46 | out/$(BUILD_MODE)/libweave_exports_testrunner : $(weave_exports_unittest_obj_files) out/$(BUILD_MODE)/libweave.so out/$(BUILD_MODE)/libweave-test.a out/$(BUILD_MODE)/src/test/weave_testrunner.o |
Jacob Marble | f1ac1d4 | 2016-01-12 16:34:39 -0800 | [diff] [blame] | 47 | $(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lgmock -lgtest -lpthread -lrt -Lthird_party/lib -Wl,-rpath=out/$(BUILD_MODE)/ |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 48 | |
| 49 | export-test : out/$(BUILD_MODE)/libweave_exports_testrunner |
Jacob Marble | e785ec9 | 2016-01-13 13:49:44 -0800 | [diff] [blame] | 50 | $(TEST_ENV) $< $(TEST_FLAGS) |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 51 | |
Jacob Marble | e785ec9 | 2016-01-13 13:49:44 -0800 | [diff] [blame] | 52 | testall : test export-test |
| 53 | |
| 54 | .PHONY : test export-test testall |
Jacob Marble | 7e72437 | 2016-01-07 16:16:47 -0800 | [diff] [blame] | 55 | |