diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-06-07 21:09:03 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-06-07 21:09:03 +0200 |
| commit | 2d89772ba5b5bc3b2e010b3bbbafe2efa9300353 (patch) | |
| tree | c3152df004e3461a43b5059001a1894ca1623671 /test | |
| parent | 8e89905d0391f2b77253fe04ad1af285b2c6fec4 (diff) | |
Fix font ID allocation from DCP when there are subs and ccaps using the same IDs (#2822).
Previously we would always use <last-reel+1>_id as a disambiguated ID
for every case.
Diffstat (limited to 'test')
| -rw-r--r-- | test/font_id_allocator_test.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/font_id_allocator_test.cc b/test/font_id_allocator_test.cc index 7c93c6b78..07110346b 100644 --- a/test/font_id_allocator_test.cc +++ b/test/font_id_allocator_test.cc @@ -23,6 +23,10 @@ #include <boost/test/unit_test.hpp> +using std::string; +using std::vector; + + BOOST_AUTO_TEST_CASE(font_id_allocator_test_without_disambiguation) { FontIDAllocator allocator; @@ -70,3 +74,28 @@ BOOST_AUTO_TEST_CASE(font_id_allocator_test_with_disambiguation) BOOST_CHECK(allocator.font_id(1, "asset3", "font1") == "1_font1"); } + +/* Bug #2822: multiple reels, each with subs + closed captions, and each using the same + * basic font ID. + */ +BOOST_AUTO_TEST_CASE(font_id_allocator_test_with_disambiguation2) +{ + FontIDAllocator allocator; + + allocator.add_font(0, "asset1", "font"); + allocator.add_font(0, "asset2", "font"); + + allocator.add_font(1, "asset1", "font"); + allocator.add_font(1, "asset2", "font"); + + allocator.allocate(); + vector<string> ids = { + allocator.font_id(0, "asset1", "font"), + allocator.font_id(0, "asset2", "font"), + allocator.font_id(1, "asset1", "font"), + allocator.font_id(1, "asset2", "font") + }; + + std::sort(ids.begin(), ids.end()); + BOOST_CHECK(std::adjacent_find(ids.begin(), ids.end()) == ids.end()); +} |
