X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fshuffler_test.cc;h=6d90ba27d99092f32dc3d850bb49c882fe7f1043;hb=e3c78ffdb5e562841e86e6f59a20494159c44de7;hp=440d014cf2d89721f5f475d5729dca44346817d7;hpb=5f5c64faa7b0114f84f45e50211611333042c672;p=dcpomatic.git diff --git a/test/shuffler_test.cc b/test/shuffler_test.cc index 440d014cf..6d90ba27d 100644 --- a/test/shuffler_test.cc +++ b/test/shuffler_test.cc @@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE (shuffler_test5) check (0, EYES_LEFT, __LINE__); /* More lefts should be kept in the shuffler in the hope that some rights arrive */ - for (int i = 0; i < 8; ++i) { + for (int i = 0; i < s._max_size; ++i) { push (s, i + 1, EYES_LEFT); } BOOST_CHECK (pending_cv.empty ()); @@ -140,6 +140,30 @@ BOOST_AUTO_TEST_CASE (shuffler_test5) /* If enough lefts come the shuffler should conclude that there's no rights and start giving out the lefts. */ - push (s, 9, EYES_LEFT); + push (s, s._max_size + 1, EYES_LEFT); check (1, EYES_LEFT, __LINE__); } + +/** One complete frame (L+R) missing. + Shuffler should carry on, skipping this frame, as the player will cope with it. +*/ +BOOST_AUTO_TEST_CASE (shuffler_test6) +{ + Shuffler s; + s.Video.connect (boost::bind (&receive, _1, _2)); + + push (s, 0, EYES_LEFT); + check (0, EYES_LEFT, __LINE__); + push (s, 0, EYES_RIGHT); + check (0, EYES_RIGHT, __LINE__); + + push (s, 2, EYES_LEFT); + push (s, 2, EYES_RIGHT); + check (2, EYES_LEFT, __LINE__); + check (2, EYES_RIGHT, __LINE__); + + push (s, 3, EYES_LEFT); + check (3, EYES_LEFT, __LINE__); + push (s, 3, EYES_RIGHT); + check (3, EYES_RIGHT, __LINE__); +}