diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-05-25 20:21:27 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-05-29 10:35:55 +0200 |
| commit | ca969a5faa17913d1da04e57f56c29d20340ce2c (patch) | |
| tree | c356eec8c72955336bedc1f52479494ead36fd65 | |
| parent | 1e6484e0fe9e3fa090ef58e17433333a5378043c (diff) | |
Use ConfigRestorer to reset override_path after use.
| -rw-r--r-- | test/cinema_list_test.cc | 5 | ||||
| -rw-r--r-- | test/config_test.cc | 61 | ||||
| -rw-r--r-- | test/create_cli_test.cc | 4 | ||||
| -rw-r--r-- | test/dkdm_recipient_list_test.cc | 5 | ||||
| -rw-r--r-- | test/template_test.cc | 4 | ||||
| -rw-r--r-- | test/test.cc | 9 | ||||
| -rw-r--r-- | test/test.h | 7 |
7 files changed, 44 insertions, 51 deletions
diff --git a/test/cinema_list_test.cc b/test/cinema_list_test.cc index 4aa9fa4ed..46c9d5195 100644 --- a/test/cinema_list_test.cc +++ b/test/cinema_list_test.cc @@ -23,6 +23,7 @@ #include "lib/cinema_list.h" #include "lib/config.h" #include "lib/screen.h" +#include "test.h" #include <dcp/certificate.h> #include <dcp/filesystem.h> #include <dcp/util.h> @@ -183,11 +184,11 @@ BOOST_AUTO_TEST_CASE(add_screen_test) BOOST_AUTO_TEST_CASE(cinemas_list_copy_from_xml_test) { - Config::override_path = "build/test/cinemas_list_copy_config"; + ConfigRestorer cr("build/test/cinemas_list_copy_config"); + dcp::filesystem::remove_all(*Config::override_path); dcp::filesystem::create_directories(*Config::override_path); dcp::filesystem::copy_file("test/data/cinemas2.xml", *Config::override_path / "cinemas2.xml"); - Config::drop(); CinemaList cinema_list; cinema_list.read_legacy_file(Config::instance()->read_path("cinemas2.xml")); diff --git a/test/config_test.cc b/test/config_test.cc index 0e5f827d1..5d94f1ff1 100644 --- a/test/config_test.cc +++ b/test/config_test.cc @@ -64,10 +64,7 @@ rewrite_bad_config (string filename, string extra_line) BOOST_AUTO_TEST_CASE (config_backup_test) { - ConfigRestorer cr; - - Config::override_path = "build/test/bad_config"; - Config::drop(); + ConfigRestorer cr("build/test/bad_config"); boost::filesystem::remove_all ("build/test/bad_config"); /* Write an invalid config file to config.xml */ @@ -128,13 +125,10 @@ BOOST_AUTO_TEST_CASE (config_backup_with_link_test) { using namespace boost::filesystem; - ConfigRestorer cr; - auto base = path("build/test/bad_config"); auto version = base / "2.18"; - Config::override_path = base; - Config::drop(); + ConfigRestorer cr(base); boost::filesystem::remove_all (base); @@ -158,12 +152,10 @@ BOOST_AUTO_TEST_CASE (config_backup_with_link_test) BOOST_AUTO_TEST_CASE (config_write_utf8_test) { - ConfigRestorer cr; + ConfigRestorer cr("build/test"); boost::filesystem::remove_all ("build/test/config.xml"); boost::filesystem::copy_file ("test/data/utf8_config.xml", "build/test/config.xml"); - Config::override_path = "build/test"; - Config::drop (); Config::instance()->write(); check_text_file ("test/data/utf8_config.xml", "build/test/config.xml"); @@ -173,11 +165,9 @@ BOOST_AUTO_TEST_CASE (config_write_utf8_test) /* 2.14 -> 2.18 */ BOOST_AUTO_TEST_CASE (config_upgrade_test1) { - ConfigRestorer cr; - boost::filesystem::path dir = "build/test/config_upgrade_test"; - Config::override_path = dir; - Config::drop (); + ConfigRestorer cr(dir); + boost::filesystem::remove_all (dir); boost::filesystem::create_directories (dir); @@ -206,11 +196,8 @@ BOOST_AUTO_TEST_CASE (config_upgrade_test1) /* 2.16 -> 2.18 */ BOOST_AUTO_TEST_CASE (config_upgrade_test2) { - ConfigRestorer cr; - boost::filesystem::path dir = "build/test/config_upgrade_test"; - Config::override_path = dir; - Config::drop (); + ConfigRestorer cr(dir); boost::filesystem::remove_all (dir); boost::filesystem::create_directories (dir); @@ -243,11 +230,8 @@ BOOST_AUTO_TEST_CASE (config_upgrade_test2) BOOST_AUTO_TEST_CASE (config_keep_cinemas_if_making_new_config) { - ConfigRestorer cr; - boost::filesystem::path dir = "build/test/config_keep_cinemas_if_making_new_config"; - Config::override_path = dir; - Config::drop (); + ConfigRestorer cr(dir); boost::filesystem::remove_all (dir); boost::filesystem::create_directories (dir); @@ -268,12 +252,9 @@ BOOST_AUTO_TEST_CASE (config_keep_cinemas_if_making_new_config) BOOST_AUTO_TEST_CASE(keep_config_if_cinemas_fail_to_load) { - ConfigRestorer cr; - /* Make a new config */ boost::filesystem::path dir = "build/test/keep_config_if_cinemas_fail_to_load"; - Config::override_path = dir; - Config::drop(); + ConfigRestorer cr(dir); boost::filesystem::remove_all(dir); boost::filesystem::create_directories(dir); Config::instance()->write(); @@ -301,8 +282,6 @@ BOOST_AUTO_TEST_CASE(keep_config_if_cinemas_fail_to_load) BOOST_AUTO_TEST_CASE(read_cinemas_xml_and_write_sqlite) { - ConfigRestorer cr; - /* Set up a config with an XML cinemas file */ boost::filesystem::path dir = "build/test/read_cinemas_xml_and_write_sqlite"; boost::filesystem::remove_all(dir); @@ -319,8 +298,7 @@ BOOST_AUTO_TEST_CASE(read_cinemas_xml_and_write_sqlite) ); } - Config::override_path = dir; - Config::drop(); + ConfigRestorer cr(dir); /* This should make a sqlite3 file containing the recipients from cinemas.xml */ Config::instance(); @@ -358,8 +336,6 @@ BOOST_AUTO_TEST_CASE(read_cinemas_xml_and_write_sqlite) BOOST_AUTO_TEST_CASE(read_dkdm_recipients_xml_and_write_sqlite) { - ConfigRestorer cr; - /* Set up a config with an XML cinemas file */ boost::filesystem::path dir = "build/test/read_dkdm_recipients_xml_and_write_sqlite"; boost::filesystem::remove_all(dir); @@ -376,8 +352,7 @@ BOOST_AUTO_TEST_CASE(read_dkdm_recipients_xml_and_write_sqlite) ); } - Config::override_path = dir; - Config::drop(); + ConfigRestorer cr(dir); /* This should make a sqlite3 file containing the recipients from dkdm_recipients.xml */ Config::instance(); @@ -413,7 +388,15 @@ BOOST_AUTO_TEST_CASE(read_dkdm_recipients_xml_and_write_sqlite) BOOST_AUTO_TEST_CASE(save_config_as_zip_test) { - ConfigRestorer cr; + boost::filesystem::path const dir = "build/test/save_config_as_zip_test"; + ConfigRestorer cr(dir); + boost::system::error_code ec; + boost::filesystem::remove_all(dir, ec); + boost::filesystem::create_directories(dir); + boost::filesystem::copy_file("test/data/2.18.config.xml", dir / "config.xml"); + + Config::instance()->set_cinemas_file(dir / "cinemas.sqlite3"); + Config::instance()->set_dkdm_recipients_file(dir / "dkdm_recipients.sqlite3"); CinemaList cinemas; cinemas.add_cinema({"My Great Cinema", {}, "", dcp::UTCOffset()}); @@ -421,7 +404,6 @@ BOOST_AUTO_TEST_CASE(save_config_as_zip_test) recipients.add_dkdm_recipient({"Carl's Classics", "Oldies but goodies", {}, {}}); boost::filesystem::path const zip = "build/test/save.zip"; - boost::system::error_code ec; boost::filesystem::remove(zip, ec); save_all_config_as_zip(zip); Unzipper unzipper(zip); @@ -538,8 +520,6 @@ BOOST_AUTO_TEST_CASE(load_config_from_zip_with_only_xml_ignore) BOOST_AUTO_TEST_CASE(use_sqlite_if_present) { - ConfigRestorer cr; - /* Set up a config with an XML cinemas file */ boost::filesystem::path dir = "build/test/read_cinemas_xml_and_write_sqlite"; boost::filesystem::remove_all(dir); @@ -556,8 +536,7 @@ BOOST_AUTO_TEST_CASE(use_sqlite_if_present) ); } - Config::override_path = dir; - Config::drop(); + ConfigRestorer cr(dir); /* This should make a sqlite3 file containing the recipients from cinemas.xml. * But it won't write config.xml, so config.xml will still point to cinemas.xml. diff --git a/test/create_cli_test.cc b/test/create_cli_test.cc index 09f1a4538..1be37c253 100644 --- a/test/create_cli_test.cc +++ b/test/create_cli_test.cc @@ -224,9 +224,7 @@ BOOST_AUTO_TEST_CASE (create_cli_test) BOOST_AUTO_TEST_CASE(create_cli_template_test) { - ConfigRestorer cr; - - Config::override_path = "test/data"; + ConfigRestorer cr("test/data"); auto cc = run("dcpomatic2_create test/data/flat_red.png"); auto film = cc.make_film(); diff --git a/test/dkdm_recipient_list_test.cc b/test/dkdm_recipient_list_test.cc index 20f669e76..406d181a1 100644 --- a/test/dkdm_recipient_list_test.cc +++ b/test/dkdm_recipient_list_test.cc @@ -22,17 +22,18 @@ #include "lib/config.h" #include "lib/dkdm_recipient.h" #include "lib/dkdm_recipient_list.h" +#include "test.h" #include <dcp/filesystem.h> #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE(dkdm_receipient_list_copy_from_xml_test) { - Config::override_path = "build/test/dkdm_recipient_list_copy_config"; + ConfigRestorer cr("build/test/dkdm_recipient_list_copy_config"); + dcp::filesystem::remove_all(*Config::override_path); dcp::filesystem::create_directories(*Config::override_path); dcp::filesystem::copy_file("test/data/dkdm_recipients.xml", *Config::override_path / "dkdm_recipients.xml"); - Config::drop(); DKDMRecipientList dkdm_recipient_list; dkdm_recipient_list.read_legacy_file(Config::instance()->read_path("dkdm_recipients.xml")); diff --git a/test/template_test.cc b/test/template_test.cc index 014a27309..064a070c1 100644 --- a/test/template_test.cc +++ b/test/template_test.cc @@ -33,9 +33,7 @@ using std::string; /* Bug #2491 */ BOOST_AUTO_TEST_CASE(template_wrong_channel_counts) { - ConfigRestorer cr; - - Config::override_path = "test/data"; + ConfigRestorer cr("test/data"); auto film = new_test_film("template_wrong_channel_counts", {}); film->use_template(string("Bug")); diff --git a/test/test.cc b/test/test.cc index 0a59d0300..8d92b31e4 100644 --- a/test/test.cc +++ b/test/test.cc @@ -1030,8 +1030,16 @@ check_int_close (std::pair<int, int> a, std::pair<int, int> b, int d) } +ConfigRestorer::ConfigRestorer(boost::filesystem::path override_path) +{ + Config::override_path = override_path; + Config::drop(); +} + + ConfigRestorer::~ConfigRestorer() { + Config::override_path = boost::none; setup_test_config(); } @@ -1073,3 +1081,4 @@ Editor::replace(string a, string b) boost::algorithm::replace_all(_content, a, b); BOOST_REQUIRE(_content != old_content); } + diff --git a/test/test.h b/test/test.h index f63f942b6..73c77c98d 100644 --- a/test/test.h +++ b/test/test.h @@ -96,7 +96,14 @@ private: class ConfigRestorer { public: + ConfigRestorer(boost::filesystem::path override_path); + + ConfigRestorer() {} + ~ConfigRestorer(); + +private: + boost::optional<boost::filesystem::path> _old_path; }; |
