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