| # Copyright 2016 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/fidl/fidl.gni") |
| import("//build/package.gni") |
| import("//build/testing/environments.gni") |
| |
| declare_args() { |
| build_all_vp9_file_decoder_conformance_tests = false |
| } |
| |
| # We have a separate package for each example to clarify the dependencies of |
| # each example. |
| |
| # Test video encode of camera stream |
| package("encode-camera") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/encode_camera" ] |
| |
| binaries = [ |
| { |
| name = "encode_camera" |
| shell = true |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("encode_camera/meta/encode_camera.cmx") |
| dest = "encode_camera.cmx" |
| }, |
| ] |
| } |
| |
| # Test video encode of from raw video file |
| package("encode-file") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/encode_file" ] |
| |
| binaries = [ |
| { |
| name = "encode_file" |
| shell = true |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("encode_file/meta/encode_file.cmx") |
| dest = "encode_file.cmx" |
| }, |
| ] |
| } |
| |
| package("use_media_decoder") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder" ] |
| |
| binaries = [ |
| { |
| name = "use_media_decoder" |
| shell = true |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/use_media_decoder.cmx") |
| dest = "use_media_decoder.cmx" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video h264 decode. Can also work in QEMU using SW decode, but |
| # when decode HW is present we'll use that to decode. |
| package("use_h264_decoder_test") { |
| testonly = true |
| |
| deps = |
| [ "//src/media/codec/examples/use_media_decoder:use_h264_decoder_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/use_h264_decoder_test.cmx") |
| dest = "use_h264_decoder_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on VIM2, sherlock, or QEMU. |
| name = "use_h264_decoder_test" |
| |
| environments = [ |
| astro_env, |
| sherlock_env, |
| emu_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("use-h264-multi-decoder-test") { |
| testonly = true |
| |
| deps = [ |
| "//src/media/codec/examples/use_media_decoder:use_h264_multi_decoder_test", |
| ] |
| |
| meta = [ |
| { |
| path = |
| rebase_path("use_media_decoder/meta/use_h264_multi_decoder_test.cmx") |
| dest = "use_h264_multi_decoder_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_h264_multi_decoder_test" |
| |
| # Only works on amlogic hardware. |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("use-h264-multi-decoder-flake-repro-test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_h264_multi_decoder_flake_repro_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_multi_decoder_flake_repro_test.cmx") |
| dest = "use_h264_multi_decoder_flake_repro_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_h264_multi_decoder_flake_repro_test" |
| |
| # Only works on amlogic hardware. |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video h264 decode with stream switching. Can also work in QEMU |
| # using SW decode, but when decode HW is present we'll use that to decode. |
| package("use_h264_decoder_stream_switching_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_h264_decoder_stream_switching_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_decoder_stream_switching_test.cmx") |
| dest = "use_h264_decoder_stream_switching_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on VIM2, sherlock, or QEMU. |
| name = "use_h264_decoder_stream_switching_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable in |
| # astro_env. |
| # |
| # Disable on qemu because the test flakes so far. TODO(fxbug.dev/49932) Re-enable in emu_env. |
| environments = [ |
| sherlock_env, |
| # emu_env, |
| # astro_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video multi-instance h264 decode with stream switching. |
| package("use-h264-multi-decoder-stream-switching-test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_h264_multi_decoder_stream_switching_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_multi_decoder_stream_switching_test.cmx") |
| dest = "use_h264_multi_decoder_stream_switching_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on VIM2, sherlock, or QEMU. |
| name = "use_h264_multi_decoder_stream_switching_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable in |
| # astro_env. |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video multi-instance h264 decode with stream switching. |
| package("use-h264-multi-decoder-concurrent-stream-switching-test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_h264_multi_decoder_concurrent_stream_switching_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_multi_decoder_concurrent_stream_switching_test.cmx") |
| dest = "use_h264_multi_decoder_concurrent_stream_switching_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on VIM2, astro, sherlock, or QEMU. |
| name = "use_h264_multi_decoder_concurrent_stream_switching_test" |
| |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("use_h264_decoder_secure_output_test") { |
| testonly = true |
| |
| deps = [ |
| "//src/media/codec/examples/use_media_decoder:use_h264_decoder_secure_output_test", |
| "//src/media/codec/examples/use_media_decoder:use_h264_multi_decoder_secure_output_test", |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_decoder_secure_output_test.cmx") |
| dest = "use_h264_decoder_secure_output_test.cmx" |
| }, |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_multi_decoder_secure_output_test.cmx") |
| dest = "use_h264_multi_decoder_secure_output_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on astro. |
| name = "use_h264_decoder_secure_output_test" |
| |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| { |
| # Should pass when run on astro. |
| name = "use_h264_multi_decoder_secure_output_test" |
| |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("use_h264_decoder_secure_input_output_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_h264_decoder_secure_input_output_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_h264_decoder_secure_input_output_test.cmx") |
| dest = "use_h264_decoder_secure_input_output_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_h264_decoder_secure_input_output_test" |
| |
| # Without ClearTVP, can't pass anywhere at the moment. |
| # TODO(fxbug.dev/42991): Re-enable. |
| disabled = true |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("h264_decoder_fuzzer_test") { |
| testonly = true |
| |
| deps = [ |
| "//src/media/codec/examples/use_media_decoder:h264_decoder_fuzzer_test", |
| "//src/media/codec/examples/use_media_decoder:h264_decoder_malformed_stream_test", |
| "//src/media/codec/examples/use_media_decoder:h264_multi_decoder_fuzzer_test", |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/h264_decoder_fuzzer_test.cmx") |
| dest = "h264_decoder_fuzzer_test.cmx" |
| }, |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/h264_multi_decoder_fuzzer_test.cmx") |
| dest = "h264_multi_decoder_fuzzer_test.cmx" |
| }, |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/h264_decoder_malformed_stream_test.cmx") |
| dest = "h264_decoder_malformed_stream_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| # Should pass when run on VIM2, sherlock, or QEMU. |
| name = "h264_decoder_fuzzer_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ |
| sherlock_env, |
| emu_env, |
| ] |
| }, |
| { |
| # Should pass when run on VIM2, sherlock. |
| name = "h264_multi_decoder_fuzzer_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ sherlock_env ] |
| }, |
| { |
| # Should pass when run on VIM2, sherlock, or QEMU. |
| name = "h264_decoder_malformed_stream_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ |
| sherlock_env, |
| emu_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear.h264") |
| dest = "bear.h264" |
| }, |
| ] |
| } |
| |
| package("vp9_decoder_fuzzer_test") { |
| testonly = true |
| |
| deps = |
| [ "//src/media/codec/examples/use_media_decoder:vp9_decoder_fuzzer_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/vp9_decoder_fuzzer_test.cmx") |
| dest = "vp9_decoder_fuzzer_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "vp9_decoder_fuzzer_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| # |
| # Tests that don't run on CQ yet. |
| # |
| |
| package("use_aac_decoder_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_aac_decoder_test" ] |
| |
| tests = [ |
| { |
| name = "use_aac_decoder_test" |
| environments = basic_envs |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path("use_media_decoder/test/test_audio.adts") |
| dest = "media_test_data/test_audio.adts" |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/use_aac_decoder_test.cmx") |
| dest = "use_aac_decoder_test.cmx" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video vp9 decode. |
| package("use_vp9_decoder_test") { |
| testonly = true |
| |
| deps = [ |
| "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_1280x546_test", |
| "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_test", |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("use_media_decoder/meta/use_vp9_decoder_test.cmx") |
| dest = "use_vp9_decoder_test.cmx" |
| }, |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_1280x546_test.cmx") |
| dest = "use_vp9_decoder_1280x546_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_test" |
| |
| # Astro has enough contiguous memory for this. |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| { |
| name = "use_vp9_decoder_1280x546_test" |
| |
| # Astro has enough contiguous memory for this. |
| environments = [ |
| astro_env, |
| sherlock_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data_downstream/bear-1280x546-vp9.ivf") |
| dest = "bear-1280x546-vp9.ivf" |
| }, |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video vp9 decode, with stream switching. |
| package("use-vp9-decoder-stream-switching-test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_stream_switching_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_stream_switching_test.cmx") |
| dest = "use_vp9_decoder_stream_switching_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_stream_switching_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video vp9 decoder's ability to skip frames until keyframe when |
| # input starts at non-keyframe. |
| package("use_vp9_decoder_skip_first_frame_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_skip_first_frame_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_skip_first_frame_test.cmx") |
| dest = "use_vp9_decoder_skip_first_frame_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_skip_first_frame_test" |
| |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/test-25fps.vp9") |
| dest = "test-25fps.vp9.ivf" |
| }, |
| ] |
| } |
| |
| # Test amlogic-video vp9 decode with max output frame count, on environments |
| # that have enough contiguous SYSTEM_RAM configured for sysmem. |
| package("use_vp9_decoder_24_output_frames_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_24_output_frames_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_24_output_frames_test.cmx") |
| dest = "use_vp9_decoder_24_output_frames_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_24_output_frames_test" |
| |
| # Should pass when run on VIM2, sherlock. Astro may not have enough |
| # contiguous pool. |
| # |
| # TODO(fxbug.dev/41735): Depending on how we re-enable, maybe we can also enable |
| # this one. |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| package("use_vp9_decoder_secure_output_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_secure_output_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_secure_output_test.cmx") |
| dest = "use_vp9_decoder_secure_output_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_secure_output_test" |
| |
| environments = [ |
| sherlock_env, |
| astro_env, |
| ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| package("use_vp9_decoder_secure_input_output_test") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:use_vp9_decoder_secure_input_output_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/use_vp9_decoder_secure_input_output_test.cmx") |
| dest = "use_vp9_decoder_secure_input_output_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "use_vp9_decoder_secure_input_output_test" |
| |
| # Without ClearTVP, can't pass anywhere at the moment. |
| # TODO(fxbug.dev/42991): Re-enable. |
| disabled = true |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf") |
| dest = "bear-vp9.ivf" |
| }, |
| ] |
| } |
| |
| template("vp9_file_decoder_conformance_test") { |
| package(target_name) { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:vp9_decoder_conformance_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/vp9_decoder_conformance_test.cmx") |
| dest = "vp9_decoder_conformance_test.cmx" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "vp9_decoder_conformance_test" |
| |
| # This should pass when run on VIM2 or astro, and will fail in any env |
| # that lacks VP9 decode. |
| # Disable on astro because not enough contiguous memory. TODO(fxbug.dev/41735) Re-enable |
| environments = [ sherlock_env ] |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path(invoker.ivf_file) |
| dest = "vp9.ivf" |
| }, |
| { |
| path = rebase_path(invoker.md5_file) |
| dest = "vp9.md5" |
| }, |
| ] |
| } |
| } |
| |
| # Running this binary, the --http=<url> command-line parameter needs to be |
| # passed, and the binary won't verify the MD5. Instead it'll stream the URL |
| # data in, parse it as ivf, decode it, compute MD5, and output the MD5. |
| package("vp9_decoder_conformance_http") { |
| testonly = true |
| |
| deps = [ |
| "//src/media/codec/examples/use_media_decoder:vp9_decoder_conformance_test", |
| ] |
| |
| meta = [ |
| { |
| path = |
| rebase_path("use_media_decoder/meta/vp9_decoder_conformance_http.cmx") |
| dest = "vp9_decoder_conformance_http.cmx" |
| }, |
| ] |
| |
| binaries = [ |
| { |
| name = "vp9_decoder_conformance_http" |
| |
| # We share the binary for now, but this could change. |
| source = "$root_out_dir/vp9_decoder_conformance_test" |
| }, |
| ] |
| } |
| |
| # Running this binary, the --http=<url> command-line parameter needs to be |
| # passed, and the binary won't verify the MD5. Instead it'll stream the URL |
| # data in, parse it as h264, decode it, compute MD5, and output the MD5. |
| package("h264-decoder-conformance-http") { |
| testonly = true |
| |
| deps = [ "//src/media/codec/examples/use_media_decoder:h264_decoder_conformance_test" ] |
| |
| meta = [ |
| { |
| path = rebase_path( |
| "use_media_decoder/meta/h264_decoder_conformance_http.cmx") |
| dest = "h264_decoder_conformance_http.cmx" |
| }, |
| ] |
| |
| binaries = [ |
| { |
| name = "h264_decoder_conformance_http" |
| |
| # We share the binary for now, but this could change. |
| source = "$root_out_dir/h264_decoder_conformance_test" |
| }, |
| ] |
| } |
| |
| # Put the below group of vp9 conformance tests last in the file. Otherwise, |
| # with the above __http package last in this file, the build complains about |
| # duplicate packages, at least when fx set with these: |
| # --args=build_all_vp9_file_decoder_conformance_tests=true \ |
| # --with //src/media/codec/examples:vp9_decoder_conformance_tests \ |
| # --with //src/media/codec/examples:vp9_decoder_conformance_test__http |
| |
| _vp9_file_conformance_tests_group_deps = [] |
| |
| # This target makes sure the vp9_decoder_conformance_test executable builds and |
| # can verify an md5 hash of decompressed frames. |
| # |
| # Test amlogic-video vp9 decode. This uses the same test executable as VP9 |
| # decode conformance tests. |
| package_name = "vp9-decoder-conformance-test--bear-vp9" |
| vp9_file_decoder_conformance_test(package_name) { |
| ivf_file = "//garnet/test_data/media/third_party/chromium_media_test_data/bear-vp9.ivf" |
| md5_file = "use_media_decoder/test/bear-vp9.i420.md5" |
| } |
| _vp9_file_conformance_tests_group_deps += [ ":" + package_name ] |
| |
| # build_all_vp9_file_decoder_conformance_tests is currently false by default. |
| # These tests currently require a directory of converted VP9 test streams which |
| # is not yet hosted on CIPD. |
| # |
| # The self-contained variants of these tests rely on having enough flash space |
| # for the whole input file, and running more than one large test per pave will |
| # tend to fail due to insufficient flash space (at the moment). Still, for |
| # debugging it's useful to be able to run this way, especially since re-building |
| # the code doesn't require re-copying the input file blob whose hash hasn't |
| # changed - and building tests this way avoids relying on a local http server. |
| # |
| # For automated testing, we instead use vp9_decoder_conformance_test__http |
| # (single target), which will fetch a .ivf file from a local http server and |
| # output it's MD5 hash to stdout. That target is driven by e2e test script |
| # running off-target that scrapts stdout for the MD5 and deteremines e2e test |
| # success/failure in the e2e test script, not on the target. |
| if (build_all_vp9_file_decoder_conformance_tests) { |
| testcases = read_file( |
| "//garnet/test_data/media/third_party/webm_vp9_conformance_streams/test_cases_all.list", |
| "trim list lines") |
| foreach(testcase, testcases) { |
| # remove prefix |
| testcase = string_replace(testcase, "processed/", "") |
| |
| # remove suffix |
| testcase_partial_path = string_replace(testcase, ".webm.ivf", "") |
| |
| # don't have any "/" in the name |
| testcase = string_replace(testcase_partial_path, "/", "__") |
| |
| # shorten profile string |
| testcase = string_replace(testcase, "Profile_0_8bit", "0") |
| testcase = string_replace(testcase, "Profile_2_10bit", "2") |
| |
| # Downcase the only uppercase letters that actually exist; uppercase isn't |
| # allowed in package names. |
| testcase = string_replace(testcase, "X", "x") |
| package_name = "vp9_decoder_conformance_test__file__" + testcase |
| |
| # Avoid any "_" in the package name. |
| package_name = string_replace(package_name, "_", "-") |
| vp9_file_decoder_conformance_test(package_name) { |
| ivf_file = "//garnet/test_data/media/third_party/webm_vp9_conformance_streams/processed/" + testcase_partial_path + ".webm.ivf" |
| md5_file = "//garnet/test_data/media/third_party/webm_vp9_conformance_streams/decompressed_md5/" + testcase_partial_path + ".md5" |
| } |
| _vp9_file_conformance_tests_group_deps += [ ":" + package_name ] |
| } |
| } |
| |
| group("vp9_decoder_conformance_tests") { |
| testonly = true |
| deps = _vp9_file_conformance_tests_group_deps |
| } |