diff options
-rw-r--r-- | media/ffmpeg/ffmpeg_regression_tests.cc | 385 |
1 files changed, 201 insertions, 184 deletions
diff --git a/media/ffmpeg/ffmpeg_regression_tests.cc b/media/ffmpeg/ffmpeg_regression_tests.cc index 54cde72..2fdb2da 100644 --- a/media/ffmpeg/ffmpeg_regression_tests.cc +++ b/media/ffmpeg/ffmpeg_regression_tests.cc @@ -18,8 +18,6 @@ // // Test cases labeled FLAKY may not always pass, but they should never crash or // cause any kind of warnings or errors under tooling. -// -// Frame hashes must be generated with --video-threads=1 for correctness. #include "media/filters/pipeline_integration_test_base.h" @@ -32,25 +30,20 @@ namespace media { const char kRegressionTestDataPathPrefix[] = "internal/"; struct RegressionTestData { - RegressionTestData(const char* filename, PipelineStatus init_status, - PipelineStatus end_status, const char* video_md5, - const char* audio_md5) - : video_md5(video_md5), - audio_md5(audio_md5), - filename(std::string(kRegressionTestDataPathPrefix) + filename), + RegressionTestData(const char* filename, + PipelineStatus init_status, + PipelineStatus end_status) + : filename(std::string(kRegressionTestDataPathPrefix) + filename), init_status(init_status), - end_status(end_status) { - } + end_status(end_status) {} - const char* video_md5; - const char* audio_md5; std::string filename; PipelineStatus init_status; PipelineStatus end_status; }; // Used for tests which just need to run without crashing or tooling errors, but -// which may have undefined behavior for hashing, etc. +// which may have undefined PipelineStatus results. struct FlakyRegressionTestData { FlakyRegressionTestData(const char* filename) : filename(std::string(kRegressionTestDataPathPrefix) + filename) { @@ -69,184 +62,215 @@ class FlakyFFmpegRegressionTest public PipelineIntegrationTestBase { }; -#define FFMPEG_TEST_CASE(name, fn, init_status, end_status, video_md5, \ - audio_md5) \ - INSTANTIATE_TEST_CASE_P(name, FFmpegRegressionTest, \ - testing::Values(RegressionTestData(fn, \ - init_status, \ - end_status, \ - video_md5, \ - audio_md5))); +#define FFMPEG_TEST_CASE(name, fn, init_status, end_status) \ + INSTANTIATE_TEST_CASE_P( \ + name, FFmpegRegressionTest, \ + testing::Values(RegressionTestData(fn, init_status, end_status))); #define FLAKY_FFMPEG_TEST_CASE(name, fn) \ INSTANTIATE_TEST_CASE_P(FLAKY_##name, FlakyFFmpegRegressionTest, \ testing::Values(FlakyRegressionTestData(fn))); // Test cases from issues. -FFMPEG_TEST_CASE(Cr47325, "security/47325.mp4", PIPELINE_OK, PIPELINE_OK, - "2a7a938c6b5979621cec998f02d9bbb6", - "3.61,1.64,-3.24,0.12,1.50,-0.86,"); -FFMPEG_TEST_CASE(Cr47761, "crbug47761.ogg", PIPELINE_OK, PIPELINE_OK, - kNullVideoHash, - "8.89,8.55,8.88,8.01,8.23,7.69,"); -FFMPEG_TEST_CASE(Cr50045, "crbug50045.mp4", PIPELINE_OK, PIPELINE_OK, - "c345e9ef9ebfc6bfbcbe3f0ddc3125ba", - "2.72,-6.27,-6.11,-3.17,-5.58,1.26,"); -FFMPEG_TEST_CASE(Cr62127, "crbug62127.webm", PIPELINE_OK, - PIPELINE_OK, "a064b2776fc5aef3e9cba47967a75db9", - kNullAudioHash); -FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK, - kNullVideoHash, - "-10.55,-10.10,-10.42,-10.35,-10.29,-10.72,"); -FFMPEG_TEST_CASE(Cr100492, "security/100492.webm", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK, - "c16691cc9178db3adbf7e562cadcd6e6", - "1211.73,304.89,1311.54,371.34,1283.06,299.63,"); -FFMPEG_TEST_CASE(Cr101458, "security/101458.webm", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK, - "5cb3a934795cd552753dec7687928291", - "-17.87,-37.20,-23.33,45.57,8.13,-9.92,"); -FFMPEG_TEST_CASE(Cr110849, "security/110849.mkv", +FFMPEG_TEST_CASE(Cr47325, "security/47325.mp4", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr47761, "crbug47761.ogg", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr50045, "crbug50045.mp4", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr62127, "crbug62127.webm", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr100492, + "security/100492.webm", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr101458, + "security/101458.webm", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr110849, + "security/110849.mkv", DEMUXER_ERROR_COULD_NOT_OPEN, - DEMUXER_ERROR_NO_SUPPORTED_STREAMS, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr112384, "security/112384.webm", - DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr117912, "security/117912.webm", DEMUXER_ERROR_COULD_NOT_OPEN, - DEMUXER_ERROR_COULD_NOT_OPEN, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, - PIPELINE_OK, "e6dd853fcbd746c8bb2ab2b8fc376fc7", - "1.28,-0.32,-0.81,0.08,1.66,0.89,"); -FFMPEG_TEST_CASE(Cr132779, "security/132779.webm", - DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr140165, "security/140165.ogg", PIPELINE_ERROR_DECODE, - PIPELINE_ERROR_DECODE, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr140647, "security/140647.ogv", DEMUXER_ERROR_COULD_NOT_OPEN, - DEMUXER_ERROR_COULD_NOT_OPEN, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr142738, "crbug142738.ogg", PIPELINE_OK, PIPELINE_OK, - kNullVideoHash, - "-1.22,0.45,1.79,1.80,-0.30,-1.21,"); -FFMPEG_TEST_CASE(Cr152691, "security/152691.mp3", PIPELINE_ERROR_DECODE, - PIPELINE_ERROR_DECODE, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr161639, "security/161639.m4a", PIPELINE_ERROR_DECODE, - PIPELINE_ERROR_DECODE, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr222754, "security/222754.mp4", PIPELINE_ERROR_DECODE, - PIPELINE_ERROR_DECODE, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr234630a, "security/234630a.mov", PIPELINE_OK, - PIPELINE_OK, kNullVideoHash, - "-15.52,-18.90,-15.33,-16.68,-14.41,-15.89,"); -FFMPEG_TEST_CASE(Cr234630b, "security/234630b.mov", PIPELINE_ERROR_DECODE, - PIPELINE_ERROR_DECODE, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, - PIPELINE_OK, kNullVideoHash, - "-1.72,-0.83,0.84,1.70,1.23,-0.53,"); + DEMUXER_ERROR_NO_SUPPORTED_STREAMS); +FFMPEG_TEST_CASE(Cr112384, + "security/112384.webm", + DEMUXER_ERROR_COULD_NOT_PARSE, + DEMUXER_ERROR_COULD_NOT_PARSE); +FFMPEG_TEST_CASE(Cr117912, + "security/117912.webm", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr132779, + "security/132779.webm", + DEMUXER_ERROR_COULD_NOT_PARSE, + DEMUXER_ERROR_COULD_NOT_PARSE); +FFMPEG_TEST_CASE(Cr140165, + "security/140165.ogg", + PIPELINE_ERROR_DECODE, + PIPELINE_ERROR_DECODE); +FFMPEG_TEST_CASE(Cr140647, + "security/140647.ogv", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(Cr142738, "crbug142738.ogg", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr152691, + "security/152691.mp3", + PIPELINE_ERROR_DECODE, + PIPELINE_ERROR_DECODE); +FFMPEG_TEST_CASE(Cr161639, + "security/161639.m4a", + PIPELINE_ERROR_DECODE, + PIPELINE_ERROR_DECODE); +FFMPEG_TEST_CASE(Cr222754, + "security/222754.mp4", + PIPELINE_ERROR_DECODE, + PIPELINE_ERROR_DECODE); +FFMPEG_TEST_CASE(Cr234630a, "security/234630a.mov", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(Cr234630b, + "security/234630b.mov", + PIPELINE_ERROR_DECODE, + PIPELINE_ERROR_DECODE); +FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, PIPELINE_OK); // Test for out-of-bounds access with slightly corrupt file (detection logic // thinks it's a MONO file, but actually contains STEREO audio). -FFMPEG_TEST_CASE(Cr275590, "security/275590.m4a", - DECODER_ERROR_NOT_SUPPORTED, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); +FFMPEG_TEST_CASE(Cr275590, + "security/275590.m4a", + DECODER_ERROR_NOT_SUPPORTED, + DEMUXER_ERROR_COULD_NOT_OPEN); // General MP4 test cases. -FFMPEG_TEST_CASE(MP4_0, "security/aac.10419.mp4", DEMUXER_ERROR_COULD_NOT_OPEN, - DEMUXER_ERROR_COULD_NOT_OPEN, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_1, "security/clockh264aac_200021889.mp4", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_2, "security/clockh264aac_200701257.mp4", PIPELINE_OK, - PIPELINE_OK, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_5, "security/clockh264aac_3022500.mp4", - DEMUXER_ERROR_NO_SUPPORTED_STREAMS, - DEMUXER_ERROR_NO_SUPPORTED_STREAMS, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_6, "security/clockh264aac_344289.mp4", PIPELINE_OK, - PIPELINE_OK, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_7, "security/clockh264mp3_187697.mp4", +FFMPEG_TEST_CASE(MP4_0, + "security/aac.10419.mp4", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(MP4_1, + "security/clockh264aac_200021889.mp4", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(MP4_2, + "security/clockh264aac_200701257.mp4", + PIPELINE_OK, + PIPELINE_OK); +FFMPEG_TEST_CASE(MP4_5, + "security/clockh264aac_3022500.mp4", DEMUXER_ERROR_NO_SUPPORTED_STREAMS, + DEMUXER_ERROR_NO_SUPPORTED_STREAMS); +FFMPEG_TEST_CASE(MP4_6, + "security/clockh264aac_344289.mp4", + PIPELINE_OK, + PIPELINE_OK); +FFMPEG_TEST_CASE(MP4_7, + "security/clockh264mp3_187697.mp4", DEMUXER_ERROR_NO_SUPPORTED_STREAMS, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_8, "security/h264.705767.mp4", - DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_9, "security/smclockmp4aac_1_0.mp4", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(MP4_16, "security/looping2.mov", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); + DEMUXER_ERROR_NO_SUPPORTED_STREAMS); +FFMPEG_TEST_CASE(MP4_8, + "security/h264.705767.mp4", + DEMUXER_ERROR_COULD_NOT_PARSE, + DEMUXER_ERROR_COULD_NOT_PARSE); +FFMPEG_TEST_CASE(MP4_9, + "security/smclockmp4aac_1_0.mp4", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(MP4_16, + "security/looping2.mov", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); // General OGV test cases. -FFMPEG_TEST_CASE(OGV_1, "security/out.163.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_2, "security/out.391.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_5, "security/smclocktheora_1_0.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_7, "security/smclocktheora_1_102.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_8, "security/smclocktheora_1_104.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_9, "security/smclocktheora_1_110.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_10, "security/smclocktheora_1_179.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_11, "security/smclocktheora_1_20.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_12, "security/smclocktheora_1_723.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_14, "security/smclocktheora_2_10405.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_15, "security/smclocktheora_2_10619.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_16, "security/smclocktheora_2_1075.ogv", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_18, "security/wav.711.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_19, "security/null1.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_20, "security/null2.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_21, "security/assert1.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(OGV_22, "security/assert2.ogv", DECODER_ERROR_NOT_SUPPORTED, - DECODER_ERROR_NOT_SUPPORTED, kNullVideoHash, kNullAudioHash); +FFMPEG_TEST_CASE(OGV_1, + "security/out.163.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_2, + "security/out.391.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_5, + "security/smclocktheora_1_0.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_7, + "security/smclocktheora_1_102.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_8, + "security/smclocktheora_1_104.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_9, + "security/smclocktheora_1_110.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_10, + "security/smclocktheora_1_179.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_11, + "security/smclocktheora_1_20.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_12, + "security/smclocktheora_1_723.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_14, + "security/smclocktheora_2_10405.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_15, + "security/smclocktheora_2_10619.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_16, + "security/smclocktheora_2_1075.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_18, + "security/wav.711.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_19, + "security/null1.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_20, + "security/null2.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_21, + "security/assert1.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(OGV_22, + "security/assert2.ogv", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); // General WebM test cases. -FFMPEG_TEST_CASE(WEBM_1, "security/no-bug.webm", PIPELINE_OK, PIPELINE_OK, - "39e92700cbb77478fd63f49db855e7e5", kNullAudioHash); -FFMPEG_TEST_CASE(WEBM_3, "security/out.webm.139771.2965", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(WEBM_4, "security/out.webm.68798.1929", - DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(WEBM_5, "frame_size_change.webm", PIPELINE_OK, - PIPELINE_OK, "d8fcf2896b7400a2261bac9e9ea930f8", - kNullAudioHash); +FFMPEG_TEST_CASE(WEBM_1, "security/no-bug.webm", PIPELINE_OK, PIPELINE_OK); +FFMPEG_TEST_CASE(WEBM_3, + "security/out.webm.139771.2965", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(WEBM_4, + "security/out.webm.68798.1929", + DECODER_ERROR_NOT_SUPPORTED, + DECODER_ERROR_NOT_SUPPORTED); +FFMPEG_TEST_CASE(WEBM_5, "frame_size_change.webm", PIPELINE_OK, PIPELINE_OK); // Allocate gigabytes of memory, likely can't be run on 32bit machines. -FFMPEG_TEST_CASE(BIG_MEM_1, "security/bigmem1.mov", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(BIG_MEM_2, "security/looping1.mov", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); -FFMPEG_TEST_CASE(BIG_MEM_5, "security/looping5.mov", - DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, - kNullVideoHash, kNullAudioHash); +FFMPEG_TEST_CASE(BIG_MEM_1, + "security/bigmem1.mov", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(BIG_MEM_2, + "security/looping1.mov", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); +FFMPEG_TEST_CASE(BIG_MEM_5, + "security/looping5.mov", + DEMUXER_ERROR_COULD_NOT_OPEN, + DEMUXER_ERROR_COULD_NOT_OPEN); FLAKY_FFMPEG_TEST_CASE(BIG_MEM_3, "security/looping3.mov"); FLAKY_FFMPEG_TEST_CASE(BIG_MEM_4, "security/looping4.mov"); @@ -288,20 +312,15 @@ FLAKY_FFMPEG_TEST_CASE(WEBM_2, "security/uninitialize.webm"); // Videos with massive gaps between frame timestamps that result in long hangs // with our pipeline. Should be uncommented when we support clockless playback. -// FFMPEG_TEST_CASE(WEBM_0, "security/memcpy.webm", PIPELINE_OK, PIPELINE_OK, -// kNullVideoHash, kNullAudioHash); -// FFMPEG_TEST_CASE(MP4_17, "security/assert2.mov", PIPELINE_OK, PIPELINE_OK, -// kNullVideoHash, kNullAudioHash); -// FFMPEG_TEST_CASE(OGV_23, "security/assert2.ogv", PIPELINE_OK, PIPELINE_OK, -// kNullVideoHash, kNullAudioHash); +// FFMPEG_TEST_CASE(WEBM_0, "security/memcpy.webm", PIPELINE_OK, PIPELINE_OK); +// FFMPEG_TEST_CASE(MP4_17, "security/assert2.mov", PIPELINE_OK, PIPELINE_OK); +// FFMPEG_TEST_CASE(OGV_23, "security/assert2.ogv", PIPELINE_OK, PIPELINE_OK); TEST_P(FFmpegRegressionTest, BasicPlayback) { if (GetParam().init_status == PIPELINE_OK) { - ASSERT_EQ(PIPELINE_OK, Start(GetParam().filename, kHashed)); + ASSERT_EQ(PIPELINE_OK, Start(GetParam().filename)); Play(); ASSERT_EQ(WaitUntilEndedOrError(), GetParam().end_status); - EXPECT_EQ(GetParam().video_md5, GetVideoHash()); - EXPECT_EQ(GetParam().audio_md5, GetAudioHash()); // Check for ended if the pipeline is expected to finish okay. if (GetParam().end_status == PIPELINE_OK) { @@ -313,9 +332,7 @@ TEST_P(FFmpegRegressionTest, BasicPlayback) { } else { // Don't bother checking the exact status as we only care that the // pipeline failed to start. - EXPECT_NE(PIPELINE_OK, Start(GetParam().filename, kHashed)); - EXPECT_EQ(GetParam().video_md5, GetVideoHash()); - EXPECT_EQ(GetParam().audio_md5, GetAudioHash()); + EXPECT_NE(PIPELINE_OK, Start(GetParam().filename)); } } |