+ fclose (ref_file);
+ fclose (check_file);
+}
+
+
+void
+check_text_file (boost::filesystem::path ref, boost::filesystem::path check)
+{
+ auto ref_file = fopen_boost (ref, "r");
+ BOOST_CHECK (ref_file);
+ auto check_file = fopen_boost (check, "r");
+ BOOST_CHECK (check_file);
+
+ int const buffer_size = std::max(
+ boost::filesystem::file_size(ref),
+ boost::filesystem::file_size(check)
+ );
+
+ DCPOMATIC_ASSERT (buffer_size < 1024 * 1024);
+
+ 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.data(), check_buffer.data(), ref_read) == 0, error);