]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add unit test for config key tables consistency
authorJoel Rosdahl <joel@rosdahl.net>
Fri, 15 May 2020 17:30:26 +0000 (19:30 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Fri, 15 May 2020 17:30:26 +0000 (19:30 +0200)
src/Config.cpp
src/Config.hpp
unittest/test_Config.cpp

index 78b4c72e18e2e55052ea40353db389c4dffc2e91..da87c3d952e6a842e7cd26fe90faa1074b0061d0 100644 (file)
@@ -832,3 +832,16 @@ Config::set_item(const std::string& key,
 
   m_origins.emplace(key, origin);
 }
+
+void
+Config::check_key_tables_consistency()
+{
+  for (const auto& item : k_env_variable_table) {
+    if (k_config_key_table.find(item.second) == k_config_key_table.end()) {
+      throw Error(fmt::format(
+        "env var {} mapped to {} which is missing from k_config_key_table",
+        item.first,
+        item.second));
+    }
+  }
+}
index 3c6d87723af75b54f0386ee227204dd4346f4d4d..cde10497c0d9cbd20caf1fdd35233054fb3d550a 100644 (file)
@@ -115,6 +115,9 @@ public:
                                 const std::string& key,
                                 const std::string& value);
 
+  // Called from unit tests.
+  static void check_key_tables_consistency();
+
 private:
   std::string m_primary_config_path;
   std::string m_secondary_config_path;
index 35fe58c848c219c3c8f8f5803b846e0c9217b968..7772ecd5171daef503738c8d9fd5f09bca324c7f 100644 (file)
@@ -474,5 +474,7 @@ TEST_CASE("Config::visit_items")
   }
 }
 
-// TODO Test that values in k_env_variable_table map to keys in
-//   k_config_item_table.;
+TEST_CASE("Check key tables consistency")
+{
+  CHECK_NOTHROW(Config::check_key_tables_consistency());
+}