1##
2## Copyright (c) 2017, Alliance for Open Media. All rights reserved
3##
4## This source code is subject to the terms of the BSD 2 Clause License and
5## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6## was not distributed with this source code in the LICENSE file, you can
7## obtain it at www.aomedia.org/license/software. If the Alliance for Open
8## Media Patent License 1.0 was not distributed with this source code in the
9## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10##
11
12LIBAOM_TEST_SRCS-yes += acm_random.h
13LIBAOM_TEST_SRCS-yes += clear_system_state.h
14LIBAOM_TEST_SRCS-yes += codec_factory.h
15LIBAOM_TEST_SRCS-yes += md5_helper.h
16LIBAOM_TEST_SRCS-yes += register_state_check.h
17LIBAOM_TEST_SRCS-yes += test.mk
18LIBAOM_TEST_SRCS-yes += test_libaom.cc
19LIBAOM_TEST_SRCS-yes += util.h
20LIBAOM_TEST_SRCS-yes += video_source.h
21LIBAOM_TEST_SRCS-yes += transform_test_base.h
22LIBAOM_TEST_SRCS-yes += function_equivalence_test.h
23
24##
25## BLACK BOX TESTS
26##
27## Black box tests only use the public API.
28##
29LIBAOM_TEST_SRCS-yes                   += ../md5_utils.h ../md5_utils.c
30LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER)    += ivf_video_source.h
31LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += ../y4minput.h ../y4minput.c
32LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += altref_test.cc
33LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += aq_segment_test.cc
34LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += datarate_test.cc
35LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += encode_api_test.cc
36LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += error_resilience_test.cc
37LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += i420_video_source.h
38#LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += realtime_test.cc
39LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += resize_test.cc
40LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += y4m_video_source.h
41LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += yuv_video_source.h
42
43#LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += level_test.cc
44LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += active_map_refresh_test.cc
45LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += active_map_test.cc
46LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += borders_test.cc
47LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += cpu_speed_test.cc
48LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += frame_size_tests.cc
49LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += lossless_test.cc
50
51LIBAOM_TEST_SRCS-yes                   += decode_test_driver.cc
52LIBAOM_TEST_SRCS-yes                   += decode_test_driver.h
53LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += encode_test_driver.cc
54LIBAOM_TEST_SRCS-yes                   += encode_test_driver.h
55
56## IVF writing.
57LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += ../ivfenc.c ../ivfenc.h
58
59## Y4m parsing.
60LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER)    += y4m_test.cc ../y4menc.c ../y4menc.h
61
62## WebM Parsing
63ifeq ($(CONFIG_WEBM_IO), yes)
64LIBWEBM_PARSER_SRCS += ../third_party/libwebm/mkvparser/mkvparser.cc
65LIBWEBM_PARSER_SRCS += ../third_party/libwebm/mkvparser/mkvreader.cc
66LIBWEBM_PARSER_SRCS += ../third_party/libwebm/mkvparser/mkvparser.h
67LIBWEBM_PARSER_SRCS += ../third_party/libwebm/mkvparser/mkvreader.h
68LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += $(LIBWEBM_PARSER_SRCS)
69LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += ../tools_common.h
70LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += ../webmdec.cc
71LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += ../webmdec.h
72LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += webm_video_source.h
73endif
74
75LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += decode_api_test.cc
76
77# Currently we only support decoder perf tests for av1. Also they read from WebM
78# files, so WebM IO is required.
79ifeq ($(CONFIG_DECODE_PERF_TESTS)$(CONFIG_AV1_DECODER)$(CONFIG_WEBM_IO), \
80      yesyesyes)
81LIBAOM_TEST_SRCS-yes                   += decode_perf_test.cc
82endif
83
84ifeq ($(CONFIG_ENCODE_PERF_TESTS)$(CONFIG_AV1_ENCODER), yesyes)
85LIBAOM_TEST_SRCS-yes += encode_perf_test.cc
86endif
87
88## Multi-codec / unconditional black box tests.
89ifeq ($(findstring yes,$(CONFIG_AV1_ENCODER)),yes)
90LIBAOM_TEST_SRCS-yes += active_map_refresh_test.cc
91LIBAOM_TEST_SRCS-yes += active_map_test.cc
92LIBAOM_TEST_SRCS-yes += end_to_end_test.cc
93endif
94
95##
96## WHITE BOX TESTS
97##
98## Whitebox tests invoke functions not exposed via the public API. Certain
99## shared library builds don't make these functions accessible.
100##
101ifeq ($(CONFIG_SHARED),)
102
103## AV1
104ifeq ($(CONFIG_AV1),yes)
105
106# These tests require both the encoder and decoder to be built.
107ifeq ($(CONFIG_AV1_ENCODER)$(CONFIG_AV1_DECODER),yesyes)
108# IDCT test currently depends on FDCT function
109LIBAOM_TEST_SRCS-yes                   += coding_path_sync.cc
110LIBAOM_TEST_SRCS-yes                   += idct8x8_test.cc
111LIBAOM_TEST_SRCS-yes                   += partial_idct_test.cc
112LIBAOM_TEST_SRCS-yes                   += superframe_test.cc
113LIBAOM_TEST_SRCS-yes                   += tile_independence_test.cc
114LIBAOM_TEST_SRCS-yes                   += ethread_test.cc
115LIBAOM_TEST_SRCS-yes                   += motion_vector_test.cc
116ifneq ($(CONFIG_ANS),yes)
117LIBAOM_TEST_SRCS-yes                   += binary_codes_test.cc
118endif
119ifeq ($(CONFIG_EXT_TILE),yes)
120LIBAOM_TEST_SRCS-yes                   += av1_ext_tile_test.cc
121endif
122ifeq ($(CONFIG_ANS),yes)
123LIBAOM_TEST_SRCS-yes                   += ans_test.cc
124LIBAOM_TEST_SRCS-yes                   += ans_codec_test.cc
125else
126LIBAOM_TEST_SRCS-yes                   += boolcoder_test.cc
127ifeq ($(CONFIG_ACCOUNTING),yes)
128LIBAOM_TEST_SRCS-yes                   += accounting_test.cc
129endif
130endif
131LIBAOM_TEST_SRCS-yes                   += divu_small_test.cc
132#LIBAOM_TEST_SRCS-yes                   += encoder_parms_get_to_decoder.cc
133endif
134
135LIBAOM_TEST_SRCS-$(CONFIG_ADAPT_SCAN)  += scan_test.cc
136LIBAOM_TEST_SRCS-yes                   += convolve_test.cc
137LIBAOM_TEST_SRCS-yes                   += lpf_8_test.cc
138ifeq ($(CONFIG_CDEF_SINGLEPASS),yes)
139LIBAOM_TEST_SRCS-$(CONFIG_CDEF)        += cdef_test.cc
140else
141LIBAOM_TEST_SRCS-$(CONFIG_CDEF)        += dering_test.cc
142LIBAOM_TEST_SRCS-$(CONFIG_CDEF)        += clpf_test.cc
143endif
144LIBAOM_TEST_SRCS-yes                   += simd_cmp_impl.h
145LIBAOM_TEST_SRCS-$(HAVE_SSE2)          += simd_cmp_sse2.cc
146LIBAOM_TEST_SRCS-$(HAVE_SSSE3)         += simd_cmp_ssse3.cc
147LIBAOM_TEST_SRCS-$(HAVE_SSE4_1)        += simd_cmp_sse4.cc
148LIBAOM_TEST_SRCS-$(HAVE_AVX2)          += simd_cmp_avx2.cc
149LIBAOM_TEST_SRCS-$(HAVE_NEON)          += simd_cmp_neon.cc
150LIBAOM_TEST_SRCS-yes                   += simd_impl.h
151LIBAOM_TEST_SRCS-$(HAVE_SSE2)          += simd_sse2_test.cc
152LIBAOM_TEST_SRCS-$(HAVE_SSSE3)         += simd_ssse3_test.cc
153LIBAOM_TEST_SRCS-$(HAVE_SSE4_1)        += simd_sse4_test.cc
154LIBAOM_TEST_SRCS-$(HAVE_AVX2)          += simd_avx2_test.cc
155LIBAOM_TEST_SRCS-$(HAVE_NEON)          += simd_neon_test.cc
156LIBAOM_TEST_SRCS-yes                   += intrapred_test.cc
157LIBAOM_TEST_SRCS-$(CONFIG_INTRABC)     += intrabc_test.cc
158#LIBAOM_TEST_SRCS-$(CONFIG_AV1_DECODER) += av1_thread_test.cc
159LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += dct16x16_test.cc
160LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += dct32x32_test.cc
161LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += fdct4x4_test.cc
162LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += fdct8x8_test.cc
163LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += hadamard_test.cc
164LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += minmax_test.cc
165LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += variance_test.cc
166LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += error_block_test.cc
167#LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_quantize_test.cc
168LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += subtract_test.cc
169LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += arf_freq_test.cc
170ifneq ($(CONFIG_NEW_QUANT), yes)
171LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += quantize_func_test.cc
172endif
173LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += block_error_test.cc
174
175LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_inv_txfm_test.cc
176LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_dct_test.cc
177LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht4x4_test.cc
178LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht8x8_test.cc
179LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht16x16_test.cc
180LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht32x32_test.cc
181ifeq ($(CONFIG_TX64X64),yes)
182LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht64x64_test.cc
183endif
184ifeq ($(CONFIG_EXT_TX),yes)
185LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht4x8_test.cc
186LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht8x4_test.cc
187LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht8x16_test.cc
188LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht16x8_test.cc
189LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht16x32_test.cc
190LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fht32x16_test.cc
191endif
192
193LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += sum_squares_test.cc
194LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += subtract_test.cc
195LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += blend_a64_mask_test.cc
196LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += blend_a64_mask_1d_test.cc
197
198LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += masked_variance_test.cc
199LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += masked_sad_test.cc
200LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_wedge_utils_test.cc
201
202## Skip the unit test written for 4-tap filter intra predictor, because we
203## revert to 3-tap filter.
204## ifeq ($(CONFIG_FILTER_INTRA),yes)
205## LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += filterintra_predictors_test.cc
206## endif
207
208ifeq ($(CONFIG_MOTION_VAR),yes)
209LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += obmc_sad_test.cc
210LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += obmc_variance_test.cc
211endif
212
213ifeq ($(CONFIG_HIGHBITDEPTH),yes)
214ifeq ($(CONFIG_AV1_ENCODER),yes)
215LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += av1_quantize_test.cc
216LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += av1_highbd_iht_test.cc
217endif
218endif # CONFIG_HIGHBITDEPTH
219endif # AV1
220
221## Multi-codec / unconditional whitebox tests.
222
223ifeq ($(CONFIG_AV1_ENCODER),yes)
224LIBAOM_TEST_SRCS-yes += avg_test.cc
225endif
226ifeq ($(CONFIG_INTERNAL_STATS),yes)
227LIBAOM_TEST_SRCS-$(CONFIG_HIGHBITDEPTH) += hbd_metrics_test.cc
228endif
229LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += sad_test.cc
230LIBAOM_TEST_SRCS-$(CONFIG_AV1) += av1_txfm_test.h
231LIBAOM_TEST_SRCS-$(CONFIG_AV1) += av1_txfm_test.cc
232LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fwd_txfm1d_test.cc
233LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_inv_txfm1d_test.cc
234LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_fwd_txfm2d_test.cc
235LIBAOM_TEST_SRCS-$(CONFIG_AV1_ENCODER) += av1_inv_txfm2d_test.cc
236LIBAOM_TEST_SRCS-$(CONFIG_AV1) += av1_convolve_test.cc
237LIBAOM_TEST_SRCS-$(CONFIG_AV1) += av1_convolve_optimz_test.cc
238ifneq ($(findstring yes,$(CONFIG_GLOBAL_MOTION)$(CONFIG_WARPED_MOTION)),)
239LIBAOM_TEST_SRCS-$(HAVE_SSE2) += warp_filter_test_util.h
240LIBAOM_TEST_SRCS-$(HAVE_SSE2) += warp_filter_test.cc warp_filter_test_util.cc
241endif
242ifeq ($(CONFIG_LOOP_RESTORATION),yes)
243LIBAOM_TEST_SRCS-$(HAVE_SSE2) += hiprec_convolve_test_util.h
244LIBAOM_TEST_SRCS-$(HAVE_SSE2) += hiprec_convolve_test.cc
245LIBAOM_TEST_SRCS-$(HAVE_SSE2) += hiprec_convolve_test_util.cc
246LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += selfguided_filter_test.cc
247endif
248ifeq ($(CONFIG_CONVOLVE_ROUND),yes)
249LIBAOM_TEST_SRCS-$(HAVE_SSE2) += av1_convolve_2d_test_util.h
250LIBAOM_TEST_SRCS-$(HAVE_SSE2) += av1_convolve_2d_test.cc
251LIBAOM_TEST_SRCS-$(HAVE_SSE2) += av1_convolve_2d_test_util.cc
252LIBAOM_TEST_SRCS-yes          += convolve_round_test.cc
253endif
254
255ifeq (yesx,$(CONFIG_CONVOLVE_ROUND)x$(CONFIG_COMPOUND_ROUND))
256LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += av1_convolve_scale_test.cc
257endif
258
259ifeq ($(CONFIG_GLOBAL_MOTION)$(CONFIG_AV1_ENCODER),yesyes)
260LIBAOM_TEST_SRCS-$(HAVE_SSE4_1) += corner_match_test.cc
261endif
262
263TEST_INTRA_PRED_SPEED_SRCS-yes := test_intra_pred_speed.cc
264TEST_INTRA_PRED_SPEED_SRCS-yes += ../md5_utils.h ../md5_utils.c
265
266endif # CONFIG_SHARED
267
268include $(SRC_PATH_BARE)/test/test-data.mk
269