• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2020 The libgav1 Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15if(LIBGAV1_LIBGAV1_TESTS_CMAKE_)
16  return()
17endif() # LIBGAV1_LIBGAV1_TESTS_CMAKE_
18set(LIBGAV1_LIBGAV1_TESTS_CMAKE_ 1)
19
20set(libgav1_googletest "${libgav1_root}/third_party/googletest")
21if(NOT LIBGAV1_ENABLE_TESTS OR NOT EXISTS "${libgav1_googletest}")
22  macro(libgav1_add_tests_targets)
23
24  endmacro()
25
26  if(LIBGAV1_ENABLE_TESTS AND NOT EXISTS "${libgav1_googletest}")
27    message(
28      "GoogleTest not found, setting LIBGAV1_ENABLE_TESTS to false.\n"
29      "To enable tests download the GoogleTest repository to"
30      " third_party/googletest:\n\n  git \\\n    -C ${libgav1_root} \\\n"
31      "    clone -b release-1.12.1 --depth 1 \\\n"
32      "    https://github.com/google/googletest.git third_party/googletest\n")
33    set(LIBGAV1_ENABLE_TESTS FALSE CACHE BOOL "Enables tests." FORCE)
34  endif()
35  return()
36endif()
37
38# Check GoogleTest compiler requirements.
39if((CMAKE_CXX_COMPILER_ID
40    MATCHES
41    "Clang|GNU"
42    AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5")
43   OR (CMAKE_CXX_COMPILER_ID
44       STREQUAL
45       "MSVC"
46       AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19"))
47  macro(libgav1_add_tests_targets)
48
49  endmacro()
50
51  message(
52    WARNING
53      "${CMAKE_CXX_COMPILER} (${CMAKE_CXX_COMPILER_ID} version"
54      " ${CMAKE_CXX_COMPILER_VERSION}) is below the minimum requirements for"
55      " GoogleTest; disabling unit tests. See"
56      " https://github.com/google/googletest#compilers for more detail.")
57  set(LIBGAV1_ENABLE_TESTS FALSE CACHE BOOL "Enables tests." FORCE)
58  return()
59endif()
60
61list(APPEND libgav1_tests_block_utils_sources
62            "${libgav1_root}/tests/block_utils.h"
63            "${libgav1_root}/tests/block_utils.cc")
64
65list(APPEND libgav1_tests_utils_sources
66            "${libgav1_root}/tests/third_party/libvpx/acm_random.h"
67            "${libgav1_root}/tests/third_party/libvpx/md5_helper.h"
68            "${libgav1_root}/tests/third_party/libvpx/md5_utils.cc"
69            "${libgav1_root}/tests/third_party/libvpx/md5_utils.h"
70            "${libgav1_root}/tests/utils.h" "${libgav1_root}/tests/utils.cc")
71
72list(APPEND libgav1_tests_utils_test_sources
73            "${libgav1_root}/tests/utils_test.cc")
74
75list(APPEND libgav1_array_2d_test_sources
76            "${libgav1_source}/utils/array_2d_test.cc")
77list(APPEND libgav1_average_blend_test_sources
78            "${libgav1_source}/dsp/average_blend_test.cc")
79list(APPEND libgav1_block_parameters_holder_test_sources
80            "${libgav1_source}/utils/block_parameters_holder_test.cc")
81list(APPEND libgav1_blocking_counter_test_sources
82            "${libgav1_source}/utils/blocking_counter_test.cc")
83list(APPEND libgav1_buffer_pool_test_sources
84            "${libgav1_source}/buffer_pool_test.cc")
85list(APPEND libgav1_cdef_test_sources "${libgav1_source}/dsp/cdef_test.cc")
86list(
87  APPEND libgav1_common_test_sources "${libgav1_source}/utils/common_test.cc")
88list(APPEND libgav1_common_avx2_test_sources
89            "${libgav1_source}/dsp/x86/common_avx2.h"
90            "${libgav1_source}/dsp/x86/common_avx2.inc"
91            "${libgav1_source}/dsp/x86/common_avx2_test.cc"
92            "${libgav1_source}/dsp/x86/common_avx2_test.h"
93            "${libgav1_source}/dsp/x86/common_sse4.inc")
94list(APPEND libgav1_common_dsp_test_sources
95            "${libgav1_source}/dsp/common_dsp_test.cc")
96list(APPEND libgav1_common_neon_test_sources
97            "${libgav1_source}/dsp/arm/common_neon_test.cc")
98list(APPEND libgav1_common_sse4_test_sources
99            "${libgav1_source}/dsp/x86/common_sse4.h"
100            "${libgav1_source}/dsp/x86/common_sse4.inc"
101            "${libgav1_source}/dsp/x86/common_sse4_test.cc"
102            "${libgav1_source}/dsp/x86/common_sse4_test.h")
103list(APPEND libgav1_convolve_test_sources
104            "${libgav1_source}/dsp/convolve_test.cc")
105list(APPEND libgav1_cpu_test_sources "${libgav1_source}/utils/cpu_test.cc")
106list(APPEND libgav1_c_decoder_test_sources
107            "${libgav1_source}/c_decoder_test.c"
108            "${libgav1_source}/decoder_test_data.h")
109list(APPEND libgav1_c_version_test_sources "${libgav1_source}/c_version_test.c")
110list(APPEND libgav1_decoder_test_sources
111            "${libgav1_source}/decoder_test.cc"
112            "${libgav1_source}/decoder_test_data.h")
113list(APPEND libgav1_decoder_buffer_test_sources
114            "${libgav1_source}/decoder_buffer_test.cc")
115list(APPEND libgav1_distance_weighted_blend_test_sources
116            "${libgav1_source}/dsp/distance_weighted_blend_test.cc")
117list(APPEND libgav1_dsp_test_sources "${libgav1_source}/dsp/dsp_test.cc")
118list(APPEND libgav1_entropy_decoder_test_sources
119            "${libgav1_source}/utils/entropy_decoder_test.cc"
120            "${libgav1_source}/utils/entropy_decoder_test_data.inc")
121list(APPEND libgav1_file_reader_test_sources
122            "${libgav1_examples}/file_reader_test.cc"
123            "${libgav1_examples}/file_reader_test_common.cc"
124            "${libgav1_examples}/file_reader_test_common.h")
125list(APPEND libgav1_film_grain_test_sources
126            "${libgav1_source}/film_grain_test.cc")
127list(APPEND libgav1_file_reader_factory_test_sources
128            "${libgav1_examples}/file_reader_factory_test.cc")
129list(APPEND libgav1_file_writer_test_sources
130            "${libgav1_examples}/file_writer_test.cc")
131list(APPEND libgav1_internal_frame_buffer_list_test_sources
132            "${libgav1_source}/internal_frame_buffer_list_test.cc")
133list(APPEND libgav1_intra_edge_test_sources
134            "${libgav1_source}/dsp/intra_edge_test.cc")
135list(APPEND libgav1_intrapred_cfl_test_sources
136            "${libgav1_source}/dsp/intrapred_cfl_test.cc")
137list(APPEND libgav1_intrapred_directional_test_sources
138            "${libgav1_source}/dsp/intrapred_directional_test.cc")
139list(APPEND libgav1_intrapred_filter_test_sources
140            "${libgav1_source}/dsp/intrapred_filter_test.cc")
141list(APPEND libgav1_intrapred_test_sources
142            "${libgav1_source}/dsp/intrapred_test.cc")
143list(APPEND libgav1_inverse_transform_test_sources
144            "${libgav1_source}/dsp/inverse_transform_test.cc")
145list(APPEND libgav1_loop_filter_test_sources
146            "${libgav1_source}/dsp/loop_filter_test.cc")
147list(APPEND libgav1_loop_restoration_test_sources
148            "${libgav1_source}/dsp/loop_restoration_test.cc")
149list(APPEND libgav1_mask_blend_test_sources
150            "${libgav1_source}/dsp/mask_blend_test.cc")
151list(APPEND libgav1_motion_field_projection_test_sources
152            "${libgav1_source}/dsp/motion_field_projection_test.cc")
153list(APPEND libgav1_motion_vector_search_test_sources
154            "${libgav1_source}/dsp/motion_vector_search_test.cc")
155list(APPEND libgav1_super_res_test_sources
156            "${libgav1_source}/dsp/super_res_test.cc")
157list(APPEND libgav1_weight_mask_test_sources
158            "${libgav1_source}/dsp/weight_mask_test.cc")
159list(
160  APPEND libgav1_memory_test_sources "${libgav1_source}/utils/memory_test.cc")
161list(APPEND libgav1_obmc_test_sources "${libgav1_source}/dsp/obmc_test.cc")
162list(APPEND libgav1_obu_parser_test_sources
163            "${libgav1_source}/obu_parser_test.cc")
164list(APPEND libgav1_post_filter_test_sources
165            "${libgav1_source}/post_filter_test.cc")
166list(APPEND libgav1_prediction_mask_test_sources
167            "${libgav1_source}/prediction_mask_test.cc")
168list(
169  APPEND libgav1_quantizer_test_sources "${libgav1_source}/quantizer_test.cc")
170list(APPEND libgav1_queue_test_sources "${libgav1_source}/utils/queue_test.cc")
171list(APPEND libgav1_raw_bit_reader_test_sources
172            "${libgav1_source}/utils/raw_bit_reader_test.cc")
173list(APPEND libgav1_reconstruction_test_sources
174            "${libgav1_source}/reconstruction_test.cc")
175list(APPEND libgav1_residual_buffer_pool_test_sources
176            "${libgav1_source}/residual_buffer_pool_test.cc")
177list(APPEND libgav1_scan_test_sources "${libgav1_source}/scan_test.cc")
178list(APPEND libgav1_segmentation_map_test_sources
179            "${libgav1_source}/utils/segmentation_map_test.cc")
180list(APPEND libgav1_segmentation_test_sources
181            "${libgav1_source}/utils/segmentation_test.cc")
182list(APPEND libgav1_stack_test_sources "${libgav1_source}/utils/stack_test.cc")
183list(APPEND libgav1_symbol_decoder_context_test_sources
184            "${libgav1_source}/symbol_decoder_context_test.cc")
185list(APPEND libgav1_threadpool_test_sources
186            "${libgav1_source}/utils/threadpool_test.cc")
187list(APPEND libgav1_threading_strategy_test_sources
188            "${libgav1_source}/threading_strategy_test.cc")
189list(APPEND libgav1_unbounded_queue_test_sources
190            "${libgav1_source}/utils/unbounded_queue_test.cc")
191list(
192  APPEND libgav1_vector_test_sources "${libgav1_source}/utils/vector_test.cc")
193list(APPEND libgav1_version_test_sources "${libgav1_source}/version_test.cc")
194list(APPEND libgav1_warp_test_sources "${libgav1_source}/dsp/warp_test.cc")
195list(APPEND libgav1_warp_prediction_test_sources
196            "${libgav1_source}/warp_prediction_test.cc")
197
198macro(libgav1_add_tests_targets)
199  if(NOT LIBGAV1_ENABLE_TESTS)
200    message(
201      FATAL_ERROR
202        "This version of libgav1_add_tests_targets() should only be used with"
203        " LIBGAV1_ENABLE_TESTS set to true.")
204  endif()
205  libgav1_add_library(TEST
206                      NAME
207                      libgav1_gtest
208                      TYPE
209                      STATIC
210                      SOURCES
211                      "${libgav1_googletest}/googletest/src/gtest-all.cc"
212                      DEFINES
213                      ${libgav1_defines}
214                      INCLUDES
215                      ${libgav1_gtest_include_paths}
216                      ${libgav1_include_paths})
217
218  libgav1_add_library(TEST
219                      NAME
220                      libgav1_gtest_main
221                      TYPE
222                      STATIC
223                      SOURCES
224                      "${libgav1_googletest}/googletest/src/gtest_main.cc"
225                      DEFINES
226                      ${libgav1_defines}
227                      INCLUDES
228                      ${libgav1_gtest_include_paths}
229                      ${libgav1_include_paths})
230
231  if(use_absl_threading)
232    list(APPEND libgav1_common_test_absl_deps absl::synchronization)
233  endif()
234
235  libgav1_add_executable(TEST
236                         NAME
237                         array_2d_test
238                         SOURCES
239                         ${libgav1_array_2d_test_sources}
240                         DEFINES
241                         ${libgav1_defines}
242                         INCLUDES
243                         ${libgav1_test_include_paths}
244                         OBJLIB_DEPS
245                         libgav1_utils
246                         LIB_DEPS
247                         ${libgav1_common_test_absl_deps}
248                         libgav1_gtest
249                         libgav1_gtest_main)
250
251  libgav1_add_executable(TEST
252                         NAME
253                         block_parameters_holder_test
254                         SOURCES
255                         ${libgav1_block_parameters_holder_test_sources}
256                         DEFINES
257                         ${libgav1_defines}
258                         INCLUDES
259                         ${libgav1_test_include_paths}
260                         OBJLIB_DEPS
261                         libgav1_utils
262                         LIB_DEPS
263                         ${libgav1_common_test_absl_deps}
264                         libgav1_gtest
265                         libgav1_gtest_main)
266
267  libgav1_add_executable(TEST
268                         NAME
269                         blocking_counter_test
270                         SOURCES
271                         ${libgav1_blocking_counter_test_sources}
272                         DEFINES
273                         ${libgav1_defines}
274                         INCLUDES
275                         ${libgav1_test_include_paths}
276                         OBJLIB_DEPS
277                         libgav1_utils
278                         LIB_DEPS
279                         absl::time
280                         ${libgav1_common_test_absl_deps}
281                         libgav1_gtest
282                         libgav1_gtest_main)
283
284  if(libgav1_have_avx2)
285    list(APPEND libgav1_common_dsp_test_sources
286                ${libgav1_common_avx2_test_sources})
287  endif()
288  if(libgav1_have_sse4)
289    list(APPEND libgav1_common_dsp_test_sources
290                ${libgav1_common_sse4_test_sources})
291  endif()
292  if(libgav1_have_avx2 OR libgav1_have_sse4)
293    libgav1_add_executable(TEST
294                           NAME
295                           common_dsp_test
296                           SOURCES
297                           ${libgav1_common_dsp_test_sources}
298                           DEFINES
299                           ${libgav1_defines}
300                           INCLUDES
301                           ${libgav1_test_include_paths}
302                           OBJLIB_DEPS
303                           libgav1_utils
304                           LIB_DEPS
305                           ${libgav1_common_test_absl_deps}
306                           libgav1_gtest_main
307                           libgav1_gtest)
308  endif()
309
310  if(libgav1_have_neon)
311    libgav1_add_executable(TEST
312                           NAME
313                           common_neon_test
314                           SOURCES
315                           ${libgav1_common_neon_test_sources}
316                           DEFINES
317                           ${libgav1_defines}
318                           INCLUDES
319                           ${libgav1_test_include_paths}
320                           OBJLIB_DEPS
321                           libgav1_tests_block_utils
322                           libgav1_utils
323                           LIB_DEPS
324                           ${libgav1_common_test_absl_deps}
325                           libgav1_gtest
326                           libgav1_gtest_main)
327  endif()
328
329  libgav1_add_executable(TEST
330                         NAME
331                         common_test
332                         SOURCES
333                         ${libgav1_common_test_sources}
334                         DEFINES
335                         ${libgav1_defines}
336                         INCLUDES
337                         ${libgav1_test_include_paths}
338                         OBJLIB_DEPS
339                         libgav1_utils
340                         LIB_DEPS
341                         ${libgav1_common_test_absl_deps}
342                         libgav1_gtest
343                         libgav1_gtest_main)
344
345  libgav1_add_executable(TEST
346                         NAME
347                         cpu_test
348                         SOURCES
349                         ${libgav1_cpu_test_sources}
350                         DEFINES
351                         ${libgav1_defines}
352                         INCLUDES
353                         ${libgav1_test_include_paths}
354                         OBJLIB_DEPS
355                         libgav1_utils
356                         LIB_DEPS
357                         ${libgav1_common_test_absl_deps}
358                         libgav1_gtest
359                         libgav1_gtest_main)
360
361  libgav1_add_executable(TEST
362                         NAME
363                         entropy_decoder_test
364                         SOURCES
365                         ${libgav1_entropy_decoder_test_sources}
366                         DEFINES
367                         ${libgav1_defines}
368                         INCLUDES
369                         ${libgav1_test_include_paths}
370                         OBJLIB_DEPS
371                         libgav1_utils
372                         LIB_DEPS
373                         absl::time
374                         ${libgav1_common_test_absl_deps}
375                         libgav1_gtest
376                         libgav1_gtest_main)
377
378  libgav1_add_executable(TEST
379                         NAME
380                         file_reader_test
381                         SOURCES
382                         ${libgav1_file_reader_test_sources}
383                         DEFINES
384                         ${libgav1_defines}
385                         INCLUDES
386                         ${libgav1_test_include_paths}
387                         OBJLIB_DEPS
388                         libgav1_dsp
389                         libgav1_file_reader
390                         libgav1_utils
391                         libgav1_tests_utils
392                         LIB_DEPS
393                         absl::strings
394                         absl::time
395                         ${libgav1_common_test_absl_deps}
396                         libgav1_gtest
397                         libgav1_gtest_main)
398
399  libgav1_add_executable(TEST
400                         NAME
401                         file_reader_factory_test
402                         SOURCES
403                         ${libgav1_file_reader_factory_test_sources}
404                         DEFINES
405                         ${libgav1_defines}
406                         INCLUDES
407                         ${libgav1_test_include_paths}
408                         OBJLIB_DEPS
409                         libgav1_file_reader
410                         libgav1_utils
411                         LIB_DEPS
412                         absl::memory
413                         ${libgav1_common_test_absl_deps}
414                         libgav1_gtest
415                         libgav1_gtest_main)
416
417  libgav1_add_executable(TEST
418                         NAME
419                         film_grain_test
420                         SOURCES
421                         ${libgav1_film_grain_test_sources}
422                         DEFINES
423                         ${libgav1_defines}
424                         INCLUDES
425                         ${libgav1_test_include_paths}
426                         OBJLIB_DEPS
427                         libgav1_decoder
428                         libgav1_dsp
429                         libgav1_tests_block_utils
430                         libgav1_tests_utils
431                         libgav1_utils
432                         LIB_DEPS
433                         absl::str_format_internal
434                         absl::time
435                         ${libgav1_common_test_absl_deps}
436                         libgav1_gtest
437                         libgav1_gtest_main)
438
439  libgav1_add_executable(TEST
440                         NAME
441                         memory_test
442                         SOURCES
443                         ${libgav1_memory_test_sources}
444                         DEFINES
445                         ${libgav1_defines}
446                         INCLUDES
447                         ${libgav1_test_include_paths}
448                         LIB_DEPS
449                         absl::base
450                         libgav1_gtest
451                         libgav1_gtest_main)
452
453  libgav1_add_executable(TEST
454                         NAME
455                         queue_test
456                         SOURCES
457                         ${libgav1_queue_test_sources}
458                         DEFINES
459                         ${libgav1_defines}
460                         INCLUDES
461                         ${libgav1_test_include_paths}
462                         OBJLIB_DEPS
463                         libgav1_utils
464                         LIB_DEPS
465                         ${libgav1_common_test_absl_deps}
466                         libgav1_gtest
467                         libgav1_gtest_main)
468
469  libgav1_add_executable(TEST
470                         NAME
471                         segmentation_map_test
472                         SOURCES
473                         ${libgav1_segmentation_map_test_sources}
474                         DEFINES
475                         ${libgav1_defines}
476                         INCLUDES
477                         ${libgav1_test_include_paths}
478                         OBJLIB_DEPS
479                         libgav1_utils
480                         LIB_DEPS
481                         ${libgav1_common_test_absl_deps}
482                         libgav1_gtest
483                         libgav1_gtest_main)
484
485  libgav1_add_executable(TEST
486                         NAME
487                         segmentation_test
488                         SOURCES
489                         ${libgav1_segmentation_test_sources}
490                         DEFINES
491                         ${libgav1_defines}
492                         INCLUDES
493                         ${libgav1_test_include_paths}
494                         OBJLIB_DEPS
495                         libgav1_utils
496                         LIB_DEPS
497                         ${libgav1_common_test_absl_deps}
498                         libgav1_gtest
499                         libgav1_gtest_main)
500
501  libgav1_add_executable(TEST
502                         NAME
503                         stack_test
504                         SOURCES
505                         ${libgav1_stack_test_sources}
506                         DEFINES
507                         ${libgav1_defines}
508                         INCLUDES
509                         ${libgav1_test_include_paths}
510                         OBJLIB_DEPS
511                         libgav1_utils
512                         LIB_DEPS
513                         ${libgav1_common_test_absl_deps}
514                         libgav1_gtest
515                         libgav1_gtest_main)
516
517  libgav1_add_executable(TEST
518                         NAME
519                         symbol_decoder_context_test
520                         SOURCES
521                         ${libgav1_symbol_decoder_context_test_sources}
522                         DEFINES
523                         ${libgav1_defines}
524                         INCLUDES
525                         ${libgav1_test_include_paths}
526                         OBJLIB_DEPS
527                         libgav1_decoder
528                         libgav1_dsp
529                         libgav1_utils
530                         LIB_DEPS
531                         ${libgav1_common_test_absl_deps}
532                         libgav1_gtest
533                         libgav1_gtest_main)
534
535  libgav1_add_executable(TEST
536                         NAME
537                         threadpool_test
538                         SOURCES
539                         ${libgav1_threadpool_test_sources}
540                         DEFINES
541                         ${libgav1_defines}
542                         INCLUDES
543                         ${libgav1_test_include_paths}
544                         OBJLIB_DEPS
545                         libgav1_utils
546                         LIB_DEPS
547                         absl::synchronization
548                         libgav1_gtest
549                         libgav1_gtest_main)
550
551  libgav1_add_executable(TEST
552                         NAME
553                         unbounded_queue_test
554                         SOURCES
555                         ${libgav1_unbounded_queue_test_sources}
556                         DEFINES
557                         ${libgav1_defines}
558                         INCLUDES
559                         ${libgav1_test_include_paths}
560                         OBJLIB_DEPS
561                         libgav1_utils
562                         LIB_DEPS
563                         ${libgav1_common_test_absl_deps}
564                         libgav1_gtest
565                         libgav1_gtest_main)
566
567  libgav1_add_executable(TEST
568                         NAME
569                         tests_utils_test
570                         SOURCES
571                         ${libgav1_tests_utils_test_sources}
572                         DEFINES
573                         ${libgav1_defines}
574                         INCLUDES
575                         ${libgav1_test_include_paths}
576                         OBJLIB_DEPS
577                         libgav1_dsp
578                         libgav1_tests_utils
579                         libgav1_utils
580                         LIB_DEPS
581                         absl::strings
582                         absl::time
583                         ${libgav1_common_test_absl_deps}
584                         libgav1_gtest
585                         libgav1_gtest_main)
586
587  libgav1_add_executable(TEST
588                         NAME
589                         vector_test
590                         SOURCES
591                         ${libgav1_vector_test_sources}
592                         DEFINES
593                         ${libgav1_defines}
594                         INCLUDES
595                         ${libgav1_test_include_paths}
596                         OBJLIB_DEPS
597                         libgav1_utils
598                         LIB_DEPS
599                         ${libgav1_common_test_absl_deps}
600                         libgav1_gtest
601                         libgav1_gtest_main)
602
603  libgav1_add_executable(TEST
604                         NAME
605                         version_test
606                         SOURCES
607                         ${libgav1_version_test_sources}
608                         DEFINES
609                         ${libgav1_defines}
610                         INCLUDES
611                         ${libgav1_test_include_paths}
612                         LIB_DEPS
613                         ${libgav1_dependency}
614                         ${libgav1_common_test_absl_deps}
615                         libgav1_gtest
616                         libgav1_gtest_main)
617
618  libgav1_add_library(TEST
619                      NAME
620                      libgav1_tests_block_utils
621                      TYPE
622                      OBJECT
623                      SOURCES
624                      ${libgav1_tests_block_utils_sources}
625                      DEFINES
626                      ${libgav1_defines}
627                      INCLUDES
628                      ${libgav1_test_include_paths})
629
630  libgav1_add_library(TEST
631                      NAME
632                      libgav1_tests_utils
633                      TYPE
634                      OBJECT
635                      SOURCES
636                      ${libgav1_tests_utils_sources}
637                      DEFINES
638                      ${libgav1_defines}
639                      INCLUDES
640                      ${libgav1_test_include_paths})
641
642  libgav1_add_executable(TEST
643                         NAME
644                         average_blend_test
645                         SOURCES
646                         ${libgav1_average_blend_test_sources}
647                         DEFINES
648                         ${libgav1_defines}
649                         INCLUDES
650                         ${libgav1_test_include_paths}
651                         OBJLIB_DEPS
652                         libgav1_decoder
653                         libgav1_dsp
654                         libgav1_tests_block_utils
655                         libgav1_tests_utils
656                         libgav1_utils
657                         LIB_DEPS
658                         absl::strings
659                         absl::time
660                         ${libgav1_common_test_absl_deps}
661                         libgav1_gtest
662                         libgav1_gtest_main)
663
664  libgav1_add_executable(TEST
665                         NAME
666                         buffer_pool_test
667                         SOURCES
668                         ${libgav1_buffer_pool_test_sources}
669                         DEFINES
670                         ${libgav1_defines}
671                         INCLUDES
672                         ${libgav1_test_include_paths}
673                         OBJLIB_DEPS
674                         libgav1_decoder
675                         libgav1_dsp
676                         libgav1_utils
677                         LIB_DEPS
678                         ${libgav1_common_test_absl_deps}
679                         libgav1_gtest
680                         libgav1_gtest_main)
681
682  libgav1_add_executable(TEST
683                         NAME
684                         cdef_test
685                         SOURCES
686                         ${libgav1_cdef_test_sources}
687                         DEFINES
688                         ${libgav1_defines}
689                         INCLUDES
690                         ${libgav1_test_include_paths}
691                         OBJLIB_DEPS
692                         libgav1_decoder
693                         libgav1_dsp
694                         libgav1_tests_utils
695                         libgav1_utils
696                         LIB_DEPS
697                         absl::strings
698                         absl::time
699                         ${libgav1_common_test_absl_deps}
700                         libgav1_gtest
701                         libgav1_gtest_main)
702
703  libgav1_add_executable(TEST
704                         NAME
705                         convolve_test
706                         SOURCES
707                         ${libgav1_convolve_test_sources}
708                         DEFINES
709                         ${libgav1_defines}
710                         INCLUDES
711                         ${libgav1_test_include_paths}
712                         OBJLIB_DEPS
713                         libgav1_decoder
714                         libgav1_dsp
715                         libgav1_tests_block_utils
716                         libgav1_tests_utils
717                         libgav1_utils
718                         LIB_DEPS
719                         absl::str_format_internal
720                         absl::time
721                         ${libgav1_common_test_absl_deps}
722                         libgav1_gtest
723                         libgav1_gtest_main)
724
725  libgav1_add_executable(TEST
726                         NAME
727                         c_decoder_test
728                         SOURCES
729                         ${libgav1_c_decoder_test_sources}
730                         DEFINES
731                         ${libgav1_defines}
732                         INCLUDES
733                         ${libgav1_include_paths}
734                         LIB_DEPS
735                         ${libgav1_dependency})
736
737  libgav1_add_executable(TEST
738                         NAME
739                         c_version_test
740                         SOURCES
741                         ${libgav1_c_version_test_sources}
742                         DEFINES
743                         ${libgav1_defines}
744                         INCLUDES
745                         ${libgav1_include_paths}
746                         LIB_DEPS
747                         ${libgav1_dependency})
748
749  libgav1_add_executable(TEST
750                         NAME
751                         decoder_test
752                         SOURCES
753                         ${libgav1_decoder_test_sources}
754                         DEFINES
755                         ${libgav1_defines}
756                         INCLUDES
757                         ${libgav1_test_include_paths}
758                         LIB_DEPS
759                         ${libgav1_dependency}
760                         ${libgav1_common_test_absl_deps}
761                         libgav1_gtest
762                         libgav1_gtest_main)
763
764  libgav1_add_executable(TEST
765                         NAME
766                         decoder_buffer_test
767                         SOURCES
768                         ${libgav1_decoder_buffer_test_sources}
769                         DEFINES
770                         ${libgav1_defines}
771                         INCLUDES
772                         ${libgav1_test_include_paths}
773                         LIB_DEPS
774                         ${libgav1_dependency}
775                         ${libgav1_common_test_absl_deps}
776                         libgav1_gtest
777                         libgav1_gtest_main)
778
779  libgav1_add_executable(TEST
780                         NAME
781                         distance_weighted_blend_test
782                         SOURCES
783                         ${libgav1_distance_weighted_blend_test_sources}
784                         DEFINES
785                         ${libgav1_defines}
786                         INCLUDES
787                         ${libgav1_test_include_paths}
788                         OBJLIB_DEPS
789                         libgav1_decoder
790                         libgav1_dsp
791                         libgav1_tests_utils
792                         libgav1_utils
793                         LIB_DEPS
794                         absl::strings
795                         absl::time
796                         ${libgav1_common_test_absl_deps}
797                         libgav1_gtest
798                         libgav1_gtest_main)
799
800  libgav1_add_executable(TEST
801                         NAME
802                         dsp_test
803                         SOURCES
804                         ${libgav1_dsp_test_sources}
805                         DEFINES
806                         ${libgav1_defines}
807                         INCLUDES
808                         ${libgav1_test_include_paths}
809                         OBJLIB_DEPS
810                         libgav1_decoder
811                         libgav1_dsp
812                         libgav1_tests_utils
813                         libgav1_utils
814                         LIB_DEPS
815                         absl::strings
816                         absl::time
817                         ${libgav1_common_test_absl_deps}
818                         libgav1_gtest
819                         libgav1_gtest_main)
820
821  libgav1_add_executable(TEST
822                         NAME
823                         file_writer_test
824                         SOURCES
825                         ${libgav1_file_writer_test_sources}
826                         DEFINES
827                         ${libgav1_defines}
828                         INCLUDES
829                         ${libgav1_test_include_paths}
830                         OBJLIB_DEPS
831                         libgav1_decoder
832                         libgav1_dsp
833                         libgav1_file_writer
834                         libgav1_tests_utils
835                         libgav1_utils
836                         LIB_DEPS
837                         absl::memory
838                         absl::strings
839                         absl::time
840                         ${libgav1_common_test_absl_deps}
841                         libgav1_gtest
842                         libgav1_gtest_main)
843
844  libgav1_add_executable(TEST
845                         NAME
846                         intrapred_cfl_test
847                         SOURCES
848                         ${libgav1_intrapred_cfl_test_sources}
849                         DEFINES
850                         ${libgav1_defines}
851                         INCLUDES
852                         ${libgav1_test_include_paths}
853                         OBJLIB_DEPS
854                         libgav1_decoder
855                         libgav1_dsp
856                         libgav1_tests_block_utils
857                         libgav1_tests_utils
858                         libgav1_utils
859                         LIB_DEPS
860                         absl::time
861                         ${libgav1_common_test_absl_deps}
862                         libgav1_gtest
863                         libgav1_gtest_main)
864
865  libgav1_add_executable(TEST
866                         NAME
867                         intrapred_directional_test
868                         SOURCES
869                         ${libgav1_intrapred_directional_test_sources}
870                         DEFINES
871                         ${libgav1_defines}
872                         INCLUDES
873                         ${libgav1_test_include_paths}
874                         OBJLIB_DEPS
875                         libgav1_decoder
876                         libgav1_dsp
877                         libgav1_tests_block_utils
878                         libgav1_tests_utils
879                         libgav1_utils
880                         LIB_DEPS
881                         absl::time
882                         ${libgav1_common_test_absl_deps}
883                         libgav1_gtest
884                         libgav1_gtest_main)
885
886  libgav1_add_executable(TEST
887                         NAME
888                         intrapred_filter_test
889                         SOURCES
890                         ${libgav1_intrapred_filter_test_sources}
891                         DEFINES
892                         ${libgav1_defines}
893                         INCLUDES
894                         ${libgav1_test_include_paths}
895                         OBJLIB_DEPS
896                         libgav1_decoder
897                         libgav1_dsp
898                         libgav1_tests_block_utils
899                         libgav1_tests_utils
900                         libgav1_utils
901                         LIB_DEPS
902                         absl::time
903                         ${libgav1_common_test_absl_deps}
904                         libgav1_gtest
905                         libgav1_gtest_main)
906
907  libgav1_add_executable(TEST
908                         NAME
909                         intrapred_test
910                         SOURCES
911                         ${libgav1_intrapred_test_sources}
912                         DEFINES
913                         ${libgav1_defines}
914                         INCLUDES
915                         ${libgav1_test_include_paths}
916                         OBJLIB_DEPS
917                         libgav1_decoder
918                         libgav1_dsp
919                         libgav1_tests_block_utils
920                         libgav1_tests_utils
921                         libgav1_utils
922                         LIB_DEPS
923                         absl::time
924                         ${libgav1_common_test_absl_deps}
925                         libgav1_gtest
926                         libgav1_gtest_main)
927
928  libgav1_add_executable(TEST
929                         NAME
930                         intra_edge_test
931                         SOURCES
932                         ${libgav1_intra_edge_test_sources}
933                         DEFINES
934                         ${libgav1_defines}
935                         INCLUDES
936                         ${libgav1_test_include_paths}
937                         OBJLIB_DEPS
938                         libgav1_decoder
939                         libgav1_tests_utils
940                         libgav1_dsp
941                         libgav1_utils
942                         LIB_DEPS
943                         absl::strings
944                         absl::time
945                         ${libgav1_common_test_absl_deps}
946                         libgav1_gtest
947                         libgav1_gtest_main)
948
949  libgav1_add_executable(TEST
950                         NAME
951                         inverse_transform_test
952                         SOURCES
953                         ${libgav1_inverse_transform_test_sources}
954                         DEFINES
955                         ${libgav1_defines}
956                         INCLUDES
957                         ${libgav1_test_include_paths}
958                         OBJLIB_DEPS
959                         libgav1_decoder
960                         libgav1_tests_block_utils
961                         libgav1_tests_utils
962                         libgav1_dsp
963                         libgav1_utils
964                         LIB_DEPS
965                         absl::strings
966                         absl::time
967                         ${libgav1_common_test_absl_deps}
968                         libgav1_gtest
969                         libgav1_gtest_main)
970
971  libgav1_add_executable(TEST
972                         NAME
973                         internal_frame_buffer_list_test
974                         SOURCES
975                         ${libgav1_internal_frame_buffer_list_test_sources}
976                         DEFINES
977                         ${libgav1_defines}
978                         INCLUDES
979                         ${libgav1_test_include_paths}
980                         OBJLIB_DEPS
981                         libgav1_decoder
982                         libgav1_dsp
983                         libgav1_utils
984                         LIB_DEPS
985                         ${libgav1_common_test_absl_deps}
986                         libgav1_gtest
987                         libgav1_gtest_main)
988
989  libgav1_add_executable(TEST
990                         NAME
991                         loop_filter_test
992                         SOURCES
993                         ${libgav1_loop_filter_test_sources}
994                         DEFINES
995                         ${libgav1_defines}
996                         INCLUDES
997                         ${libgav1_test_include_paths}
998                         OBJLIB_DEPS
999                         libgav1_decoder
1000                         libgav1_dsp
1001                         libgav1_tests_block_utils
1002                         libgav1_tests_utils
1003                         libgav1_utils
1004                         LIB_DEPS
1005                         absl::time
1006                         ${libgav1_common_test_absl_deps}
1007                         libgav1_gtest
1008                         libgav1_gtest_main)
1009
1010  libgav1_add_executable(TEST
1011                         NAME
1012                         loop_restoration_test
1013                         SOURCES
1014                         ${libgav1_loop_restoration_test_sources}
1015                         DEFINES
1016                         ${libgav1_defines}
1017                         INCLUDES
1018                         ${libgav1_test_include_paths}
1019                         OBJLIB_DEPS
1020                         libgav1_decoder
1021                         libgav1_dsp
1022                         libgav1_tests_block_utils
1023                         libgav1_tests_utils
1024                         libgav1_utils
1025                         LIB_DEPS
1026                         absl::time
1027                         ${libgav1_common_test_absl_deps}
1028                         libgav1_gtest
1029                         libgav1_gtest_main)
1030
1031  libgav1_add_executable(TEST
1032                         NAME
1033                         mask_blend_test
1034                         SOURCES
1035                         ${libgav1_mask_blend_test_sources}
1036                         DEFINES
1037                         ${libgav1_defines}
1038                         INCLUDES
1039                         ${libgav1_test_include_paths}
1040                         OBJLIB_DEPS
1041                         libgav1_decoder
1042                         libgav1_dsp
1043                         libgav1_tests_utils
1044                         libgav1_utils
1045                         LIB_DEPS
1046                         absl::strings
1047                         absl::time
1048                         ${libgav1_common_test_absl_deps}
1049                         libgav1_gtest
1050                         libgav1_gtest_main)
1051
1052  libgav1_add_executable(TEST
1053                         NAME
1054                         motion_field_projection_test
1055                         SOURCES
1056                         ${libgav1_motion_field_projection_test_sources}
1057                         DEFINES
1058                         ${libgav1_defines}
1059                         INCLUDES
1060                         ${libgav1_test_include_paths}
1061                         OBJLIB_DEPS
1062                         libgav1_decoder
1063                         libgav1_dsp
1064                         libgav1_tests_utils
1065                         libgav1_utils
1066                         LIB_DEPS
1067                         absl::str_format_internal
1068                         absl::time
1069                         ${libgav1_common_test_absl_deps}
1070                         libgav1_gtest
1071                         libgav1_gtest_main)
1072
1073  libgav1_add_executable(TEST
1074                         NAME
1075                         motion_vector_search_test
1076                         SOURCES
1077                         ${libgav1_motion_vector_search_test_sources}
1078                         DEFINES
1079                         ${libgav1_defines}
1080                         INCLUDES
1081                         ${libgav1_test_include_paths}
1082                         OBJLIB_DEPS
1083                         libgav1_decoder
1084                         libgav1_dsp
1085                         libgav1_tests_utils
1086                         libgav1_utils
1087                         LIB_DEPS
1088                         absl::str_format_internal
1089                         absl::time
1090                         ${libgav1_common_test_absl_deps}
1091                         libgav1_gtest
1092                         libgav1_gtest_main)
1093
1094  libgav1_add_executable(TEST
1095                         NAME
1096                         obmc_test
1097                         SOURCES
1098                         ${libgav1_obmc_test_sources}
1099                         DEFINES
1100                         ${libgav1_defines}
1101                         INCLUDES
1102                         ${libgav1_test_include_paths}
1103                         OBJLIB_DEPS
1104                         libgav1_decoder
1105                         libgav1_dsp
1106                         libgav1_tests_block_utils
1107                         libgav1_tests_utils
1108                         libgav1_utils
1109                         LIB_DEPS
1110                         absl::str_format_internal
1111                         absl::time
1112                         ${libgav1_common_test_absl_deps}
1113                         libgav1_gtest
1114                         libgav1_gtest_main)
1115
1116  libgav1_add_executable(TEST
1117                         NAME
1118                         obu_parser_test
1119                         SOURCES
1120                         ${libgav1_obu_parser_test_sources}
1121                         DEFINES
1122                         ${libgav1_defines}
1123                         INCLUDES
1124                         ${libgav1_test_include_paths}
1125                         OBJLIB_DEPS
1126                         libgav1_decoder
1127                         libgav1_dsp
1128                         libgav1_utils
1129                         LIB_DEPS
1130                         ${libgav1_common_test_absl_deps}
1131                         libgav1_gtest
1132                         libgav1_gtest_main)
1133
1134  libgav1_add_executable(TEST
1135                         NAME
1136                         post_filter_test
1137                         SOURCES
1138                         ${libgav1_post_filter_test_sources}
1139                         DEFINES
1140                         ${libgav1_defines}
1141                         INCLUDES
1142                         ${libgav1_test_include_paths}
1143                         OBJLIB_DEPS
1144                         libgav1_decoder
1145                         libgav1_dsp
1146                         libgav1_tests_block_utils
1147                         libgav1_tests_utils
1148                         libgav1_utils
1149                         LIB_DEPS
1150                         absl::time
1151                         ${libgav1_common_test_absl_deps}
1152                         libgav1_gtest
1153                         libgav1_gtest_main)
1154
1155  libgav1_add_executable(TEST
1156                         NAME
1157                         prediction_mask_test
1158                         SOURCES
1159                         ${libgav1_prediction_mask_test_sources}
1160                         DEFINES
1161                         ${libgav1_defines}
1162                         INCLUDES
1163                         ${libgav1_test_include_paths}
1164                         OBJLIB_DEPS
1165                         libgav1_decoder
1166                         libgav1_dsp
1167                         libgav1_tests_utils
1168                         libgav1_utils
1169                         LIB_DEPS
1170                         absl::strings
1171                         absl::time
1172                         ${libgav1_common_test_absl_deps}
1173                         libgav1_gtest
1174                         libgav1_gtest_main)
1175
1176  libgav1_add_executable(TEST
1177                         NAME
1178                         quantizer_test
1179                         SOURCES
1180                         ${libgav1_quantizer_test_sources}
1181                         DEFINES
1182                         ${libgav1_defines}
1183                         INCLUDES
1184                         ${libgav1_test_include_paths}
1185                         OBJLIB_DEPS
1186                         libgav1_decoder
1187                         libgav1_dsp
1188                         libgav1_utils
1189                         LIB_DEPS
1190                         ${libgav1_common_test_absl_deps}
1191                         libgav1_gtest
1192                         libgav1_gtest_main)
1193
1194  libgav1_add_executable(TEST
1195                         NAME
1196                         raw_bit_reader_test
1197                         SOURCES
1198                         ${libgav1_raw_bit_reader_test_sources}
1199                         DEFINES
1200                         ${libgav1_defines}
1201                         INCLUDES
1202                         ${libgav1_test_include_paths}
1203                         OBJLIB_DEPS
1204                         libgav1_utils
1205                         LIB_DEPS
1206                         ${libgav1_common_test_absl_deps}
1207                         libgav1_gtest
1208                         libgav1_gtest_main)
1209
1210  libgav1_add_executable(TEST
1211                         NAME
1212                         reconstruction_test
1213                         SOURCES
1214                         ${libgav1_reconstruction_test_sources}
1215                         DEFINES
1216                         ${libgav1_defines}
1217                         INCLUDES
1218                         ${libgav1_test_include_paths}
1219                         OBJLIB_DEPS
1220                         libgav1_decoder
1221                         libgav1_dsp
1222                         libgav1_tests_block_utils
1223                         libgav1_tests_utils
1224                         libgav1_utils
1225                         ${libgav1_test_objlib_deps}
1226                         LIB_DEPS
1227                         absl::strings
1228                         absl::time
1229                         ${libgav1_common_test_absl_deps}
1230                         libgav1_gtest
1231                         libgav1_gtest_main)
1232
1233  libgav1_add_executable(TEST
1234                         NAME
1235                         residual_buffer_pool_test
1236                         SOURCES
1237                         ${libgav1_residual_buffer_pool_test_sources}
1238                         DEFINES
1239                         ${libgav1_defines}
1240                         INCLUDES
1241                         ${libgav1_test_include_paths}
1242                         OBJLIB_DEPS
1243                         libgav1_decoder
1244                         libgav1_dsp
1245                         libgav1_utils
1246                         ${libgav1_test_objlib_deps}
1247                         LIB_DEPS
1248                         ${libgav1_common_test_absl_deps}
1249                         libgav1_gtest
1250                         libgav1_gtest_main)
1251
1252  libgav1_add_executable(TEST
1253                         NAME
1254                         scan_test
1255                         SOURCES
1256                         ${libgav1_scan_test_sources}
1257                         DEFINES
1258                         ${libgav1_defines}
1259                         INCLUDES
1260                         ${libgav1_test_include_paths}
1261                         OBJLIB_DEPS
1262                         libgav1_utils
1263                         ${libgav1_test_objlib_deps}
1264                         LIB_DEPS
1265                         ${libgav1_common_test_absl_deps}
1266                         libgav1_gtest
1267                         libgav1_gtest_main)
1268
1269  libgav1_add_executable(TEST
1270                         NAME
1271                         super_res_test
1272                         SOURCES
1273                         ${libgav1_super_res_test_sources}
1274                         DEFINES
1275                         ${libgav1_defines}
1276                         INCLUDES
1277                         ${libgav1_test_include_paths}
1278                         OBJLIB_DEPS
1279                         libgav1_decoder
1280                         libgav1_dsp
1281                         libgav1_tests_utils
1282                         libgav1_utils
1283                         LIB_DEPS
1284                         absl::str_format_internal
1285                         absl::time
1286                         ${libgav1_common_test_absl_deps}
1287                         libgav1_gtest
1288                         libgav1_gtest_main)
1289
1290  libgav1_add_executable(TEST
1291                         NAME
1292                         threading_strategy_test
1293                         SOURCES
1294                         ${libgav1_threading_strategy_test_sources}
1295                         DEFINES
1296                         ${libgav1_defines}
1297                         INCLUDES
1298                         ${libgav1_test_include_paths}
1299                         OBJLIB_DEPS
1300                         libgav1_decoder
1301                         libgav1_dsp
1302                         libgav1_utils
1303                         ${libgav1_test_objlib_deps}
1304                         LIB_DEPS
1305                         absl::str_format_internal
1306                         ${libgav1_common_test_absl_deps}
1307                         libgav1_gtest
1308                         libgav1_gtest_main)
1309
1310  libgav1_add_executable(TEST
1311                         NAME
1312                         warp_test
1313                         SOURCES
1314                         ${libgav1_warp_test_sources}
1315                         DEFINES
1316                         ${libgav1_defines}
1317                         INCLUDES
1318                         ${libgav1_test_include_paths}
1319                         OBJLIB_DEPS
1320                         libgav1_decoder
1321                         libgav1_dsp
1322                         libgav1_tests_block_utils
1323                         libgav1_tests_utils
1324                         libgav1_utils
1325                         LIB_DEPS
1326                         absl::str_format_internal
1327                         absl::time
1328                         ${libgav1_common_test_absl_deps}
1329                         libgav1_gtest
1330                         libgav1_gtest_main)
1331
1332  libgav1_add_executable(TEST
1333                         NAME
1334                         warp_prediction_test
1335                         SOURCES
1336                         ${libgav1_warp_prediction_test_sources}
1337                         DEFINES
1338                         ${libgav1_defines}
1339                         INCLUDES
1340                         ${libgav1_test_include_paths}
1341                         OBJLIB_DEPS
1342                         libgav1_decoder
1343                         libgav1_dsp
1344                         libgav1_utils
1345                         LIB_DEPS
1346                         ${libgav1_common_test_absl_deps}
1347                         libgav1_gtest
1348                         libgav1_gtest_main)
1349
1350  libgav1_add_executable(TEST
1351                         NAME
1352                         weight_mask_test
1353                         SOURCES
1354                         ${libgav1_weight_mask_test_sources}
1355                         DEFINES
1356                         ${libgav1_defines}
1357                         INCLUDES
1358                         ${libgav1_test_include_paths}
1359                         OBJLIB_DEPS
1360                         libgav1_decoder
1361                         libgav1_dsp
1362                         libgav1_tests_utils
1363                         libgav1_utils
1364                         LIB_DEPS
1365                         absl::str_format_internal
1366                         absl::time
1367                         ${libgav1_common_test_absl_deps}
1368                         libgav1_gtest
1369                         libgav1_gtest_main)
1370endmacro()
1371