Don't crash immediately if there's no private data.
[dcpomatic.git] / test / test.cc
index e94a4541336be02de12dccf528f748ee3de645d4..c91701e558ce1302c4fd32c60d54848c780f674d 100644 (file)
@@ -94,7 +94,13 @@ TestPaths::TestPaths::private_data ()
                return boost::filesystem::path(env);
        }
 
-       return boost::filesystem::canonical(boost::filesystem::path ("..") / boost::filesystem::path ("dcpomatic-test-private"));
+       auto relative = boost::filesystem::path ("..") / boost::filesystem::path ("dcpomatic-test-private");
+       if (!boost::filesystem::exists(relative)) {
+               std::cerr << "No private test data found! Tests may fail.\n";
+               return relative;
+       }
+
+       return boost::filesystem::canonical(relative);
 }
 
 
@@ -827,7 +833,7 @@ dcp_file (shared_ptr<const Film> film, string prefix)
        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) {
+       std::copy_if(recursive_directory_iterator(film->dir(film->dcp_name())), recursive_directory_iterator(), std::back_inserter(matches), [&prefix](directory_entry const& entry) {
                return boost::algorithm::starts_with(entry.path().leaf().string(), prefix);
        });
 
@@ -936,7 +942,7 @@ make_and_verify_dcp (shared_ptr<Film> film, vector<dcp::VerificationNote::Code>
        film->write_metadata ();
        make_dcp (film, TranscodeJob::ChangedBehaviour::IGNORE);
        BOOST_REQUIRE (!wait_for_jobs());
-       auto notes = dcp::verify ({film->dir(film->dcp_name())}, &stage, &progress, TestPaths::xsd());
+       auto notes = dcp::verify({film->dir(film->dcp_name())}, &stage, &progress, {}, TestPaths::xsd());
        bool ok = true;
        for (auto i: notes) {
                if (find(ignore.begin(), ignore.end(), i.code()) == ignore.end()) {