summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-01-18 13:05:11 +0100
committerCarl Hetherington <cth@carlh.net>2021-01-18 13:05:11 +0100
commit36310b78f8fd84554f2c87dc513bd04efe0fd69a (patch)
tree5586b8e6ecf890ee6a9887945a8c58e8ebea1e9d /test
parentbcc07ce5fce539b83fb2469073ed609c75ea9709 (diff)
Bv2.1 8.6.{1.2}: CompositionMetadataAsset must exist and it must have some <VersionNumber>.
Diffstat (limited to 'test')
-rw-r--r--test/combine_test.cc5
-rw-r--r--test/ref/DCP/dcp_test1/ASSETMAP.xml10
-rw-r--r--test/ref/DCP/dcp_test1/audio.mxfbin161326 -> 881326 bytes
-rw-r--r--test/ref/DCP/dcp_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml50
-rw-r--r--test/ref/DCP/dcp_test1/pkl_2b9b857f-ab4a-440e-a313-1ace0f1cfc95.xml (renamed from test/ref/DCP/dcp_test1/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml)10
-rw-r--r--test/ref/DCP/dcp_test7/ASSETMAP2
-rw-r--r--test/ref/DCP/dcp_test7/audio.mxfbin161326 -> 881326 bytes
-rw-r--r--test/ref/DCP/dcp_test7/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml2
-rw-r--r--test/ref/DCP/dcp_test7/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml6
-rw-r--r--test/test.cc7
-rw-r--r--test/verify_test.cc232
11 files changed, 240 insertions, 84 deletions
diff --git a/test/combine_test.cc b/test/combine_test.cc
index 92949cf2..050978c7 100644
--- a/test/combine_test.cc
+++ b/test/combine_test.cc
@@ -318,6 +318,11 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_shared_asset)
cpl->set_content_version (
dcp::ContentVersion("urn:uuid:75ac29aa-42ac-1234-ecae-49251abefd11","content-version-label-text")
);
+ cpl->set_main_sound_configuration ("L,C,R,Lfe,-,-");
+ cpl->set_main_sound_sample_rate (48000);
+ cpl->set_main_picture_stored_area (dcp::Size(1998, 1080));
+ cpl->set_main_picture_active_area (dcp::Size(1440, 1080));
+ cpl->set_version_number(1);
shared_ptr<dcp::ReelMonoPictureAsset> pic(new dcp::ReelMonoPictureAsset(simple_picture("build/test/combine_input2", ""), 0));
shared_ptr<dcp::ReelSoundAsset> sound(new dcp::ReelSoundAsset(first->cpls().front()->reels().front()->main_sound()->asset(), 0));
diff --git a/test/ref/DCP/dcp_test1/ASSETMAP.xml b/test/ref/DCP/dcp_test1/ASSETMAP.xml
index fcb38592..72096d95 100644
--- a/test/ref/DCP/dcp_test1/ASSETMAP.xml
+++ b/test/ref/DCP/dcp_test1/ASSETMAP.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<AssetMap xmlns="http://www.smpte-ra.org/schemas/429-9/2007/AM">
- <Id>urn:uuid:2b9b857f-ab4a-440e-a313-1ace0f1cfc95</Id>
+ <Id>urn:uuid:07e9f5a0-83ab-4791-8c6b-7df5d11f76f9</Id>
<AnnotationText>Created by libdcp</AnnotationText>
<Creator>OpenDCP 0.0.25</Creator>
<VolumeCount>1</VolumeCount>
@@ -8,11 +8,11 @@
<Issuer>OpenDCP 0.0.25</Issuer>
<AssetList>
<Asset>
- <Id>urn:uuid:63c3aece-c581-4603-b612-75e43f0c0430</Id>
+ <Id>urn:uuid:2b9b857f-ab4a-440e-a313-1ace0f1cfc95</Id>
<PackingList>true</PackingList>
<ChunkList>
<Chunk>
- <Path>pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml</Path>
+ <Path>pkl_2b9b857f-ab4a-440e-a313-1ace0f1cfc95.xml</Path>
<VolumeIndex>1</VolumeIndex>
<Offset>0</Offset>
<Length>1186</Length>
@@ -26,7 +26,7 @@
<Path>cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml</Path>
<VolumeIndex>1</VolumeIndex>
<Offset>0</Offset>
- <Length>2170</Length>
+ <Length>5082</Length>
</Chunk>
</ChunkList>
</Asset>
@@ -48,7 +48,7 @@
<Path>audio.mxf</Path>
<VolumeIndex>1</VolumeIndex>
<Offset>0</Offset>
- <Length>161326</Length>
+ <Length>881326</Length>
</Chunk>
</ChunkList>
</Asset>
diff --git a/test/ref/DCP/dcp_test1/audio.mxf b/test/ref/DCP/dcp_test1/audio.mxf
index b58ff436..0b5a4459 100644
--- a/test/ref/DCP/dcp_test1/audio.mxf
+++ b/test/ref/DCP/dcp_test1/audio.mxf
Binary files differ
diff --git a/test/ref/DCP/dcp_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/dcp_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
index 9f626dd6..2ee11df5 100644
--- a/test/ref/DCP/dcp_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
+++ b/test/ref/DCP/dcp_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
@@ -52,8 +52,56 @@
<IntrinsicDuration>24</IntrinsicDuration>
<EntryPoint>0</EntryPoint>
<Duration>24</Duration>
- <Hash>cb1OLhgHG9svy7G8hoTSPpltzhw=</Hash>
+ <Hash>qtXbkcwhUj/yqquVLmV+wbzbxQ8=</Hash>
</MainSound>
+ <meta:CompositionMetadataAsset xmlns:meta="http://www.smpte-ra.org/schemas/429-16/2014/CPL-Metadata">
+ <Id>urn:uuid:63c3aece-c581-4603-b612-75e43f0c0430</Id>
+ <EditRate>24 1</EditRate>
+ <IntrinsicDuration>24</IntrinsicDuration>
+ <meta:FullContentTitleText/>
+ <meta:VersionNumber>1</meta:VersionNumber>
+ <meta:MainSoundConfiguration>51/L,R,C,LFE,Ls,Rs</meta:MainSoundConfiguration>
+ <meta:MainSoundSampleRate>48000 1</meta:MainSoundSampleRate>
+ <meta:MainPictureStoredArea>
+ <meta:Width>1998</meta:Width>
+ <meta:Height>1080</meta:Height>
+ </meta:MainPictureStoredArea>
+ <meta:MainPictureActiveArea>
+ <meta:Width>1998</meta:Width>
+ <meta:Height>1080</meta:Height>
+ </meta:MainPictureActiveArea>
+ <meta:ExtensionMetadataList>
+ <meta:ExtensionMetadata scope="http://isdcf.com/ns/cplmd/app">
+ <meta:Name>Application</meta:Name>
+ <meta:PropertyList>
+ <meta:Property>
+ <meta:Name>DCP Constraints Profile</meta:Name>
+ <meta:Value>SMPTE-RDD-52:2020-Bv2.1</meta:Value>
+ </meta:Property>
+ </meta:PropertyList>
+ </meta:ExtensionMetadata>
+ </meta:ExtensionMetadataList>
+ <mca:MCASubDescriptors xmlns:mca="http://isdcf.com/ns/cplmd/mca" xmlns:r0="http://www.smpte-ra.org/reg/395/2014/13/1/aaf" xmlns:r1="http://www.smpte-ra.org/reg/335/2012">
+ <r0:SoundfieldGroupLabelSubDescriptor>
+ <r1:InstanceID>urn:uuid:18be072e-5a0f-44e1-b2eb-c8a52ae12789</r1:InstanceID>
+ <r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020201.00000000</r1:MCALabelDictionaryID>
+ <r1:MCALinkID>urn:uuid:8e293965-f8ad-48c6-971d-261b01f65cdb</r1:MCALinkID>
+ <r1:MCATagSymbol>sg51</r1:MCATagSymbol>
+ <r1:MCATagName>5.1</r1:MCATagName>
+ <r1:RFC5646SpokenLanguage>en-US</r1:RFC5646SpokenLanguage>
+ </r0:SoundfieldGroupLabelSubDescriptor>
+ <r0:AudioChannelLabelSubDescriptor>
+ <r1:InstanceID>urn:uuid:74e205d0-d145-42d2-8c49-7b55d058ca55</r1:InstanceID>
+ <r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020101.00000000</r1:MCALabelDictionaryID>
+ <r1:MCALinkID>urn:uuid:ae8a9818-872a-4f86-8493-11dfdea03e09</r1:MCALinkID>
+ <r1:MCATagSymbol>chL</r1:MCATagSymbol>
+ <r1:MCATagName>Left</r1:MCATagName>
+ <r1:MCAChannelID>1</r1:MCAChannelID>
+ <r1:RFC5646SpokenLanguage>en-US</r1:RFC5646SpokenLanguage>
+ <r1:SoundfieldGroupLinkID>urn:uuid:8e293965-f8ad-48c6-971d-261b01f65cdb</r1:SoundfieldGroupLinkID>
+ </r0:AudioChannelLabelSubDescriptor>
+ </mca:MCASubDescriptors>
+ </meta:CompositionMetadataAsset>
</AssetList>
</Reel>
</ReelList>
diff --git a/test/ref/DCP/dcp_test1/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml b/test/ref/DCP/dcp_test1/pkl_2b9b857f-ab4a-440e-a313-1ace0f1cfc95.xml
index 1280ed97..ea99d114 100644
--- a/test/ref/DCP/dcp_test1/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml
+++ b/test/ref/DCP/dcp_test1/pkl_2b9b857f-ab4a-440e-a313-1ace0f1cfc95.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<PackingList xmlns="http://www.smpte-ra.org/schemas/429-8/2007/PKL">
- <Id>urn:uuid:63c3aece-c581-4603-b612-75e43f0c0430</Id>
+ <Id>urn:uuid:2b9b857f-ab4a-440e-a313-1ace0f1cfc95</Id>
<AnnotationText>Created by libdcp</AnnotationText>
<IssueDate>2012-07-17T04:45:18+00:00</IssueDate>
<Issuer>OpenDCP 0.0.25</Issuer>
@@ -9,8 +9,8 @@
<Asset>
<Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b</Id>
<AnnotationText>81fb54df-e1bf-4647-8788-ea7ba154375b</AnnotationText>
- <Hash>jWh8hMgamta5Q9sW88wHfI7TS/I=</Hash>
- <Size>2170</Size>
+ <Hash>xz+gUPoPMdbFlAewvWIq8BRhBmA=</Hash>
+ <Size>5082</Size>
<Type>text/xml</Type>
</Asset>
<Asset>
@@ -23,8 +23,8 @@
<Asset>
<Id>urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9</Id>
<AnnotationText>9482e87d-292d-4e0e-a98d-c61822b60fe9</AnnotationText>
- <Hash>cb1OLhgHG9svy7G8hoTSPpltzhw=</Hash>
- <Size>161326</Size>
+ <Hash>qtXbkcwhUj/yqquVLmV+wbzbxQ8=</Hash>
+ <Size>881326</Size>
<Type>application/mxf</Type>
</Asset>
</AssetList>
diff --git a/test/ref/DCP/dcp_test7/ASSETMAP b/test/ref/DCP/dcp_test7/ASSETMAP
index 85222f75..a0a42801 100644
--- a/test/ref/DCP/dcp_test7/ASSETMAP
+++ b/test/ref/DCP/dcp_test7/ASSETMAP
@@ -48,7 +48,7 @@
<Path>audio.mxf</Path>
<VolumeIndex>1</VolumeIndex>
<Offset>0</Offset>
- <Length>161326</Length>
+ <Length>881326</Length>
</Chunk>
</ChunkList>
</Asset>
diff --git a/test/ref/DCP/dcp_test7/audio.mxf b/test/ref/DCP/dcp_test7/audio.mxf
index b58ff436..0b5a4459 100644
--- a/test/ref/DCP/dcp_test7/audio.mxf
+++ b/test/ref/DCP/dcp_test7/audio.mxf
Binary files differ
diff --git a/test/ref/DCP/dcp_test7/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml b/test/ref/DCP/dcp_test7/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
index f78c3711..a9ff202b 100644
--- a/test/ref/DCP/dcp_test7/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
+++ b/test/ref/DCP/dcp_test7/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml
@@ -52,7 +52,7 @@
<IntrinsicDuration>24</IntrinsicDuration>
<EntryPoint>0</EntryPoint>
<Duration>24</Duration>
- <Hash>cb1OLhgHG9svy7G8hoTSPpltzhw=</Hash>
+ <Hash>qtXbkcwhUj/yqquVLmV+wbzbxQ8=</Hash>
</MainSound>
</AssetList>
</Reel>
diff --git a/test/ref/DCP/dcp_test7/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml b/test/ref/DCP/dcp_test7/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml
index ca2c865d..919fe206 100644
--- a/test/ref/DCP/dcp_test7/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml
+++ b/test/ref/DCP/dcp_test7/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml
@@ -9,7 +9,7 @@
<Asset>
<Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b</Id>
<AnnotationText>81fb54df-e1bf-4647-8788-ea7ba154375b</AnnotationText>
- <Hash>tc+MzIDj0cjUXzAGaE5mmse4DVM=</Hash>
+ <Hash>JxqfjtwuLuimdPydOWGY/Vgrzek=</Hash>
<Size>2168</Size>
<Type>text/xml;asdcpKind=CPL</Type>
</Asset>
@@ -23,8 +23,8 @@
<Asset>
<Id>urn:uuid:9482e87d-292d-4e0e-a98d-c61822b60fe9</Id>
<AnnotationText>9482e87d-292d-4e0e-a98d-c61822b60fe9</AnnotationText>
- <Hash>cb1OLhgHG9svy7G8hoTSPpltzhw=</Hash>
- <Size>161326</Size>
+ <Hash>qtXbkcwhUj/yqquVLmV+wbzbxQ8=</Hash>
+ <Size>881326</Size>
<Type>application/x-smpte-mxf;asdcpKind=Sound</Type>
</Asset>
</AssetList>
diff --git a/test/test.cc b/test/test.cc
index 38ff565e..91ecfcf7 100644
--- a/test/test.cc
+++ b/test/test.cc
@@ -280,7 +280,7 @@ simple_picture (boost::filesystem::path path, string suffix, int frames)
shared_ptr<dcp::SoundAsset>
simple_sound (boost::filesystem::path path, string suffix, dcp::MXFMetadata mxf_meta, string language, int frames, int sample_rate)
{
- int const channels = 1;
+ int const channels = 6;
/* Set a valid language, then overwrite it, so that the language parameter can be badly formed */
shared_ptr<dcp::SoundAsset> ms (new dcp::SoundAsset(dcp::Fraction(24, 1), sample_rate, channels, dcp::LanguageTag("en-US"), dcp::SMPTE));
@@ -332,6 +332,11 @@ make_simple (boost::filesystem::path path, int reels, int frames)
cpl->set_content_version (
dcp::ContentVersion("urn:uuid:75ac29aa-42ac-1234-ecae-49251abefd11", "content-version-label-text")
);
+ cpl->set_main_sound_configuration("51/L,R,C,LFE,Ls,Rs");
+ cpl->set_main_sound_sample_rate(48000);
+ cpl->set_main_picture_stored_area(dcp::Size(1998, 1080));
+ cpl->set_main_picture_active_area(dcp::Size(1998, 1080));
+ cpl->set_version_number(1);
for (int i = 0; i < reels; ++i) {
string suffix = reels == 1 ? "" : dcp::String::compose("%1", i);
diff --git a/test/verify_test.cc b/test/verify_test.cc
index 77733972..fd76209b 100644
--- a/test/verify_test.cc
+++ b/test/verify_test.cc
@@ -67,7 +67,9 @@ using boost::optional;
using std::shared_ptr;
-static list<pair<string, optional<boost::filesystem::path> > > stages;
+static list<pair<string, optional<boost::filesystem::path>>> stages;
+static string const dcp_test1_pkl = "pkl_2b9b857f-ab4a-440e-a313-1ace0f1cfc95.xml";
+static string const dcp_test1_cpl = "cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml";
static void
stage (string s, optional<boost::filesystem::path> p)
@@ -167,7 +169,6 @@ void
check_verify_result (vector<boost::filesystem::path> dir, vector<std::pair<dcp::VerificationNote::Type, dcp::VerificationNote::Code>> types_and_codes)
{
auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- dump_notes (notes);
BOOST_REQUIRE_EQUAL (notes.size(), types_and_codes.size());
auto i = notes.begin();
auto j = types_and_codes.begin();
@@ -211,8 +212,8 @@ BOOST_AUTO_TEST_CASE (verify_test1)
auto directories = setup (1, 1);
auto notes = dcp::verify (directories, &stage, &progress, xsd_test);
- boost::filesystem::path const cpl_file = "build/test/verify_test1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml";
- boost::filesystem::path const pkl_file = "build/test/verify_test1/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml";
+ boost::filesystem::path const cpl_file = boost::filesystem::path("build") / "test" / "verify_test1" / dcp_test1_cpl;
+ boost::filesystem::path const pkl_file = boost::filesystem::path("build") / "test" / "verify_test1" / dcp_test1_pkl;
boost::filesystem::path const assetmap_file = "build/test/verify_test1/ASSETMAP.xml";
auto st = stages.begin();
@@ -289,7 +290,7 @@ BOOST_AUTO_TEST_CASE (verify_test3)
auto directories = setup (1, 3);
{
- Editor e ("build/test/verify_test3/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml");
+ Editor e (boost::filesystem::path("build") / "test" / "verify_test3" / dcp_test1_pkl);
e.replace ("<Hash>", "<Hash>x");
}
@@ -311,7 +312,7 @@ BOOST_AUTO_TEST_CASE (verify_test4)
auto directories = setup (1, 4);
{
- Editor e ("build/test/verify_test4/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml");
+ Editor e (boost::filesystem::path("build") / "test" / "verify_test4" / dcp_test1_cpl);
e.replace ("<ContentKind>", "<ContentKind>x");
}
@@ -326,14 +327,14 @@ static
boost::filesystem::path
cpl (int n)
{
- return dcp::String::compose("build/test/verify_test%1/cpl_81fb54df-e1bf-4647-8788-ea7ba154375b.xml", n);
+ return dcp::String::compose("build/test/verify_test%1/%2", n, dcp_test1_cpl);
}
static
boost::filesystem::path
pkl (int n)
{
- return dcp::String::compose("build/test/verify_test%1/pkl_63c3aece-c581-4603-b612-75e43f0c0430.xml", n);
+ return dcp::String::compose("build/test/verify_test%1/%2", n, dcp_test1_pkl);
}
static
@@ -389,6 +390,10 @@ BOOST_AUTO_TEST_CASE (verify_test8)
"http://www.smpte-ra.org/schemas/429-7/2006/CPL", "http://www.digicine.com/PROTO-ASDCP-CPL-20040511#",
{ dcp::VerificationNote::MISMATCHED_STANDARD,
dcp::VerificationNote::XML_VALIDATION_ERROR,
+ dcp::VerificationNote::XML_VALIDATION_ERROR,
+ dcp::VerificationNote::XML_VALIDATION_ERROR,
+ dcp::VerificationNote::XML_VALIDATION_ERROR,
+ dcp::VerificationNote::XML_VALIDATION_ERROR,
dcp::VerificationNote::CPL_HASH_INCORRECT }
);
}
@@ -420,7 +425,7 @@ BOOST_AUTO_TEST_CASE (verify_test11)
{
check_verify_result_after_replace (
11, &pkl,
- "<Id>urn:uuid:63c", "<Id>urn:uuid:x3c",
+ "<Id>urn:uuid:2b9", "<Id>urn:uuid:xb9",
{ dcp::VerificationNote::XML_VALIDATION_ERROR }
);
}
@@ -430,7 +435,7 @@ BOOST_AUTO_TEST_CASE (verify_test12)
{
check_verify_result_after_replace (
12, &asset_map,
- "<Id>urn:uuid:63c", "<Id>urn:uuid:x3c",
+ "<Id>urn:uuid:07e", "<Id>urn:uuid:x7e",
{ dcp::VerificationNote::XML_VALIDATION_ERROR }
);
}
@@ -442,8 +447,8 @@ BOOST_AUTO_TEST_CASE (verify_test13)
auto directories = setup (3, 13);
auto notes = dcp::verify (directories, &stage, &progress, xsd_test);
- boost::filesystem::path const cpl_file = "build/test/verify_test13/cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml";
- boost::filesystem::path const pkl_file = "build/test/verify_test13/pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml";
+ boost::filesystem::path const cpl_file = boost::filesystem::path("build") / "test" / "verify_test13" / "cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml";
+ boost::filesystem::path const pkl_file = boost::filesystem::path("build") / "test" / "verify_test13" / "pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml";
boost::filesystem::path const assetmap_file = "build/test/verify_test13/ASSETMAP";
auto st = stages.begin();
@@ -544,8 +549,10 @@ BOOST_AUTO_TEST_CASE (verify_test15)
check_verify_result (
{ dir },
- {{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PICTURE_FRAME_TOO_LARGE_IN_BYTES }}
- );
+ {
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PICTURE_FRAME_TOO_LARGE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -570,8 +577,10 @@ BOOST_AUTO_TEST_CASE (verify_test16)
check_verify_result (
{ dir },
- {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES }}
- );
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -587,8 +596,7 @@ BOOST_AUTO_TEST_CASE (verify_test17)
boost::filesystem::remove_all (dir);
dcp_from_frame (frame, dir);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE_EQUAL (notes.size(), 0);
+ check_verify_result ({ dir }, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -641,7 +649,7 @@ BOOST_AUTO_TEST_CASE (verify_test20)
auto reel_asset = make_shared<dcp::ReelSubtitleAsset>(asset, dcp::Fraction(24, 1), 16 * 24, 0);
write_dcp_with_single_asset (dir, reel_asset);
- check_verify_result ({dir}, {});
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -660,7 +668,8 @@ BOOST_AUTO_TEST_CASE (verify_test21)
{
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
@@ -686,7 +695,10 @@ BOOST_AUTO_TEST_CASE (verify_test22)
check_verify_result (
{ vf_dir },
- {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::EXTERNAL_ASSET }});
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::EXTERNAL_ASSET },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -716,7 +728,7 @@ BOOST_AUTO_TEST_CASE (verify_test23)
dcp.add (cpl);
dcp.write_xml (dcp::SMPTE);
- check_verify_result ({dir}, {});
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -747,6 +759,7 @@ BOOST_AUTO_TEST_CASE (verify_test24)
cpl->set_main_sound_sample_rate (48000);
cpl->set_main_picture_stored_area (dcp::Size(1998, 1080));
cpl->set_main_picture_active_area (dcp::Size(1440, 1080));
+ cpl->set_version_number (1);
reel->add (simple_markers());
@@ -815,7 +828,7 @@ BOOST_AUTO_TEST_CASE (verify_test26)
write_dcp_with_single_asset (dir, reel_asset);
auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE_EQUAL (notes.size(), 2U);
+ BOOST_REQUIRE_EQUAL (notes.size(), 3U);
auto i = notes.begin();
BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::BAD_LANGUAGE);
BOOST_REQUIRE (i->note());
@@ -824,6 +837,8 @@ BOOST_AUTO_TEST_CASE (verify_test26)
BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::BAD_LANGUAGE);
BOOST_REQUIRE (i->note());
BOOST_CHECK_EQUAL (*i->note(), "wrong-andbad");
+ i++;
+ BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::MISSING_CPL_METADATA);
}
@@ -841,7 +856,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_languages)
write_dcp_with_single_asset (dir, reel_asset);
auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE_EQUAL (notes.size(), 2U);
+ BOOST_REQUIRE_EQUAL (notes.size(), 3U);
auto i = notes.begin ();
BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::BAD_LANGUAGE);
BOOST_REQUIRE (i->note());
@@ -850,6 +865,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_languages)
BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::BAD_LANGUAGE);
BOOST_REQUIRE (i->note());
BOOST_CHECK_EQUAL (*i->note(), "wrong-andbad");
+ i++;
+ BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::MISSING_CPL_METADATA);
}
@@ -878,6 +895,7 @@ BOOST_AUTO_TEST_CASE (verify_various_invalid_languages)
cpl->set_main_sound_sample_rate (48000);
cpl->set_main_picture_stored_area (dcp::Size(1998, 1080));
cpl->set_main_picture_active_area (dcp::Size(1440, 1080));
+ cpl->set_version_number (1);
cpl->_release_territory = "fred-jim";
auto dcp = make_shared<dcp::DCP>(dir);
dcp->add (cpl);
@@ -901,7 +919,6 @@ BOOST_AUTO_TEST_CASE (verify_various_invalid_languages)
BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::BAD_LANGUAGE);
BOOST_REQUIRE (i->note());
BOOST_CHECK_EQUAL (*i->note(), "frobozz");
- ++i;
}
@@ -935,6 +952,11 @@ check_picture_size (int width, int height, int frame_rate, bool three_d)
auto cpl = make_shared<dcp::CPL>("A Test DCP", dcp::TRAILER);
cpl->set_annotation_text ("A Test DCP");
cpl->set_issue_date ("2012-07-17T04:45:18+00:00");
+ cpl->set_main_sound_configuration ("L,C,R,Lfe,-,-");
+ cpl->set_main_sound_sample_rate (48000);
+ cpl->set_main_picture_stored_area (dcp::Size(1998, 1080));
+ cpl->set_main_picture_active_area (dcp::Size(1998, 1080));
+ cpl->set_version_number (1);
auto reel = make_shared<dcp::Reel>();
@@ -1096,7 +1118,8 @@ BOOST_AUTO_TEST_CASE (verify_closed_caption_xml_too_large)
{
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_XML_TOO_LARGE_IN_BYTES },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA },
});
}
@@ -1135,7 +1158,8 @@ verify_timed_text_asset_too_large (string name)
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TIMED_TEXT_ASSET_TOO_LARGE_IN_BYTES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TIMED_TEXT_FONTS_TOO_LARGE_IN_BYTES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA },
});
}
@@ -1367,7 +1391,11 @@ BOOST_AUTO_TEST_CASE (verify_text_too_early)
dcp_with_text<dcp::ReelSubtitleAsset> (dir, {{ 4 * 24 - 1, 5 * 24 }});
check_verify_result (
{ dir },
- {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }});
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
+
}
@@ -1376,8 +1404,7 @@ BOOST_AUTO_TEST_CASE (verify_text_not_too_early)
auto const dir = boost::filesystem::path("build/test/verify_text_not_too_early");
/* Just late enough */
dcp_with_text<dcp::ReelSubtitleAsset> (dir, {{ 4 * 24, 5 * 24 }});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1419,8 +1446,7 @@ BOOST_AUTO_TEST_CASE (verify_text_early_on_second_reel)
dcp->add (cpl);
dcp->write_xml (dcp::SMPTE);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1433,7 +1459,12 @@ BOOST_AUTO_TEST_CASE (verify_text_too_close)
{ 4 * 24, 5 * 24 },
{ 5 * 24 + 1, 6 * 24 },
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_CLOSE }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_CLOSE },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1446,8 +1477,7 @@ BOOST_AUTO_TEST_CASE (verify_text_not_too_close)
{ 4 * 24, 5 * 24 },
{ 5 * 24 + 16, 8 * 24 },
});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1455,7 +1485,12 @@ BOOST_AUTO_TEST_CASE (verify_text_too_short)
{
auto const dir = boost::filesystem::path("build/test/verify_text_too_short");
dcp_with_text<dcp::ReelSubtitleAsset> (dir, {{ 4 * 24, 4 * 24 + 1 }});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_SHORT }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_SHORT },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1463,8 +1498,7 @@ BOOST_AUTO_TEST_CASE (verify_text_not_too_short)
{
auto const dir = boost::filesystem::path("build/test/verify_text_not_too_short");
dcp_with_text<dcp::ReelSubtitleAsset> (dir, {{ 4 * 24, 4 * 24 + 17 }});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1479,7 +1513,12 @@ BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines1)
{ 96, 200, 0.2, "four" },
{ 96, 200, 0.3, "lines" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES}});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1493,8 +1532,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines1)
{ 96, 200, 0.1, "have" },
{ 96, 200, 0.2, "four" },
});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1509,7 +1547,12 @@ BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines2)
{ 150, 180, 0.2, "four" },
{ 150, 180, 0.3, "lines" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES}});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1524,8 +1567,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines2)
{ 150, 180, 0.2, "four" },
{ 190, 250, 0.3, "lines" }
});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1537,7 +1579,12 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long1)
{
{ 96, 300, 0.0, "012345678901234567890123456789012345678901234567890123" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_LONGER_THAN_RECOMMENDED }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_LONGER_THAN_RECOMMENDED },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1549,7 +1596,12 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long2)
{
{ 96, 300, 0.0, "012345678901234567890123456789012345678901234567890123456789012345678901234567890" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_TOO_LONG }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_TOO_LONG },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1564,7 +1616,12 @@ BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines1)
{ 96, 200, 0.2, "four" },
{ 96, 200, 0.3, "lines" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES}});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES},
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1578,8 +1635,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines1)
{ 96, 200, 0.1, "have" },
{ 96, 200, 0.2, "four" },
});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1594,7 +1650,12 @@ BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines2)
{ 150, 180, 0.2, "four" },
{ 150, 180, 0.3, "lines" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES}});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES},
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1609,8 +1670,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines2)
{ 150, 180, 0.2, "four" },
{ 190, 250, 0.3, "lines" }
});
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
@@ -1622,7 +1682,12 @@ BOOST_AUTO_TEST_CASE (verify_closed_caption_lines_too_long1)
{
{ 96, 300, 0.0, "0123456789012345678901234567890123" }
});
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_LINE_TOO_LONG }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_LINE_TOO_LONG },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1645,7 +1710,12 @@ BOOST_AUTO_TEST_CASE (verify_sound_sampling_rate_must_be_48k)
dcp->add (cpl);
dcp->write_xml (dcp::SMPTE);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_SOUND_FRAME_RATE }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_SOUND_FRAME_RATE },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1715,7 +1785,12 @@ BOOST_AUTO_TEST_CASE (verify_reel_assets_durations_must_match)
dcp->add (cpl);
dcp->write_xml (dcp::SMPTE);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISMATCHED_ASSET_DURATION }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISMATCHED_ASSET_DURATION },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1776,21 +1851,25 @@ BOOST_AUTO_TEST_CASE (verify_subtitles_must_be_in_all_reels)
{
boost::filesystem::path dir ("build/test/verify_subtitles_must_be_in_all_reels1");
verify_subtitles_must_be_in_all_reels_check (dir, true, false);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MAIN_SUBTITLE_NOT_IN_ALL_REELS}});
+ check_verify_result (
+ { dir },
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MAIN_SUBTITLE_NOT_IN_ALL_REELS },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
+
}
{
boost::filesystem::path dir ("build/test/verify_subtitles_must_be_in_all_reels2");
verify_subtitles_must_be_in_all_reels_check (dir, true, true);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
{
boost::filesystem::path dir ("build/test/verify_subtitles_must_be_in_all_reels1");
verify_subtitles_must_be_in_all_reels_check (dir, false, false);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
}
@@ -1851,21 +1930,24 @@ BOOST_AUTO_TEST_CASE (verify_closed_captions_must_be_in_all_reels)
{
boost::filesystem::path dir ("build/test/verify_closed_captions_must_be_in_all_reels1");
verify_closed_captions_must_be_in_all_reels_check (dir, 3, 4);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_ASSET_COUNTS_DIFFER }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_ASSET_COUNTS_DIFFER },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
{
boost::filesystem::path dir ("build/test/verify_closed_captions_must_be_in_all_reels2");
verify_closed_captions_must_be_in_all_reels_check (dir, 4, 4);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
{
boost::filesystem::path dir ("build/test/verify_closed_captions_must_be_in_all_reels3");
verify_closed_captions_must_be_in_all_reels_check (dir, 0, 0);
- auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test);
- BOOST_REQUIRE (notes.empty());
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }});
}
}
@@ -1901,7 +1983,12 @@ verify_text_entry_point_check (boost::filesystem::path dir, dcp::VerificationNot
dcp->add (cpl);
dcp->write_xml (dcp::SMPTE);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, code }});
+ check_verify_result (
+ {dir},
+ {
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, code },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
+ });
}
@@ -1953,7 +2040,7 @@ BOOST_AUTO_TEST_CASE (verify_assets_must_have_hashes)
{
BOOST_REQUIRE (dcp->cpls()[0]->file());
Editor e(dcp->cpls()[0]->file().get());
- e.replace("<Hash>cb1OLhgHG9svy7G8hoTSPpltzhw=</Hash>", "");
+ e.replace("<Hash>XGhFVrqZqapOJx5Fh2SLjj48Yjg=</Hash>", "");
}
check_verify_result (
@@ -2067,3 +2154,14 @@ BOOST_AUTO_TEST_CASE (verify_markers)
});
}
+
+BOOST_AUTO_TEST_CASE (verify_cpl_metadata_version)
+{
+ boost::filesystem::path dir = "build/test/verify_cpl_metadata_version";
+ prepare_directory (dir);
+ auto dcp = make_simple (dir);
+ dcp->cpls()[0]->unset_version_number();
+ dcp->write_xml (dcp::SMPTE);
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA_VERSION_NUMBER }});
+}
+