blob: d0042db3053b7ae7a333d1875d5909aee102d2c0 [file] [log] [blame]
Jacob Marble7e724372016-01-07 16:16:47 -08001# 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 Marblee785ec92016-01-13 13:49:44 -08008TEST_FLAGS ?= \
9 --gtest_break_on_failure
10
11TEST_ENV ?=
12ifeq (1, $(CLANG))
13 TEST_ENV += ASAN_SYMBOLIZER_PATH=$(shell which llvm-symbolizer-3.6)
14endif
15
Jacob Marble7e724372016-01-07 16:16:47 -080016weave_test_obj_files := $(WEAVE_TEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
17
Mike Frysingerd70a9652016-03-17 04:14:27 -040018$(weave_test_obj_files) : out/$(BUILD_MODE)/%.o : %.cc
Jacob Marble7e724372016-01-07 16:16:47 -080019 mkdir -p $(dir $@)
20 $(CXX) $(DEFS_$(BUILD_MODE)) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
21
22out/$(BUILD_MODE)/libweave-test.a : $(weave_test_obj_files)
23 $(AR) crs $@ $^
24
25weave_unittest_obj_files := $(WEAVE_UNITTEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
26
Mike Frysingerd70a9652016-03-17 04:14:27 -040027$(weave_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc
Jacob Marble7e724372016-01-07 16:16:47 -080028 mkdir -p $(dir $@)
Vitaly Bukae03c0942016-01-22 20:16:21 -080029 $(CXX) $(DEFS_TEST) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
Jacob Marble7e724372016-01-07 16:16:47 -080030
Vitaly Buka43bf6b72016-01-22 21:10:07 -080031out/$(BUILD_MODE)/libweave_testrunner : \
32 $(weave_unittest_obj_files) \
33 $(third_party_chromium_crypto_unittest_obj_files) \
34 $(third_party_chromium_base_unittest_obj_files) \
35 out/$(BUILD_MODE)/libweave_common.a \
Jacob Marble51c4d0d2016-02-03 13:42:56 -080036 out/$(BUILD_MODE)/libweave-test.a \
Mike Frysingerd70a9652016-03-17 04:14:27 -040037 $(third_party_gtest_lib) \
38 $(third_party_gmock_lib)
Jacob Marble51c4d0d2016-02-03 13:42:56 -080039 $(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lpthread -lrt -Lthird_party/lib
Jacob Marble7e724372016-01-07 16:16:47 -080040
41test : out/$(BUILD_MODE)/libweave_testrunner
Jacob Marblee785ec92016-01-13 13:49:44 -080042 $(TEST_ENV) $< $(TEST_FLAGS)
Jacob Marble7e724372016-01-07 16:16:47 -080043
44###
45# export tests
46
47weave_exports_unittest_obj_files := $(WEAVE_EXPORTS_UNITTEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
48
Mike Frysingerd70a9652016-03-17 04:14:27 -040049$(weave_exports_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc
Jacob Marble7e724372016-01-07 16:16:47 -080050 mkdir -p $(dir $@)
Vitaly Bukae03c0942016-01-22 20:16:21 -080051 $(CXX) $(DEFS_TEST) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
Jacob Marble7e724372016-01-07 16:16:47 -080052
Vitaly Buka43bf6b72016-01-22 21:10:07 -080053out/$(BUILD_MODE)/libweave_exports_testrunner : \
54 $(weave_exports_unittest_obj_files) \
55 out/$(BUILD_MODE)/libweave.so \
56 out/$(BUILD_MODE)/libweave-test.a \
Jacob Marble51c4d0d2016-02-03 13:42:56 -080057 out/$(BUILD_MODE)/src/test/weave_testrunner.o \
Mike Frysingerd70a9652016-03-17 04:14:27 -040058 $(third_party_gtest_lib) \
59 $(third_party_gmock_lib)
Jacob Marble51c4d0d2016-02-03 13:42:56 -080060 $(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lpthread -lrt -Lthird_party/lib -Wl,-rpath=out/$(BUILD_MODE)/
Jacob Marble7e724372016-01-07 16:16:47 -080061
62export-test : out/$(BUILD_MODE)/libweave_exports_testrunner
Jacob Marblee785ec92016-01-13 13:49:44 -080063 $(TEST_ENV) $< $(TEST_FLAGS)
Jacob Marble7e724372016-01-07 16:16:47 -080064
Jacob Marblee785ec92016-01-13 13:49:44 -080065testall : test export-test
66
67.PHONY : test export-test testall
Jacob Marble7e724372016-01-07 16:16:47 -080068