From ccacce39c39d16977ab6c1592fcb6e941b05ddff Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 26 Sep 2021 00:09:04 +0200 Subject: Add config location versioning (#2090). --- test/config_test.cc | 59 ++++++++++++++++++++++++++++++++++++----------------- test/data | 2 +- 2 files changed, 41 insertions(+), 20 deletions(-) (limited to 'test') diff --git a/test/config_test.cc b/test/config_test.cc index d78b9357b..173c95cbf 100644 --- a/test/config_test.cc +++ b/test/config_test.cc @@ -32,11 +32,11 @@ static void rewrite_bad_config () { boost::system::error_code ec; - boost::filesystem::remove ("build/test/bad_config/config.xml", ec); + boost::filesystem::remove ("build/test/bad_config/2.16/config.xml", ec); Config::override_path = "build/test/bad_config"; - boost::filesystem::create_directories ("build/test/bad_config"); - ofstream f ("build/test/bad_config/config.xml"); + boost::filesystem::create_directories ("build/test/bad_config/2.16"); + ofstream f ("build/test/bad_config/2.16/config.xml"); f << "\n" << "\n" << "\n" @@ -57,37 +57,37 @@ BOOST_AUTO_TEST_CASE (config_backup_test) Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.2")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.1")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.2")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.2")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.1")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.2")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.2")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.1")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.2")); + BOOST_CHECK ( boost::filesystem::exists("build/test/bad_config/2.16/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists("build/test/bad_config/2.16/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.1")); - BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.2")); - BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.3")); - BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.4")); + BOOST_CHECK (boost::filesystem::exists("build/test/bad_config/2.16/config.xml.1")); + BOOST_CHECK (boost::filesystem::exists("build/test/bad_config/2.16/config.xml.2")); + BOOST_CHECK (boost::filesystem::exists("build/test/bad_config/2.16/config.xml.3")); + BOOST_CHECK (boost::filesystem::exists("build/test/bad_config/2.16/config.xml.4")); /* This test has called Config::set_defaults(), so take us back to the config that we want for our tests. @@ -112,3 +112,24 @@ BOOST_AUTO_TEST_CASE (config_write_utf8_test) setup_test_config (); } + +BOOST_AUTO_TEST_CASE (config_upgrade_test) +{ + boost::filesystem::path dir = "build/test/config_upgrade_test"; + Config::override_path = dir; + Config::drop (); + boost::filesystem::remove_all (dir); + boost::filesystem::create_directories (dir); + + boost::filesystem::copy_file ("test/data/2.14.config.xml", dir / "config.xml"); + boost::filesystem::copy_file ("test/data/2.14.cinemas.xml", dir / "cinemas.xml"); + Config::instance(); + Config::instance()->write(); + + check_xml (dir / "config.xml", "test/data/2.14.config.xml", {}); + check_xml (dir / "cinemas.xml", "test/data/2.14.cinemas.xml", {}); + check_xml (dir / "2.16" / "config.xml", "test/data/2.16.config.xml", {}); + /* cinemas.xml is not copied into 2.16 as its format has not changed */ + BOOST_REQUIRE (!boost::filesystem::exists(dir / "2.16" / "cinemas.xml")); +} + diff --git a/test/data b/test/data index d8d9a1eed..56b37afdf 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit d8d9a1eedc24b5f67f377b6e87e649cdee6fc3b7 +Subproject commit 56b37afdf96ecc83752ce70af061ee6c7ed4f78b -- cgit v1.2.3