Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / xbt / config_test.cpp
index 8b41924..0c28bac 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved.     */
+/* Copyright (c) 2004-2023. The SimGrid Team. All rights reserved.     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -9,56 +9,48 @@
 #include <string>
 #include <xbt/log.h>
 
-#include "catch.hpp"
+#include "src/3rd-party/catch.hpp"
 
 XBT_PUBLIC_DATA simgrid::config::Config* simgrid_config;
 
-static void make_set()
+TEST_CASE("xbt::config: Configuration support", "config")
 {
   XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(xbt_cfg);
   xbt_log_threshold_set(&_XBT_LOGV(xbt_cfg), xbt_log_priority_critical);
+
+  auto temp      = simgrid_config;
   simgrid_config = nullptr;
   simgrid::config::declare_flag<int>("speed", "description", 0);
-  simgrid::config::declare_flag<std::string>("peername", "description", "");
+  simgrid::config::alias("speed", {"velocity"});
+  simgrid::config::declare_flag<std::string>("peer-name", "description", "");
   simgrid::config::declare_flag<std::string>("user", "description", "");
-}
-
-TEST_CASE("xbt::config: Configuration support", "config")
-{
 
   SECTION("Alloc and free a config set")
   {
-    auto temp = simgrid_config;
-    make_set();
     INFO("Alloc and free a config set");
-    simgrid::config::set_parse("peername:veloce user:bidule");
-    simgrid::config::finalize();
-    simgrid_config = temp;
+    simgrid::config::set_parse("peer-name:veloce user:bidule");
   }
 
   SECTION("Data retrieving tests")
   {
-    auto temp = simgrid_config;
-    make_set();
-
     INFO("Get a single value");
     /* get_single_value */
-    simgrid::config::set_parse("peername:toto:42 speed:42");
+    simgrid::config::set_parse("peer-name:toto:42 speed:42");
     int ival = simgrid::config::get_value<int>("speed");
     REQUIRE(ival == 42); // Unexpected value for speed
 
-    INFO("Access to a non-existant entry");
-
+    INFO("Access to a non-existent entry");
     REQUIRE_THROWS_AS(simgrid::config::set_parse("color:blue"), std::out_of_range);
+    REQUIRE_THROWS_AS(simgrid::config::set_parse("peer_name:fellow"), std::out_of_range);
 
-    simgrid::config::finalize();
-    simgrid_config = temp;
+    INFO("Set value by alias");
+    simgrid::config::set_parse("velocity:33");
+    ival = simgrid::config::get_value<int>("speed");
+    REQUIRE(ival == 33); // Unexpected value for speed
   }
 
   SECTION("C++ flags")
   {
-    auto temp = simgrid_config;
-    make_set();
     INFO("C++ declaration of flags");
 
     simgrid::config::Flag<int> int_flag("int", "", 0);
@@ -74,8 +66,8 @@ TEST_CASE("xbt::config: Configuration support", "config")
     REQUIRE(double_flag == 8.0);   // Check double flag
     REQUIRE(bool_flag1);           // Check bool1 flag
     REQUIRE(not bool_flag2);       // Check bool2 flag
-
-    simgrid::config::finalize();
-    simgrid_config = temp;
   }
+
+  simgrid::config::finalize();
+  simgrid_config = temp;
 }