X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/63fbd4caffa4791c08f14fefabe945c0512f3186..820fcde02298105c9afecf86ea0d5357372de3d7:/src/kernel/routing/StarZone_test.cpp diff --git a/src/kernel/routing/StarZone_test.cpp b/src/kernel/routing/StarZone_test.cpp index 4a4e878b1c..849489c90f 100644 --- a/src/kernel/routing/StarZone_test.cpp +++ b/src/kernel/routing/StarZone_test.cpp @@ -14,72 +14,89 @@ #include "src/surf/surf_interface.hpp" // create models #include "src/surf/xml/platf_private.hpp" // RouteCreationArgs and friends +namespace { +class EngineWrapper { + int argc = 1; + char* argv; + simgrid::s4u::Engine e; + +public: + explicit EngineWrapper(std::string name) : argv(&name[0]), e(&argc, &argv) {} +}; +} // namespace + TEST_CASE("kernel::routing::StarZone: Creating Zone", "[creation]") { - int argc = 1; - const char* argv[] = {"test"}; - - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); REQUIRE(simgrid::s4u::create_star_zone("test")); } -// One day we may be able to test contracts and asserts with catch2 -// https://github.com/catchorg/Catch2/issues/853 -TEST_CASE("kernel::routing::StarZone: Adding routes (hosts): assert", "[.][assert]") +TEST_CASE("kernel::routing::StarZone: Adding routes (hosts): exception", "") { - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); auto* netpoint1 = new simgrid::kernel::routing::NetPoint("netpoint1", simgrid::kernel::routing::NetPoint::Type::Host); auto* netpoint2 = new simgrid::kernel::routing::NetPoint("netpoint2", simgrid::kernel::routing::NetPoint::Type::Host); - SECTION("src and dst: nullptr") { zone->add_route(nullptr, nullptr, nullptr, nullptr, {}, false); } + SECTION("src and dst: nullptr") + { + REQUIRE_THROWS_AS(zone->add_route(nullptr, nullptr, nullptr, nullptr, {}, false), std::invalid_argument); + } - SECTION("src: nullptr and symmetrical: true") { zone->add_route(nullptr, netpoint2, nullptr, nullptr, {}, true); } + SECTION("src: nullptr and symmetrical: true") + { + REQUIRE_THROWS_AS(zone->add_route(nullptr, netpoint2, nullptr, nullptr, {}, true), std::invalid_argument); + } - SECTION("src and dst: not nullptr") { zone->add_route(netpoint1, netpoint2, nullptr, nullptr, {}, false); } + SECTION("src and dst: not nullptr") + { + REQUIRE_THROWS_AS(zone->add_route(netpoint1, netpoint2, nullptr, nullptr, {}, false), std::invalid_argument); + } } -TEST_CASE("kernel::routing::StarZone: Adding routes (netzones): assert", "[.][assert]") +TEST_CASE("kernel::routing::StarZone: Adding routes (netzones): exception", "") { - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); auto* netpoint1 = new simgrid::kernel::routing::NetPoint("netpoint1", simgrid::kernel::routing::NetPoint::Type::NetZone); auto* netpoint2 = new simgrid::kernel::routing::NetPoint("netpoint2", simgrid::kernel::routing::NetPoint::Type::NetZone); - SECTION("src: is a netzone and gw_src: nullptr") { zone->add_route(netpoint1, nullptr, nullptr, nullptr, {}, false); } + SECTION("src: is a netzone and gw_src: nullptr") + { + REQUIRE_THROWS_AS(zone->add_route(netpoint1, nullptr, nullptr, nullptr, {}, false), std::invalid_argument); + } SECTION("src: is a netzone and gw_src: is a netzone") { - zone->add_route(netpoint1, nullptr, netpoint2, nullptr, {}, false); + REQUIRE_THROWS_AS(zone->add_route(netpoint1, nullptr, netpoint2, nullptr, {}, false), std::invalid_argument); } - SECTION("dst: is a netzone and gw_dst: nullptr") { zone->add_route(nullptr, netpoint2, nullptr, nullptr, {}, false); } + SECTION("dst: is a netzone and gw_dst: nullptr") + { + REQUIRE_THROWS_AS(zone->add_route(nullptr, netpoint2, nullptr, nullptr, {}, false), std::invalid_argument); + } SECTION("dst: is a netzone and gw_dst: is a netzone") { - zone->add_route(nullptr, netpoint2, nullptr, netpoint1, {}, false); + REQUIRE_THROWS_AS(zone->add_route(nullptr, netpoint2, nullptr, netpoint1, {}, false), std::invalid_argument); } } +// One day we may be able to test contracts and asserts with catch2 +// https://github.com/catchorg/Catch2/issues/853 TEST_CASE("kernel::routing::StarZone: Get routes: assert", "[.][assert]") { /* workaround to initialize things, they must be done in this particular order */ - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); surf_network_model_init_LegrandVelho(); surf_cpu_model_init_Cas01(); - auto* host1 = zone->create_host("netpoint1", {100}); - auto* host2 = zone->create_host("netpoint2", {100}); + const auto* host1 = zone->create_host("netpoint1", {100}); + const auto* host2 = zone->create_host("netpoint2", {100}); std::vector links; links.push_back(zone->create_link("link1", {100})->get_impl()); std::vector links2; @@ -106,9 +123,7 @@ TEST_CASE("kernel::routing::StarZone: Get routes: assert", "[.][assert]") TEST_CASE("kernel::routing::StarZone: Adding routes (hosts): valid", "") { - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); auto* netpoint = new simgrid::kernel::routing::NetPoint("netpoint1", simgrid::kernel::routing::NetPoint::Type::Host); @@ -132,9 +147,7 @@ TEST_CASE("kernel::routing::StarZone: Adding routes (hosts): valid", "") TEST_CASE("kernel::routing::StarZone: Adding routes (netzones): valid", "") { - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); auto* netpoint = new simgrid::kernel::routing::NetPoint("netpoint1", simgrid::kernel::routing::NetPoint::Type::Host); auto* gw = new simgrid::kernel::routing::NetPoint("gw1", simgrid::kernel::routing::NetPoint::Type::Router); @@ -147,15 +160,13 @@ TEST_CASE("kernel::routing::StarZone: Adding routes (netzones): valid", "") TEST_CASE("kernel::routing::StarZone: Get routes (hosts)", "") { /* workaround to initialize things, they must be done in this particular order */ - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); surf_network_model_init_LegrandVelho(); surf_cpu_model_init_Cas01(); - auto* host1 = zone->create_host("netpoint1", {100}); - auto* host2 = zone->create_host("netpoint2", {100}); + const auto* host1 = zone->create_host("netpoint1", {100}); + const auto* host2 = zone->create_host("netpoint2", {100}); SECTION("Get route: no shared link") { @@ -225,9 +236,7 @@ TEST_CASE("kernel::routing::StarZone: Get routes (hosts)", "") TEST_CASE("kernel::routing::StarZone: Get routes (netzones)", "") { /* workaround to initialize things, they must be done in this particular order */ - int argc = 1; - const char* argv[] = {"test"}; - simgrid::s4u::Engine e(&argc, const_cast(argv)); + EngineWrapper e("test"); auto* zone = new simgrid::kernel::routing::StarZone("test"); surf_network_model_init_LegrandVelho(); surf_cpu_model_init_Cas01(); @@ -261,4 +270,4 @@ TEST_CASE("kernel::routing::StarZone: Get routes (netzones)", "") REQUIRE(route.link_list[0]->get_name() == "link1"); REQUIRE(route.link_list[1]->get_name() == "link2"); } -} \ No newline at end of file +}