summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-12-02 19:41:09 +0100
committerCarl Hetherington <cth@carlh.net>2022-12-02 19:41:09 +0100
commit73a0bf21c7cc460549b6faedc0413d4eab735621 (patch)
tree0443c554add57130371ce88c28870af3959462ec /test
parent4e460664ee6f1cc34ac566fb9f0b3655fd329de6 (diff)
Catch problems when using dcp_file() and getting more than one answer.
Diffstat (limited to 'test')
-rw-r--r--test/test.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/test/test.cc b/test/test.cc
index b2a0cd5ac..e94a45413 100644
--- a/test/test.cc
+++ b/test/test.cc
@@ -824,13 +824,15 @@ check_one_frame (boost::filesystem::path dcp_dir, int64_t index, boost::filesyst
boost::filesystem::path
dcp_file (shared_ptr<const Film> film, string prefix)
{
- auto i = boost::filesystem::recursive_directory_iterator(film->dir(film->dcp_name()));
- while (i != boost::filesystem::recursive_directory_iterator() && !boost::algorithm::starts_with(i->path().leaf().string(), prefix)) {
- ++i;
- }
+ using namespace boost::filesystem;
+
+ vector<directory_entry> matches;
+ std::copy_if(directory_iterator(film->dir(film->dcp_name())), directory_iterator(), std::back_inserter(matches), [&prefix](directory_entry const& entry) {
+ return boost::algorithm::starts_with(entry.path().leaf().string(), prefix);
+ });
- BOOST_REQUIRE_MESSAGE(i != boost::filesystem::recursive_directory_iterator(), "Could not find file with prefix " << prefix);
- return i->path();
+ BOOST_REQUIRE_MESSAGE(matches.size() == 1, "Found " << matches.size() << " files with prefix " << prefix);
+ return matches[0].path();
}
boost::filesystem::path