summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-10-11 19:55:06 +0200
committerCarl Hetherington <cth@carlh.net>2022-05-02 00:22:43 +0200
commit809bcfd85fad2ef7d4131c054be4cccd5bcc9d05 (patch)
tree8170cee031af2209afa1905b8703f77b6d748d8e /test
parent9a9ce1aec97db89b00bc216edf7cee5f3d48670e (diff)
Replace some raw arrays with std::vectors.
Diffstat (limited to 'test')
-rw-r--r--test/create_cli_test.cc6
-rw-r--r--test/dcp_playback_test.cc5
-rw-r--r--test/ffmpeg_audio_only_test.cc29
-rw-r--r--test/socket_test.cc11
-rw-r--r--test/test.cc28
5 files changed, 30 insertions, 49 deletions
diff --git a/test/create_cli_test.cc b/test/create_cli_test.cc
index 523fd75e6..97ac25374 100644
--- a/test/create_cli_test.cc
+++ b/test/create_cli_test.cc
@@ -37,21 +37,19 @@ run (string cmd)
boost::escaped_list_separator<char> els ("", " ", "\"\'");
boost::tokenizer<boost::escaped_list_separator<char> > tok (cmd, els);
- char** argv = new char*[256];
+ std::vector<char*> argv(256);
int argc = 0;
for (boost::tokenizer<boost::escaped_list_separator<char> >::iterator i = tok.begin(); i != tok.end(); ++i) {
argv[argc++] = strdup (i->c_str());
}
- CreateCLI cc (argc, argv);
+ CreateCLI cc (argc, argv.data());
for (int i = 0; i < argc; ++i) {
free (argv[i]);
}
- delete[] argv;
-
return cc;
}
diff --git a/test/dcp_playback_test.cc b/test/dcp_playback_test.cc
index 74d5edd3f..4cdb9f897 100644
--- a/test/dcp_playback_test.cc
+++ b/test/dcp_playback_test.cc
@@ -55,15 +55,14 @@ BOOST_AUTO_TEST_CASE (dcp_playback_test)
false
);
- auto audio_buffer = new float[2000 * 6];
+ std::vector<float> audio_buffer(2000 * 6);
while (true) {
auto p = butler->get_video (Butler::Behaviour::BLOCKING, 0);
if (!p.first) {
break;
}
/* assuming DCP is 24fps/48kHz */
- butler->get_audio (Butler::Behaviour::BLOCKING, audio_buffer, 2000);
+ butler->get_audio (Butler::Behaviour::BLOCKING, audio_buffer.data(), 2000);
p.first->image(boost::bind(&PlayerVideo::force, AV_PIX_FMT_RGB24), VideoRange::FULL, true);
}
- delete[] audio_buffer;
}
diff --git a/test/ffmpeg_audio_only_test.cc b/test/ffmpeg_audio_only_test.cc
index 40c909b39..ea9a9c4e5 100644
--- a/test/ffmpeg_audio_only_test.cc
+++ b/test/ffmpeg_audio_only_test.cc
@@ -48,17 +48,16 @@ using namespace boost::placeholders;
static SNDFILE* ref = nullptr;
-static int ref_buffer_size = 0;
-static float* ref_buffer = nullptr;
+static std::vector<float> ref_buffer;
static void
audio (std::shared_ptr<AudioBuffers> audio, int channels)
{
/* Check that we have a big enough buffer */
- BOOST_CHECK (audio->frames() * audio->channels() < ref_buffer_size);
+ BOOST_CHECK (audio->frames() * audio->channels() < static_cast<int>(ref_buffer.size()));
- int const N = sf_readf_float (ref, ref_buffer, audio->frames());
+ int const N = sf_readf_float (ref, ref_buffer.data(), audio->frames());
for (int i = 0; i < N; ++i) {
switch (channels) {
case 1:
@@ -98,8 +97,7 @@ test (boost::filesystem::path file)
ref = sf_open (file.string().c_str(), SFM_READ, &info);
/* We don't want to test anything that requires resampling */
BOOST_REQUIRE_EQUAL (info.samplerate, 48000);
- ref_buffer_size = info.samplerate * info.channels;
- ref_buffer = new float[ref_buffer_size];
+ ref_buffer.resize(info.samplerate * info.channels);
auto player = make_shared<Player>(film, Image::Alignment::COMPACT);
@@ -107,7 +105,6 @@ test (boost::filesystem::path file)
while (!player->pass ()) {}
sf_close (ref);
- delete[] ref_buffer;
return film;
}
@@ -126,21 +123,19 @@ BOOST_AUTO_TEST_CASE (ffmpeg_audio_only_test1)
/* We don't want to test anything that requires resampling */
BOOST_REQUIRE_EQUAL (info.samplerate, 48000);
- auto buffer = new int16_t[info.channels * 2000];
+ std::vector<int16_t> buffer(info.channels * 2000);
dcp::SoundAsset asset (dcp_file(film, "pcm"));
auto reader = asset.start_read ();
for (int i = 0; i < asset.intrinsic_duration(); ++i) {
auto frame = reader->get_frame(i);
sf_count_t this_time = min (info.frames, sf_count_t(2000));
- sf_readf_short (ref, buffer, this_time);
+ sf_readf_short (ref, buffer.data(), this_time);
for (int j = 0; j < this_time; ++j) {
BOOST_REQUIRE_EQUAL (frame->get(2, j) >> 8, buffer[j]);
}
info.frames -= this_time;
}
-
- delete[] buffer;
}
@@ -157,14 +152,14 @@ BOOST_AUTO_TEST_CASE (ffmpeg_audio_only_test2)
/* We don't want to test anything that requires resampling */
BOOST_REQUIRE_EQUAL (info.samplerate, 48000);
- auto buffer = new int32_t[info.channels * 2000];
+ std::vector<int32_t> buffer(info.channels * 2000);
dcp::SoundAsset asset (dcp_file(film, "pcm"));
auto reader = asset.start_read ();
for (int i = 0; i < asset.intrinsic_duration(); ++i) {
auto frame = reader->get_frame(i);
sf_count_t this_time = min (info.frames, sf_count_t(2000));
- sf_readf_int (ref, buffer, this_time);
+ sf_readf_int (ref, buffer.data(), this_time);
for (int j = 0; j < this_time; ++j) {
int32_t s = frame->get(2, j);
if (s > (1 << 23)) {
@@ -174,8 +169,6 @@ BOOST_AUTO_TEST_CASE (ffmpeg_audio_only_test2)
}
info.frames -= this_time;
}
-
- delete[] buffer;
}
@@ -192,14 +185,14 @@ BOOST_AUTO_TEST_CASE (ffmpeg_audio_only_test3)
/* We don't want to test anything that requires resampling */
BOOST_REQUIRE_EQUAL (info.samplerate, 48000);
- auto buffer = new int32_t[info.channels * 2000];
+ std::vector<int32_t> buffer(info.channels * 2000);
dcp::SoundAsset asset (dcp_file(film, "pcm"));
auto reader = asset.start_read ();
for (int i = 0; i < asset.intrinsic_duration(); ++i) {
auto frame = reader->get_frame(i);
sf_count_t this_time = min (info.frames, sf_count_t(2000));
- sf_readf_int (ref, buffer, this_time);
+ sf_readf_int (ref, buffer.data(), this_time);
for (int j = 0; j < this_time; ++j) {
int32_t s = frame->get(2, j);
if (s > (1 << 23)) {
@@ -209,6 +202,4 @@ BOOST_AUTO_TEST_CASE (ffmpeg_audio_only_test3)
}
info.frames -= this_time;
}
-
- delete[] buffer;
}
diff --git a/test/socket_test.cc b/test/socket_test.cc
index 6021d5172..bcdbcd724 100644
--- a/test/socket_test.cc
+++ b/test/socket_test.cc
@@ -43,7 +43,7 @@ class TestServer : public Server
public:
TestServer (bool digest)
: Server (TEST_SERVER_PORT, 30)
- , _buffer (new uint8_t[TEST_SERVER_BUFFER_LENGTH])
+ , _buffer (TEST_SERVER_BUFFER_LENGTH)
, _size (0)
, _result (false)
, _digest (digest)
@@ -58,7 +58,6 @@ public:
try {
_thread.join ();
} catch (...) {}
- delete[] _buffer;
}
void expect (int size)
@@ -68,7 +67,7 @@ public:
}
uint8_t const * buffer() const {
- return _buffer;
+ return _buffer.data();
}
void await ()
@@ -90,12 +89,12 @@ private:
BOOST_REQUIRE (_size);
if (_digest) {
Socket::ReadDigestScope ds (socket);
- socket->read (_buffer, _size);
+ socket->read (_buffer.data(), _size);
_size = 0;
_condition.notify_one ();
_result = ds.check();
} else {
- socket->read (_buffer, _size);
+ socket->read (_buffer.data(), _size);
_size = 0;
_condition.notify_one ();
}
@@ -104,7 +103,7 @@ private:
boost::thread _thread;
boost::mutex _mutex;
boost::condition _condition;
- uint8_t* _buffer;
+ std::vector<uint8_t> _buffer;
int _size;
bool _result;
bool _digest;
diff --git a/test/test.cc b/test/test.cc
index 7136b038d..e61387132 100644
--- a/test/test.cc
+++ b/test/test.cc
@@ -468,29 +468,26 @@ check_file (boost::filesystem::path ref, boost::filesystem::path check)
BOOST_CHECK (check_file);
int const buffer_size = 65536;
- uint8_t* ref_buffer = new uint8_t[buffer_size];
- uint8_t* check_buffer = new uint8_t[buffer_size];
+ std::vector<uint8_t> ref_buffer(buffer_size);
+ std::vector<uint8_t> check_buffer(buffer_size);
string error = "File " + check.string() + " differs from reference " + ref.string();
while (N) {
uintmax_t this_time = min (uintmax_t (buffer_size), N);
- size_t r = fread (ref_buffer, 1, this_time, ref_file);
+ size_t r = fread (ref_buffer.data(), 1, this_time, ref_file);
BOOST_CHECK_EQUAL (r, this_time);
- r = fread (check_buffer, 1, this_time, check_file);
+ r = fread (check_buffer.data(), 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)) {
+ BOOST_CHECK_MESSAGE (memcmp(ref_buffer.data(), check_buffer.data(), this_time) == 0, error);
+ if (memcmp(ref_buffer.data(), check_buffer.data(), this_time)) {
break;
}
N -= this_time;
}
- delete[] ref_buffer;
- delete[] check_buffer;
-
fclose (ref_file);
fclose (check_file);
}
@@ -511,17 +508,14 @@ check_text_file (boost::filesystem::path ref, boost::filesystem::path check)
DCPOMATIC_ASSERT (buffer_size < 1024 * 1024);
- auto ref_buffer = new uint8_t[buffer_size];
- auto ref_read = fread(ref_buffer, 1, buffer_size, ref_file);
- auto check_buffer = new uint8_t[buffer_size];
- auto check_read = fread(check_buffer, 1, buffer_size, check_file);
+ std::vector<uint8_t> ref_buffer(buffer_size);
+ auto ref_read = fread(ref_buffer.data(), 1, buffer_size, ref_file);
+ std::vector<uint8_t> check_buffer(buffer_size);
+ auto check_read = fread(check_buffer.data(), 1, buffer_size, check_file);
BOOST_CHECK_EQUAL (ref_read, check_read);
string const error = "File " + check.string() + " differs from reference " + ref.string();
- BOOST_CHECK_MESSAGE(memcmp(ref_buffer, check_buffer, ref_read) == 0, error);
-
- delete[] ref_buffer;
- delete[] check_buffer;
+ BOOST_CHECK_MESSAGE(memcmp(ref_buffer.data(), check_buffer.data(), ref_read) == 0, error);
fclose (ref_file);
fclose (check_file);