From 94cee0547a96ae874c04f2435c9e326c5a3f474e Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 21 Jul 2021 16:16:50 +0200 Subject: [PATCH] Factor common code. --- MANIFEST.in | 1 + src/kernel/routing/DragonflyZone_test.cpp | 17 +++-------------- src/kernel/routing/FatTreeZone_test.cpp | 17 +++-------------- src/kernel/routing/NetZone_test.hpp | 23 +++++++++++++++++++++++ src/kernel/routing/TorusZone_test.cpp | 17 +++-------------- tools/cmake/Tests.cmake | 1 + 6 files changed, 34 insertions(+), 42 deletions(-) create mode 100644 src/kernel/routing/NetZone_test.hpp diff --git a/MANIFEST.in b/MANIFEST.in index 166953e7eb..fcc89b0513 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2254,6 +2254,7 @@ include src/kernel/routing/FullZone.cpp include src/kernel/routing/FullZone_test.cpp include src/kernel/routing/NetPoint.cpp include src/kernel/routing/NetZoneImpl.cpp +include src/kernel/routing/NetZone_test.hpp include src/kernel/routing/RoutedZone.cpp include src/kernel/routing/StarZone.cpp include src/kernel/routing/StarZone_test.cpp diff --git a/src/kernel/routing/DragonflyZone_test.cpp b/src/kernel/routing/DragonflyZone_test.cpp index 02a2a9630a..f90dd3d94f 100644 --- a/src/kernel/routing/DragonflyZone_test.cpp +++ b/src/kernel/routing/DragonflyZone_test.cpp @@ -5,25 +5,14 @@ #include "catch.hpp" +#include "NetZone_test.hpp" // CreateHost callback #include "simgrid/kernel/routing/DragonflyZone.hpp" -#include "simgrid/kernel/routing/NetPoint.hpp" #include "simgrid/s4u/Engine.hpp" -#include "simgrid/s4u/Host.hpp" -#include "simgrid/s4u/NetZone.hpp" - -namespace { -std::pair -create_host(simgrid::s4u::NetZone* zone, const std::vector& /*coord*/, int id) -{ - const simgrid::s4u::Host* host = zone->create_host(std::to_string(id), 1e9)->seal(); - return std::make_pair(host->get_netpoint(), nullptr); -} -} // namespace TEST_CASE("kernel::routing::DragonflyZone: Creating Zone", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); REQUIRE(create_dragonfly_zone("test", e.get_netzone_root(), {{3, 4}, {4, 3}, {5, 1}, 2}, callbacks, 1e9, 10, simgrid::s4u::Link::SharingPolicy::SHARED)); } @@ -31,7 +20,7 @@ TEST_CASE("kernel::routing::DragonflyZone: Creating Zone", "") TEST_CASE("kernel::routing::DragonflyZone: Invalid params", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); SECTION("0 nodes") { diff --git a/src/kernel/routing/FatTreeZone_test.cpp b/src/kernel/routing/FatTreeZone_test.cpp index 18f3e9ebe9..ebf11536a9 100644 --- a/src/kernel/routing/FatTreeZone_test.cpp +++ b/src/kernel/routing/FatTreeZone_test.cpp @@ -5,25 +5,14 @@ #include "catch.hpp" +#include "NetZone_test.hpp" // CreateHost callback #include "simgrid/kernel/routing/FatTreeZone.hpp" -#include "simgrid/kernel/routing/NetPoint.hpp" #include "simgrid/s4u/Engine.hpp" -#include "simgrid/s4u/Host.hpp" -#include "simgrid/s4u/NetZone.hpp" - -namespace { -std::pair -create_host(simgrid::s4u::NetZone* zone, const std::vector& /*coord*/, int id) -{ - const simgrid::s4u::Host* host = zone->create_host(std::to_string(id), 1e9)->seal(); - return std::make_pair(host->get_netpoint(), nullptr); -} -} // namespace TEST_CASE("kernel::routing::FatTreeZone: Creating Zone", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); REQUIRE(create_fatTree_zone("test", e.get_netzone_root(), {2, {4, 4}, {1, 2}, {1, 2}}, callbacks, 1e9, 10, simgrid::s4u::Link::SharingPolicy::SHARED)); } @@ -31,7 +20,7 @@ TEST_CASE("kernel::routing::FatTreeZone: Creating Zone", "") TEST_CASE("kernel::routing::FatTreeZone: Invalid params", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); SECTION("0 levels") { diff --git a/src/kernel/routing/NetZone_test.hpp b/src/kernel/routing/NetZone_test.hpp new file mode 100644 index 0000000000..18500258ee --- /dev/null +++ b/src/kernel/routing/NetZone_test.hpp @@ -0,0 +1,23 @@ +/* Copyright (c) 2017-2021. 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. */ + +#ifndef NETZONE_TEST_HPP +#define NETZONE_TEST_HPP + +#include "simgrid/kernel/routing/NetPoint.hpp" +#include "simgrid/s4u/Host.hpp" +#include "simgrid/s4u/NetZone.hpp" + +// Callback function common to several routing unit tests +struct CreateHost { + std::pair + operator()(simgrid::s4u::NetZone* zone, const std::vector& /*coord*/, int id) const + { + const simgrid::s4u::Host* host = zone->create_host(std::to_string(id), 1e9)->seal(); + return std::make_pair(host->get_netpoint(), nullptr); + } +}; + +#endif diff --git a/src/kernel/routing/TorusZone_test.cpp b/src/kernel/routing/TorusZone_test.cpp index a33a15c53e..cdaf1981d1 100644 --- a/src/kernel/routing/TorusZone_test.cpp +++ b/src/kernel/routing/TorusZone_test.cpp @@ -5,25 +5,14 @@ #include "catch.hpp" -#include "simgrid/kernel/routing/NetPoint.hpp" +#include "NetZone_test.hpp" // CreateHost callback #include "simgrid/kernel/routing/TorusZone.hpp" #include "simgrid/s4u/Engine.hpp" -#include "simgrid/s4u/Host.hpp" -#include "simgrid/s4u/NetZone.hpp" - -namespace { -std::pair -create_host(simgrid::s4u::NetZone* zone, const std::vector& /*coord*/, int id) -{ - const simgrid::s4u::Host* host = zone->create_host(std::to_string(id), 1e9)->seal(); - return std::make_pair(host->get_netpoint(), nullptr); -} -} // namespace TEST_CASE("kernel::routing::TorusZone: Creating Zone", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); REQUIRE(create_torus_zone("test", e.get_netzone_root(), {3, 3, 3}, callbacks, 1e9, 10, simgrid::s4u::Link::SharingPolicy::SHARED)); } @@ -31,7 +20,7 @@ TEST_CASE("kernel::routing::TorusZone: Creating Zone", "") TEST_CASE("kernel::routing::TorusZone: Invalid params", "") { simgrid::s4u::Engine e("test"); - simgrid::s4u::ClusterCallbacks callbacks(create_host); + simgrid::s4u::ClusterCallbacks callbacks(CreateHost{}); SECTION("Empty dimensions") { diff --git a/tools/cmake/Tests.cmake b/tools/cmake/Tests.cmake index fb4291ccf3..47e378e95c 100644 --- a/tools/cmake/Tests.cmake +++ b/tools/cmake/Tests.cmake @@ -144,6 +144,7 @@ if (SIMGRID_HAVE_MC) else() set(EXTRA_DIST ${EXTRA_DIST} src/mc/sosp/Snapshot_test.cpp src/mc/sosp/PageStore_test.cpp) endif() +set(EXTRA_DIST ${EXTRA_DIST} src/kernel/routing/NetZone_test.hpp) add_executable (unit-tests EXCLUDE_FROM_ALL ${UNIT_TESTS}) add_dependencies (tests unit-tests) -- 2.20.1