1#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10#   http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
20AUTOMAKE_OPTIONS = serial-tests
21
22# Thrift compiler rules
23
24debug_proto_gen = $(addprefix gen-d/, DebugProtoTest_types.d)
25
26$(debug_proto_gen): $(top_srcdir)/test/v0.16/DebugProtoTest.thrift
27	$(THRIFT) --gen d -nowarn $<
28
29stress_test_gen = $(addprefix gen-d/thrift/test/stress/, Service.d \
30	StressTest_types.d)
31
32$(stress_test_gen): $(top_srcdir)/test/StressTest.thrift
33	$(THRIFT) --gen d $<
34
35thrift_test_gen = $(addprefix gen-d/thrift/test/, SecondService.d \
36	ThriftTest.d ThriftTest_constants.d ThriftTest_types.d)
37
38$(thrift_test_gen): $(top_srcdir)/test/v0.16/ThriftTest.thrift
39	$(THRIFT) --gen d $<
40
41
42# The actual test targets.
43# There just must be some way to reassign a variable without warnings in
44# Automake...
45targets__ = async_test client_pool_test serialization_benchmark \
46	stress_test_server thrift_test_client thrift_test_server transport_test
47ran_tests__ = client_pool_test \
48	transport_test \
49	async_test_runner.sh \
50	thrift_test_runner.sh
51
52libevent_dependent_targets = async_test_client client_pool_test \
53	stress_test_server thrift_test_server
54libevent_dependent_ran_tests = client_pool_test async_test_runner.sh thrift_test_runner.sh
55
56openssl_dependent_targets = async_test thrift_test_client thrift_test_server
57openssl_dependent_ran_tests = async_test_runner.sh thrift_test_runner.sh
58
59d_test_flags =
60
61if WITH_D_EVENT_TESTS
62d_test_flags += $(DMD_LIBEVENT_FLAGS) ../$(D_EVENT_LIB_NAME)
63targets_ = $(targets__)
64ran_tests_ = $(ran_tests__)
65else
66targets_ = $(filter-out $(libevent_dependent_targets), $(targets__))
67ran_tests_ = $(filter-out $(libevent_dependent_ran_tests), $(ran_tests__))
68endif
69
70if WITH_D_SSL_TESTS
71d_test_flags += $(DMD_OPENSSL_FLAGS) ../$(D_SSL_LIB_NAME)
72targets = $(targets_)
73ran_tests = $(ran_tests_)
74else
75targets = $(filter-out $(openssl_dependent_targets), $(targets_))
76ran_tests = $(filter-out $(openssl_dependent_ran_tests), $(ran_tests_))
77endif
78
79d_test_flags += -w -wi -O -release -inline -I$(top_srcdir)/lib/d/src -Igen-d \
80	$(top_builddir)/lib/d/$(D_LIB_NAME)
81
82
83async_test client_pool_test transport_test: %: %.d
84	$(DMD) $(d_test_flags) -of$@ $^
85
86serialization_benchmark: %: %.d $(debug_proto_gen)
87	$(DMD) $(d_test_flags) -of$@ $^
88
89stress_test_server: %: %.d test_utils.d $(stress_test_gen)
90	$(DMD) $(d_test_flags) -of$@ $^
91
92thrift_test_client: %: %.d thrift_test_common.d $(thrift_test_gen)
93	$(DMD) $(d_test_flags) -of$@ $^
94
95thrift_test_server: %: %.d thrift_test_common.d test_utils.d $(thrift_test_gen)
96	$(DMD) $(d_test_flags) -of$@ $^
97
98
99check-local: $(targets)
100
101clean-local:
102	$(RM) -rf gen-d $(targets) $(addsuffix .o, $(targets))
103
104
105# Tests ran as part of make check.
106
107async_test_runner.sh: async_test
108thrift_test_runner.sh: thrift_test_client thrift_test_server
109
110TESTS = $(ran_tests)
111
112precross: $(targets)
113