summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-05-25 20:21:27 +0200
committerCarl Hetherington <cth@carlh.net>2024-05-29 10:35:55 +0200
commitca969a5faa17913d1da04e57f56c29d20340ce2c (patch)
treec356eec8c72955336bedc1f52479494ead36fd65 /test
parent1e6484e0fe9e3fa090ef58e17433333a5378043c (diff)
Use ConfigRestorer to reset override_path after use.
Diffstat (limited to 'test')
-rw-r--r--test/cinema_list_test.cc5
-rw-r--r--test/config_test.cc61
-rw-r--r--test/create_cli_test.cc4
-rw-r--r--test/dkdm_recipient_list_test.cc5
-rw-r--r--test/template_test.cc4
-rw-r--r--test/test.cc9
-rw-r--r--test/test.h7
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;
};