Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Prefer emplace_back.
[simgrid.git] / src / kernel / resource / NetworkModelIntf_test.cpp
index b4eb9f3..418cc54 100644 (file)
@@ -8,6 +8,7 @@
 #include "simgrid/kernel/resource/NetworkModelIntf.hpp"
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/sg_config.hpp"
+#include "src/internal_config.h" // HAVE_SMPI
 
 static double factor_cb(double, const simgrid::s4u::Host*, const simgrid::s4u::Host*,
                         const std::vector<simgrid::s4u::Link*>&, const std::unordered_set<simgrid::s4u::NetZone*>&)
@@ -17,19 +18,25 @@ static double factor_cb(double, const simgrid::s4u::Host*, const simgrid::s4u::H
 
 TEST_CASE("kernel::resource::NetworkModelIntf: Factors invalid callbacks: exception", "")
 {
-  for (const auto& model : std::vector<std::string>{"LV08", "SMPI", "IB", "CM02"}) {
+  std::vector<std::string> models{"LV08", "CM02"};
+#if HAVE_SMPI
+  models.emplace_back("SMPI");
+  models.emplace_back("IB");
+#endif
+
+  for (const auto& model : models) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config("network/model:" + model);
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb({}), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(nullptr), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb({}), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(nullptr), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb({}), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(nullptr), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb({}), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(nullptr), std::invalid_argument);
     }
   }
 }
@@ -39,35 +46,38 @@ TEST_CASE("kernel::resource::NetworkModelIntf: Invalid network/latency-factor an
   for (const auto& model : std::vector<std::string>{"LV08", "CM02"}) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
-    e.set_config("network/latency-factor:10");
-    e.set_config("network/bandwidth-factor:0.3");
+    simgrid::s4u::Engine::set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config("network/latency-factor:10");
+    simgrid::s4u::Engine::set_config("network/bandwidth-factor:0.3");
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(factor_cb), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(factor_cb), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(factor_cb), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(factor_cb), std::invalid_argument);
     }
   }
 }
 
+#if HAVE_SMPI
 TEST_CASE("kernel::resource::NetworkModelIntf: Invalid smpi/lat-factor and smpi/bw-factor", "")
 {
   for (const auto& model : std::vector<std::string>{"SMPI", "IB"}) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
-    e.set_config("smpi/lat-factor:65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493");
-    e.set_config("smpi/bw-factor:65472:11.6436;15424:3.48845");
+    simgrid::s4u::Engine::set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config(
+        "smpi/lat-factor:65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493");
+    simgrid::s4u::Engine::set_config("smpi/bw-factor:65472:11.6436;15424:3.48845");
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(factor_cb), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(factor_cb), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(factor_cb), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(factor_cb), std::invalid_argument);
     }
   }
 }
+#endif