X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Ftest.h;h=2b01db294286743dbca0a2631ff72c6f8174be5a;hp=4968d330162eff74327dd8d1dc8722fec46ed314;hb=e1555a8837da05f135a3705112469206fc17ec80;hpb=5d937606cf96d163be98920fa5619114a28eec9d diff --git a/test/test.h b/test/test.h index 4968d3301..2b01db294 100644 --- a/test/test.h +++ b/test/test.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2019 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,9 +18,13 @@ */ + #include "lib/warnings.h" +#include "lib/types.h" +#include #include -#include +#include + class Film; class Image; @@ -34,34 +38,70 @@ public: static boost::filesystem::path xsd(); }; + +class Cleanup +{ +public: + void add (boost::filesystem::path path); + + /* Remove everything passed to add(). We don't do this + * in a destructor so that results of failed tests aren't + * deleted. + */ + void run (); + +private: + std::vector _paths; +}; + + extern bool wait_for_jobs (); -extern void setup_test_config (); -extern boost::shared_ptr new_test_film (std::string); -extern boost::shared_ptr new_test_film2 (std::string); +extern std::shared_ptr new_test_film (std::string); +extern std::shared_ptr new_test_film2 (std::string, std::vector> content = {}, Cleanup* cleanup = nullptr); extern void check_dcp (boost::filesystem::path, boost::filesystem::path); -extern void check_dcp (boost::filesystem::path, boost::shared_ptr); +extern void check_dcp (boost::filesystem::path, std::shared_ptr); extern void check_file (boost::filesystem::path ref, boost::filesystem::path check); +extern void check_text_file (boost::filesystem::path ref, boost::filesystem::path check); extern void check_wav_file (boost::filesystem::path ref, boost::filesystem::path check); extern void check_mxf_audio_file (boost::filesystem::path ref, boost::filesystem::path check); extern bool mxf_atmos_files_same (boost::filesystem::path ref, boost::filesystem::path check, bool verbose = false); extern void check_xml (boost::filesystem::path, boost::filesystem::path, std::list); -extern void check_file (boost::filesystem::path, boost::filesystem::path); extern void check_ffmpeg (boost::filesystem::path, boost::filesystem::path, int audio_tolerance); extern void check_image (boost::filesystem::path, boost::filesystem::path, double threshold = 4); extern boost::filesystem::path test_film_dir (std::string); -extern void write_image (boost::shared_ptr image, boost::filesystem::path file); -boost::filesystem::path dcp_file (boost::shared_ptr film, std::string prefix); +extern void write_image (std::shared_ptr image, boost::filesystem::path file); +boost::filesystem::path dcp_file (std::shared_ptr film, std::string prefix); void check_one_frame (boost::filesystem::path dcp, int64_t index, boost::filesystem::path ref); -extern boost::filesystem::path subtitle_file (boost::shared_ptr film); +extern boost::filesystem::path subtitle_file (std::shared_ptr film); extern void make_random_file (boost::filesystem::path path, size_t size); +extern void make_and_verify_dcp (std::shared_ptr film, std::vector ignore = {}); +extern void check_int_close (int a, int b, int d); +extern void check_int_close (std::pair, std::pair, int d); + class LogSwitcher { public: - LogSwitcher (boost::shared_ptr log); + LogSwitcher (std::shared_ptr log); ~LogSwitcher (); private: - boost::shared_ptr _old; + std::shared_ptr _old; +}; + + +class ConfigRestorer +{ +public: + ~ConfigRestorer(); }; + +namespace dcp { + +std::ostream& operator<< (std::ostream& s, dcp::Size i); +std::ostream& operator<< (std::ostream& s, dcp::Standard t); + +} + +std::ostream& operator<< (std::ostream& s, VideoFrameType f);