X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Faudio_ring_buffers_test.cc;h=6efd8fbf8e58c9ba34def776881b0a75d4fedc22;hb=8aa38cd1caa8b957ac8292d61f401729255c453c;hp=23491f6b380b694a520cd8b073ddf54e43f3d4e2;hpb=6a37a2a1283cc3c73cb857dba32099cf12c8768a;p=dcpomatic.git diff --git a/test/audio_ring_buffers_test.cc b/test/audio_ring_buffers_test.cc index 23491f6b3..6efd8fbf8 100644 --- a/test/audio_ring_buffers_test.cc +++ b/test/audio_ring_buffers_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016-2017 Carl Hetherington + Copyright (C) 2016-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -23,10 +23,14 @@ #include using std::cout; -using boost::shared_ptr; +using std::make_shared; +using std::shared_ptr; +using namespace dcpomatic; #define CANARY 9999 +/* XXX: these tests don't check the timestamping in AudioRingBuffers */ + /** Basic tests fetching the same number of channels as went in */ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1) { @@ -38,7 +42,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1) /* Getting some data should give an underrun and write zeros */ float buffer[256 * 6]; buffer[240 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true); + BOOST_CHECK (!rb.get(buffer, 6, 240)); for (int i = 0; i < 240 * 6; ++i) { BOOST_REQUIRE_EQUAL (buffer[i], 0); } @@ -48,26 +52,26 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1) rb.clear (); BOOST_CHECK_EQUAL (rb.size(), 0); buffer[240 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true); + BOOST_CHECK (rb.get(buffer, 6, 240) == boost::optional()); for (int i = 0; i < 240 * 6; ++i) { BOOST_REQUIRE_EQUAL (buffer[i], 0); } BOOST_CHECK_EQUAL (buffer[240 * 6], CANARY); /* Put some data in */ - shared_ptr data (new AudioBuffers (6, 91)); + auto data = make_shared(6, 91); int value = 0; for (int i = 0; i < 91; ++i) { for (int j = 0; j < 6; ++j) { data->data(j)[i] = value++; } } - rb.put (data); + rb.put (data, DCPTime(), 48000); BOOST_CHECK_EQUAL (rb.size(), 91); /* Get part of it out */ buffer[40 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 40), false); + BOOST_CHECK (*rb.get(buffer, 6, 40) == DCPTime()); int check = 0; for (int i = 0; i < 40 * 6; ++i) { BOOST_REQUIRE_EQUAL (buffer[i], check++); @@ -77,7 +81,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1) /* Get the rest */ buffer[51 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 51), false); + BOOST_CHECK (*rb.get(buffer, 6, 51) == DCPTime::from_frames(40, 48000)); for (int i = 0; i < 51 * 6; ++i) { BOOST_REQUIRE_EQUAL (buffer[i], check++); } @@ -86,7 +90,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1) /* Now there should be an underrun */ buffer[240 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true); + BOOST_CHECK (!rb.get(buffer, 6, 240)); BOOST_CHECK_EQUAL (buffer[240 * 6], CANARY); } @@ -96,20 +100,20 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test2) AudioRingBuffers rb; /* Put some data in */ - shared_ptr data (new AudioBuffers (2, 91)); + auto data = make_shared(2, 91); int value = 0; for (int i = 0; i < 91; ++i) { for (int j = 0; j < 2; ++j) { data->data(j)[i] = value++; } } - rb.put (data); + rb.put (data, DCPTime(), 48000); BOOST_CHECK_EQUAL (rb.size(), 91); /* Get part of it out */ float buffer[256 * 6]; buffer[40 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 40), false); + BOOST_CHECK (*rb.get(buffer, 6, 40) == DCPTime()); int check = 0; for (int i = 0; i < 40; ++i) { for (int j = 0; j < 2; ++j) { @@ -124,7 +128,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test2) /* Get the rest */ buffer[51 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 51), false); + BOOST_CHECK (*rb.get(buffer, 6, 51) == DCPTime::from_frames(40, 48000)); for (int i = 0; i < 51; ++i) { for (int j = 0; j < 2; ++j) { BOOST_REQUIRE_EQUAL (buffer[i * 6 + j], check++); @@ -138,7 +142,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test2) /* Now there should be an underrun */ buffer[240 * 6] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true); + BOOST_CHECK (!rb.get(buffer, 6, 240)); BOOST_CHECK_EQUAL (buffer[240 * 6], CANARY); } @@ -148,20 +152,20 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test3) AudioRingBuffers rb; /* Put some data in */ - shared_ptr data (new AudioBuffers (6, 91)); + auto data = make_shared(6, 91); int value = 0; for (int i = 0; i < 91; ++i) { for (int j = 0; j < 6; ++j) { data->data(j)[i] = value++; } } - rb.put (data); + rb.put (data, DCPTime(), 48000); BOOST_CHECK_EQUAL (rb.size(), 91); /* Get part of it out */ float buffer[256 * 6]; buffer[40 * 2] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 2, 40), false); + BOOST_CHECK (*rb.get(buffer, 2, 40) == DCPTime()); int check = 0; for (int i = 0; i < 40; ++i) { for (int j = 0; j < 2; ++j) { @@ -174,7 +178,7 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test3) /* Get the rest */ buffer[51 * 2] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 2, 51), false); + BOOST_CHECK (*rb.get(buffer, 2, 51) == DCPTime::from_frames(40, 48000)); for (int i = 0; i < 51; ++i) { for (int j = 0; j < 2; ++j) { BOOST_REQUIRE_EQUAL (buffer[i * 2 + j], check++); @@ -186,6 +190,6 @@ BOOST_AUTO_TEST_CASE (audio_ring_buffers_test3) /* Now there should be an underrun */ buffer[240 * 2] = CANARY; - BOOST_CHECK_EQUAL (rb.get (buffer, 2, 240), true); + BOOST_CHECK (!rb.get(buffer, 2, 240)); BOOST_CHECK_EQUAL (buffer[240 * 2], CANARY); }