1 /* Copyright (c) 2017-2021. The SimGrid Team. All rights reserved. */
3 /* This program is free software; you can redistribute it and/or modify it
4 * under the terms of the license (GNU LGPL) which comes with this package. */
8 #include "NetZone_test.hpp" // CreateHost callback
9 #include "simgrid/kernel/routing/FatTreeZone.hpp"
10 #include "simgrid/s4u/Engine.hpp"
12 TEST_CASE("kernel::routing::FatTreeZone: Creating Zone", "")
14 simgrid::s4u::Engine e("test");
15 simgrid::s4u::ClusterCallbacks callbacks(CreateHost{});
16 REQUIRE(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1, 2}}, callbacks, 1e9, 10,
17 simgrid::s4u::Link::SharingPolicy::SHARED));
20 TEST_CASE("kernel::routing::FatTreeZone: Invalid params", "")
22 simgrid::s4u::Engine e("test");
23 simgrid::s4u::ClusterCallbacks callbacks(CreateHost{});
27 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {0, {4, 4}, {1, 2}, {1, 2}}, callbacks, 1e9, 10,
28 simgrid::s4u::Link::SharingPolicy::SHARED),
29 std::invalid_argument);
32 SECTION("Invalid down links")
34 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4}, {1, 2}, {1, 2}}, callbacks, 1e9, 10,
35 simgrid::s4u::Link::SharingPolicy::SHARED),
36 std::invalid_argument);
39 SECTION("Invalid up links")
41 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1}, {1, 2}}, callbacks, 1e9, 10,
42 simgrid::s4u::Link::SharingPolicy::SHARED),
43 std::invalid_argument);
46 SECTION("Invalid link count")
48 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1}}, callbacks, 1e9, 10,
49 simgrid::s4u::Link::SharingPolicy::SHARED),
50 std::invalid_argument);
53 SECTION("Down links with zeroes")
55 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 0}, {1, 2}, {1, 2}}, callbacks, 1e9, 10,
56 simgrid::s4u::Link::SharingPolicy::SHARED),
57 std::invalid_argument);
60 SECTION("Up links with zeroes")
62 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {0, 2}, {1, 2}}, callbacks, 1e9, 10,
63 simgrid::s4u::Link::SharingPolicy::SHARED),
64 std::invalid_argument);
67 SECTION("Link count with zeroes")
69 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1, 0}}, callbacks, 1e9, 10,
70 simgrid::s4u::Link::SharingPolicy::SHARED),
71 std::invalid_argument);
74 SECTION("0 bandwidth")
76 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1, 2}}, callbacks, 0, 10,
77 simgrid::s4u::Link::SharingPolicy::SHARED),
78 std::invalid_argument);
81 SECTION("Negative latency")
83 REQUIRE_THROWS_AS(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1, 2}}, callbacks, 1e9,
84 -10, simgrid::s4u::Link::SharingPolicy::SHARED),
85 std::invalid_argument);