From 0fdccaf9779b376938a1cd795f31f3bc5036333f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 13 Dec 2020 00:33:58 +0100 Subject: [PATCH] Remove 32x32 test image. --- run/tests | 7 ----- test/data/32x32_red_square.png | Bin 187 -> 0 bytes test/dcp_test.cc | 4 +-- test/encryption_test.cc | 2 +- test/kdm_test.cc | 2 +- test/recovery_test.cc | 23 +++++++--------- test/ref/DCP/dcp_test2/ASSETMAP.xml | 4 +-- ...l_81fb54df-e1bf-4647-8788-ea7ba154375b.xml | 4 +-- ...l_ae8a9818-872a-4f86-8493-11dfdea03e09.xml | 8 +++--- test/ref/DCP/dcp_test2/video.mxf | Bin 35032 -> 63160 bytes test/ref/DCP/dcp_test5/ASSETMAP.xml | 4 +-- ...l_81fb54df-e1bf-4647-8788-ea7ba154375b.xml | 4 +-- ...l_74e205d0-d145-42d2-8c49-7b55d058ca55.xml | 8 +++--- test/ref/DCP/dcp_test5/video.mxf | Bin 26080 -> 40144 bytes test/ref/DCP/encryption_test/ASSETMAP.xml | 4 +-- ...l_81fb54df-e1bf-4647-8788-ea7ba154375b.xml | 18 ++++++------- ...l_93182bd2-b1e8-41a3-b5c8-6e6564273bff.xml | 22 +++++++-------- test/ref/DCP/encryption_test/video.mxf | Bin 29896 -> 44032 bytes test/round_trip_test.cc | 2 +- test/test.cc | 25 +++++++++++------- 20 files changed, 68 insertions(+), 73 deletions(-) delete mode 100644 test/data/32x32_red_square.png diff --git a/run/tests b/run/tests index 3e5defa3..eb599af4 100755 --- a/run/tests +++ b/run/tests @@ -47,13 +47,6 @@ fi echo "--- Other tests" -# Check a MXF written by the unit tests -diff $work/baz/video1.mxf $work/baz/video2.mxf -if [ "$?" != "0" ]; then - echo "FAIL: MXFs from recovery incorrect" - exit 1 -fi - # Check the DCP written by dcp_test1 diff -ur test/ref/DCP/dcp_test1 $work/DCP/dcp_test1 if [ "$?" != "0" ]; then diff --git a/test/data/32x32_red_square.png b/test/data/32x32_red_square.png deleted file mode 100644 index 49cd2bef3fb1d78e0c329bd2681f54e491fd0ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofy`glX(f`a29w(7Bet# z3xhBt!>lbCYGe8D3oWG zWGJ|M`UZqI@`(c#X?VIghIkx*d)AScfq{c%!R3E*O mp (new dcp::StereoPictureAsset (dcp::Fraction (24, 1), dcp::SMPTE)); mp->set_metadata (mxf_meta); shared_ptr picture_writer = mp->start_write ("build/test/DCP/dcp_test2/video.mxf", false); - dcp::File j2c ("test/data/32x32_red_square.j2c"); + dcp::File j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { /* Left */ picture_writer->write (j2c.data (), j2c.size ()); @@ -282,7 +282,7 @@ BOOST_AUTO_TEST_CASE (dcp_test5) shared_ptr mp (new dcp::MonoPictureAsset (dcp::Fraction (24, 1), dcp::SMPTE)); mp->set_metadata (mxf_meta); shared_ptr picture_writer = mp->start_write ("build/test/DCP/dcp_test5/video.mxf", false); - dcp::File j2c ("test/data/32x32_red_square.j2c"); + dcp::File j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { picture_writer->write (j2c.data (), j2c.size ()); } diff --git a/test/encryption_test.cc b/test/encryption_test.cc index 9748ee3f..7bf83c4c 100644 --- a/test/encryption_test.cc +++ b/test/encryption_test.cc @@ -92,7 +92,7 @@ BOOST_AUTO_TEST_CASE (encryption_test) mp->set_key (key); shared_ptr writer = mp->start_write ("build/test/DCP/encryption_test/video.mxf", false); - dcp::File j2c ("test/data/32x32_red_square.j2c"); + dcp::File j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { writer->write (j2c.data (), j2c.size ()); } diff --git a/test/kdm_test.cc b/test/kdm_test.cc index 0daf3a92..63b65ad8 100644 --- a/test/kdm_test.cc +++ b/test/kdm_test.cc @@ -241,7 +241,7 @@ BOOST_AUTO_TEST_CASE (validity_period_test1) auto asset = make_shared(dcp::Fraction(24, 1), dcp::SMPTE); asset->set_key (dcp::Key()); auto writer = asset->start_write ("build/test/validity_period_test1.mxf", false); - dcp::File frame ("test/data/32x32_red_square.j2c"); + dcp::File frame ("test/data/flat_red.j2c"); writer->write (frame.data(), frame.size()); auto reel = make_shared(); reel->add(make_shared(asset, 0)); diff --git a/test/recovery_test.cc b/test/recovery_test.cc index 76dff195..dcaecb14 100644 --- a/test/recovery_test.cc +++ b/test/recovery_test.cc @@ -46,15 +46,8 @@ BOOST_AUTO_TEST_CASE (recovery) { RNGFixer fix; - string const picture = "test/data/32x32_red_square.j2c"; - int const size = boost::filesystem::file_size (picture); - uint8_t* data = new uint8_t[size]; - { - FILE* f = fopen (picture.c_str(), "rb"); - BOOST_CHECK (f); - fread (data, 1, size, f); - fclose (f); - } + string const picture = "test/data/flat_red.j2c"; + dcp::ArrayData data(picture); boost::filesystem::remove_all ("build/test/baz"); boost::filesystem::create_directories ("build/test/baz"); @@ -63,8 +56,8 @@ BOOST_AUTO_TEST_CASE (recovery) int written_size = 0; for (int i = 0; i < 24; ++i) { - dcp::FrameInfo info = writer->write (data, size); - BOOST_CHECK_EQUAL (info.hash, "cb90485a97ea5f7555cedc8a7afd473b"); + dcp::FrameInfo info = writer->write (data.data(), data.size()); + BOOST_CHECK_EQUAL (info.hash, "c3c9a3adec09baf2b0bcb65806fbeac8"); written_size = info.size; } @@ -72,7 +65,7 @@ BOOST_AUTO_TEST_CASE (recovery) writer.reset (); boost::filesystem::copy_file ("build/test/baz/video1.mxf", "build/test/baz/video2.mxf"); - boost::filesystem::resize_file ("build/test/baz/video2.mxf", 16384 + 353 * 11); + boost::filesystem::resize_file ("build/test/baz/video2.mxf", 16384 + data.size() * 11); { FILE* f = fopen ("build/test/baz/video2.mxf", "rb+"); @@ -90,15 +83,17 @@ BOOST_AUTO_TEST_CASE (recovery) mp.reset (new dcp::MonoPictureAsset (dcp::Fraction (24, 1), dcp::SMPTE)); writer = mp->start_write ("build/test/baz/video2.mxf", true); - writer->write (data, size); + writer->write (data.data(), data.size()); for (int i = 1; i < 4; ++i) { writer->fake_write (written_size); } for (int i = 4; i < 24; ++i) { - writer->write (data, size); + writer->write (data.data(), data.size()); } writer->finalize (); + + check_file ("build/test/baz/video1.mxf", "build/test/baz/video2.mxf"); } diff --git a/test/ref/DCP/dcp_test2/ASSETMAP.xml b/test/ref/DCP/dcp_test2/ASSETMAP.xml index bbe4f7eb..73d9d9a1 100644 --- a/test/ref/DCP/dcp_test2/ASSETMAP.xml +++ b/test/ref/DCP/dcp_test2/ASSETMAP.xml @@ -26,7 +26,7 @@ cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml 1 0 - 1770 + 1774 @@ -37,7 +37,7 @@ video.mxf 1 0 - 35032 + 63160 diff --git a/test/ref/DCP/dcp_test2/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/dcp_test2/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml index aea8304a..26bc6caf 100644 --- a/test/ref/DCP/dcp_test2/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml +++ b/test/ref/DCP/dcp_test2/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml @@ -32,9 +32,9 @@ 24 0 24 - ErlJmAfNakirQq9kVrnPj7fIOw0= + lec6UZZA9xqhKce9SXs0vvZASDs= 48 1 - 32 32 + 1998 1080 diff --git a/test/ref/DCP/dcp_test2/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml b/test/ref/DCP/dcp_test2/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml index 00206f96..29c9be0f 100644 --- a/test/ref/DCP/dcp_test2/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml +++ b/test/ref/DCP/dcp_test2/pkl_ae8a9818-872a-4f86-8493-11dfdea03e09.xml @@ -9,15 +9,15 @@ urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b 81fb54df-e1bf-4647-8788-ea7ba154375b - hBXFu2pGlUzKmLLNe6LLkqIOnoA= - 1770 + kXKqQAWnzfzo230TdOZh4tZ+z6A= + 1774 text/xml urn:uuid:1fab8bb0-cfaf-4225-ad6d-01768bc10470 1fab8bb0-cfaf-4225-ad6d-01768bc10470 - ErlJmAfNakirQq9kVrnPj7fIOw0= - 35032 + lec6UZZA9xqhKce9SXs0vvZASDs= + 63160 application/mxf diff --git a/test/ref/DCP/dcp_test2/video.mxf b/test/ref/DCP/dcp_test2/video.mxf index 01d0b908210de78f30d38f781476f38613007e7a..364be4dd69bfdc18cdc9d396465332b79df90843 100644 GIT binary patch literal 63160 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 diff --git a/test/ref/DCP/dcp_test5/ASSETMAP.xml b/test/ref/DCP/dcp_test5/ASSETMAP.xml index f0391eb3..a0e91179 100644 --- a/test/ref/DCP/dcp_test5/ASSETMAP.xml +++ b/test/ref/DCP/dcp_test5/ASSETMAP.xml @@ -26,7 +26,7 @@ cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml 1 0 - 2152 + 2156 @@ -37,7 +37,7 @@ video.mxf 1 0 - 26080 + 40144 diff --git a/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml index 345ae932..c451b9a6 100644 --- a/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml +++ b/test/ref/DCP/dcp_test5/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml @@ -23,9 +23,9 @@ 24 0 24 - 1uPB643nrQfpY+Y0AypGko+PiPE= + XGhFVrqZqapOJx5Fh2SLjj48Yjg= 24 1 - 32 32 + 1998 1080 urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9 diff --git a/test/ref/DCP/dcp_test5/pkl_74e205d0-d145-42d2-8c49-7b55d058ca55.xml b/test/ref/DCP/dcp_test5/pkl_74e205d0-d145-42d2-8c49-7b55d058ca55.xml index b7696dfb..8f9708a0 100644 --- a/test/ref/DCP/dcp_test5/pkl_74e205d0-d145-42d2-8c49-7b55d058ca55.xml +++ b/test/ref/DCP/dcp_test5/pkl_74e205d0-d145-42d2-8c49-7b55d058ca55.xml @@ -9,15 +9,15 @@ urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b 81fb54df-e1bf-4647-8788-ea7ba154375b - e3Gy1PLmR1iRdzDPzy3jqxZ/yLk= - 2152 + ORDwkWVluXR+6a9ufu0rVqbrITU= + 2156 text/xml urn:uuid:1fab8bb0-cfaf-4225-ad6d-01768bc10470 1fab8bb0-cfaf-4225-ad6d-01768bc10470 - 1uPB643nrQfpY+Y0AypGko+PiPE= - 26080 + XGhFVrqZqapOJx5Fh2SLjj48Yjg= + 40144 application/mxf diff --git a/test/ref/DCP/dcp_test5/video.mxf b/test/ref/DCP/dcp_test5/video.mxf index dde49093270bbb54d53833fb4e89bd5c87b879e1..0a8fb0cab03c264d7ed5f12c3e4cd66b19a19b60 100644 GIT binary patch literal 40144 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 VZ35O}I+aE;h-W1U#PX5o{{U<2hwuOZ literal 26080 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 Q+;z{)InVUKTu0LX1^b|X%K!iX diff --git a/test/ref/DCP/encryption_test/ASSETMAP.xml b/test/ref/DCP/encryption_test/ASSETMAP.xml index 3eb1900c..0fc7ea3c 100644 --- a/test/ref/DCP/encryption_test/ASSETMAP.xml +++ b/test/ref/DCP/encryption_test/ASSETMAP.xml @@ -26,7 +26,7 @@ cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml 1 0 - 9310 + 9314 @@ -37,7 +37,7 @@ video.mxf 1 0 - 29896 + 44032 diff --git a/test/ref/DCP/encryption_test/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/encryption_test/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml index 6f77e1d6..68cbfc3c 100644 --- a/test/ref/DCP/encryption_test/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml +++ b/test/ref/DCP/encryption_test/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml @@ -24,9 +24,9 @@ 0 24 urn:uuid:6a9e31a6-50a4-4ecb-8683-fa667848470a - EdbLFybsoLbZ3KB2jFtWZxMEMHI= + 8QplPzmat0gpqa6CJEFPxUoyHTw= 24 1 - 32 32 + 1998 1080 urn:uuid:d5f633d3-cb6e-4c04-85ae-4b2da9422852 @@ -59,15 +59,15 @@ - vUKHL/1VIgu6pX+GLoHag/nZXqQ= + iD8Ymjnr9rPqMbqKUDG7oU7skHQ= - DWmEtKozmtao3qdXOU7kQze+SIRh8gml2OrliFT+8U9xjBbUdLXWBPgTQuuVPI8u -iHxVoc7cLKxOGuB7EXMl1EWwsm62y+I6/NEWfjV8EKkgHuhGE0TV/++5E0i/Dg/q -Eq1whVbQ/EorYUea0/mW2UAgovKiz0MwQgyQb6Jgpy0O3PuNDrSlWeo3DUTFQiF8 -saaliNHSNXC8DEoNDnfSzAesL9jt6W4IEDPQp0rean7u4/0EhISlFMvea2YFiuCo -+/IZtb2tWtHMLx4mU7g1eLeGcNc2fWSygAs+pdPemoFX82r7Y9YTepZAbwhrvhFk -kkgV/08P+RZE3ftF1pQ00g== + FXjNzzQcLTIDVTDTLyn8lUkZR01OuER02Va21Pq+OFMtFedTfAOfeTizDmAFpFNp +C5PP2+zGAqJ6gDipheZMWtzNARmejtxeyV9Q7BkNjEnkev5vD4XMJBaPfAR5Cod/ +jI0syYr8vaQ3jxz/86FqTkwHWK/ZJWy3LCjxXOcy6pTEA5KifCRVrl7hWXgcefV0 +u1Yq1/3RjdINOhing771S2n6eKR6kJOMe/o/5OQKtLRUPc3qlcpwF8e8AhVb6Mb/ +qrgwx4U5oU7R0KnEdWe5nuYc+ufD/NDzx/lMSTSMmkIg20AAJZw9MnuSftvztsXp +xlCj65UtHYm0yTitP4VQTg== diff --git a/test/ref/DCP/encryption_test/pkl_93182bd2-b1e8-41a3-b5c8-6e6564273bff.xml b/test/ref/DCP/encryption_test/pkl_93182bd2-b1e8-41a3-b5c8-6e6564273bff.xml index 5affb3a4..0dcc9546 100644 --- a/test/ref/DCP/encryption_test/pkl_93182bd2-b1e8-41a3-b5c8-6e6564273bff.xml +++ b/test/ref/DCP/encryption_test/pkl_93182bd2-b1e8-41a3-b5c8-6e6564273bff.xml @@ -9,15 +9,15 @@ urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b 81fb54df-e1bf-4647-8788-ea7ba154375b - 9sunXON1YDsep+RAReRz3aLnadY= - 9310 + dinpjeGyswCuE6wwc4qNO6QgZ4M= + 9314 text/xml urn:uuid:46c3eb45-15e5-47d6-8684-d8641e4dc516 46c3eb45-15e5-47d6-8684-d8641e4dc516 - EdbLFybsoLbZ3KB2jFtWZxMEMHI= - 29896 + 8QplPzmat0gpqa6CJEFPxUoyHTw= + 44032 application/mxf @@ -46,15 +46,15 @@ - YZJkjLwee6xcN8jEcZcyrZ/ZSGo= + Dd1k2K/go3w7qxoIEyRjKQnt3sQ= - NQ0UGAcWKlLWt1I0Baxt1lKxc0AmfLWsJ4Hnfn2FgZ0x07gR/GwP552ZfgQDG7Cx -/wRey1Cg7AAd6I6keV9kKyB1sPrDND6DQaXfS3ymmcaOtCcGa2Wt3hybwVWN67Uw -EQFHAOwC5iwgTLLpW43OtBUY65qcXyVMuOgmENjiaocu+D9lTV5nraxNbFvFlBel -0AazpjWkevFK2v32SxzINBy2yOpqEpz1vax2hYSPMGWj5anf2Bckd3HDzl9KAHYl -WZKO56Ad49/8QMFGcbOlpAA74EgOW9jidd0HIgkyDl7tE8bFfzOfNeo9n6AcO5wF -79YV+reJM/J0381W8OaN+Q== + KXJAOlFxsZ+qWTwKllF9G8cREFb3LIGSLmCAUz5deK/vnTTex2hVR0fqCNS+q+Ck +FutGIJqrJed061yRKl72Gae9/ocE84AAqN/Vfc9LnalD4P342nLfZGBBDvZcgk6c +A7QV7L9y9cxeyNrXA/LPsg8IzhcSJjhi10eDAs6ESBL9iSzDT+wlEGBrwqQjjwhm +fJjYUwP92pPwAGH/9SKs4o+JIU8urnRrSFj06JuXJi4vVdEIasKo20nsmpLklHQP +iHPQriuhZlIvX7SOrVi4BctoOm68MbqcWurHzDcFKWQIVwpBq0Wezr1AZXGActfB +AW9mhWPZes+FJR2Qe/OjCg== diff --git a/test/ref/DCP/encryption_test/video.mxf b/test/ref/DCP/encryption_test/video.mxf index 67e3b89b71d9f200a37f388ee9b660bdae32e3bb..8a3b7897415cca1f74551a33c6c3a394df4f301d 100644 GIT binary patch literal 44032 zcmeEvby$?!*Y*tEA>AcX(%s!HE!~22gM@^nfOLb>ol19i2}lUiN|#E*H^Vuohxhls z=X<~FJJ)soaOS|wbI;yuuXXRW?!D(Z&m%A>bZijNKp-*@0tkeF0{8;}ZU7(v0ssL0 z{*RA>>_1>Zr~mjd2!sLIgaTOu+eG`L5!fEupEx8k5E2OC1H5eqdvlEV$MFwepn)J? zV6H&@j6py5Ab{ZBK(LRne>ev71A&DALPA1<2Ka%%0D(|2@Bje%uLvZ#-@P9QxEBx# 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 delta 11374 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 asset_A (new dcp::MonoPictureAsset (dcp::Fraction (24, 1), dcp::SMPTE)); shared_ptr writer = asset_A->start_write (work_dir / "video.mxf", false); - dcp::File j2c ("test/data/32x32_red_square.j2c"); + dcp::File j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { writer->write (j2c.data (), j2c.size ()); } diff --git a/test/test.cc b/test/test.cc index 6617f513..9f285dbc 100644 --- a/test/test.cc +++ b/test/test.cc @@ -199,8 +199,8 @@ check_xml (string ref, string test, list ignore, bool ignore_whitespace) void check_file (boost::filesystem::path ref, boost::filesystem::path check) { - uintmax_t N = boost::filesystem::file_size (ref); - BOOST_CHECK_EQUAL (N, boost::filesystem::file_size (check)); + uintmax_t size = boost::filesystem::file_size (ref); + BOOST_CHECK_EQUAL (size, boost::filesystem::file_size(check)); FILE* ref_file = dcp::fopen_boost (ref, "rb"); BOOST_REQUIRE (ref_file); FILE* check_file = dcp::fopen_boost (check, "rb"); @@ -210,22 +210,29 @@ check_file (boost::filesystem::path ref, boost::filesystem::path check) uint8_t* ref_buffer = new uint8_t[buffer_size]; uint8_t* check_buffer = new uint8_t[buffer_size]; - string error; - error = "File " + check.string() + " differs from reference " + ref.string(); + uintmax_t pos = 0; - while (N) { - uintmax_t this_time = min (uintmax_t (buffer_size), N); + while (pos < size) { + uintmax_t this_time = min (uintmax_t(buffer_size), size - pos); size_t r = fread (ref_buffer, 1, this_time, ref_file); BOOST_CHECK_EQUAL (r, this_time); r = fread (check_buffer, 1, this_time, check_file); BOOST_CHECK_EQUAL (r, this_time); - BOOST_CHECK_MESSAGE (memcmp (ref_buffer, check_buffer, this_time) == 0, error); - if (memcmp (ref_buffer, check_buffer, this_time)) { + if (memcmp(ref_buffer, check_buffer, this_time) != 0) { + for (int i = 0; i < buffer_size; ++i) { + if (ref_buffer[i] != check_buffer[i]) { + BOOST_CHECK_MESSAGE ( + false, + dcp::String::compose("File %1 differs from reference %2 at offset %3", check, ref, pos + i) + ); + break; + } + } break; } - N -= this_time; + pos += this_time; } delete[] ref_buffer; -- 2.30.2