X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/63ebf4be4ca6a243a64c7ded8df9b96a9d28d3ff..bdfa117ce4f85c77d50219cb2e115d88d3f35f8e:/teshsuite/s4u/comm-pt2pt/comm-pt2pt.cpp diff --git a/teshsuite/s4u/comm-pt2pt/comm-pt2pt.cpp b/teshsuite/s4u/comm-pt2pt/comm-pt2pt.cpp index f160b23200..6fbc60742a 100644 --- a/teshsuite/s4u/comm-pt2pt/comm-pt2pt.cpp +++ b/teshsuite/s4u/comm-pt2pt/comm-pt2pt.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-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. */ @@ -16,11 +16,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); -using namespace simgrid::s4u; - static void usage(const char* binaryName, const char* defaultSend, const char* defaultRecv) { - std::fprintf(stderr, "Usage: %s examples/platforms/cluster.xml \n" + std::fprintf(stderr, "Usage: %s examples/platforms/cluster_backbone.xml \n" "where spec is a list of letters giving the kind of tests you want to see.\n" "Existing sender spec:\n" " r regular send\n" @@ -39,49 +37,48 @@ static void usage(const char* binaryName, const char* defaultSend, const char* d " j irecv on permanent mailbox (after a little delay)\n" " J irecv on permanent mailbox (after a little delay)\n" "\n" - "Example 1: %s examples/platforms/cluster.xml rRiIdD rrrrrr # testing all send functions\n" + "Example 1: %s examples/platforms/cluster_backbone.xml rRiIdD rrrrrr # testing all send functions\n" "Default specs: %s %s (all possible pairs)\n", binaryName, binaryName, defaultSend, defaultRecv); - exit(1); } static void sender(std::vector args) { XBT_INFO("Sender spec: %s", args[0].c_str()); for (unsigned int test = 1; test <= args[0].size(); test++) { - this_actor::sleep_until(test * 5 - 5); - std::string* mboxName = new std::string("Test #" + std::to_string(test)); - simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName->c_str()); + simgrid::s4u::this_actor::sleep_until(test * 5 - 5); + auto* mboxName = new std::string("Test #" + std::to_string(test)); + auto* mbox = simgrid::s4u::Mailbox::by_name(*mboxName); switch (args[0][test - 1]) { case 'r': XBT_INFO("Test %u: r (regular send)", test); - mbox->put((void*)mboxName, 42.0); + mbox->put(mboxName, 42.0); break; case 'R': XBT_INFO("Test %u: R (sleep + regular send)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->put((void*)mboxName, 42.0); + mbox->put(mboxName, 42.0); break; case 'i': XBT_INFO("Test %u: i (asynchronous isend)", test); - mbox->put_async((void*)mboxName, 42.0)->wait(); + mbox->put_async(mboxName, 42.0)->wait(); break; case 'I': XBT_INFO("Test %u: I (sleep + isend)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->put_async((void*)mboxName, 42.0)->wait(); + mbox->put_async(mboxName, 42.0)->wait(); break; case 'd': XBT_INFO("Test %u: d (detached send)", test); - mbox->put_init((void*)mboxName, 42.0)->detach(); + mbox->put_init(mboxName, 42.0)->detach(); break; case 'D': XBT_INFO("Test %u: D (sleep + detached send)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->put_init((void*)mboxName, 42.0)->detach(); + mbox->put_init(mboxName, 42.0)->detach(); break; default: xbt_die("Unknown sender spec for test %u: '%c'", test, args[0][test - 1]); @@ -96,59 +93,58 @@ static void receiver(std::vector args) { XBT_INFO("Receiver spec: %s", args[0].c_str()); for (unsigned int test = 1; test <= args[0].size(); test++) { - this_actor::sleep_until(test * 5 - 5); - std::string mboxName = "Test #" + std::to_string(test); - simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName.c_str()); - void* received = nullptr; + simgrid::s4u::this_actor::sleep_until(test * 5 - 5); + std::string mboxName = "Test #" + std::to_string(test); + simgrid::s4u::Mailbox* mbox = simgrid::s4u::Mailbox::by_name(mboxName); + std::string* received = nullptr; switch (args[0][test - 1]) { case 'r': XBT_INFO("Test %u: r (regular receive)", test); - received = mbox->get(); + received = mbox->get(); break; case 'R': XBT_INFO("Test %u: R (sleep + regular receive)", test); simgrid::s4u::this_actor::sleep_for(0.5); - received = mbox->get(); + received = mbox->get(); break; case 'i': XBT_INFO("Test %u: i (asynchronous irecv)", test); - mbox->get_async(&received)->wait(); + mbox->get_async(&received)->wait(); break; case 'I': XBT_INFO("Test %u: I (sleep + asynchronous irecv)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->get_async(&received)->wait(); + mbox->get_async(&received)->wait(); break; case 'p': XBT_INFO("Test %u: p (regular receive on permanent mailbox)", test); - mbox->setReceiver(Actor::self()); - received = mbox->get(); + mbox->set_receiver(simgrid::s4u::Actor::self()); + received = mbox->get(); break; case 'P': XBT_INFO("Test %u: P (sleep + regular receive on permanent mailbox)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->setReceiver(Actor::self()); - received = mbox->get(); + mbox->set_receiver(simgrid::s4u::Actor::self()); + received = mbox->get(); break; case 'j': XBT_INFO("Test %u: j (irecv on permanent mailbox)", test); - mbox->setReceiver(Actor::self()); - mbox->get_async(&received)->wait(); + mbox->set_receiver(simgrid::s4u::Actor::self()); + mbox->get_async(&received)->wait(); break; case 'J': XBT_INFO("Test %u: J (sleep + irecv on permanent mailbox)", test); simgrid::s4u::this_actor::sleep_for(0.5); - mbox->setReceiver(Actor::self()); - mbox->get_async(&received)->wait(); + mbox->set_receiver(simgrid::s4u::Actor::self()); + mbox->get_async(&received)->wait(); break; default: xbt_die("Unknown receiver spec for test %u: '%c'", test, args[0][test - 1]); } - std::string* receivedStr = static_cast(received); - xbt_assert(*receivedStr == mboxName); - delete receivedStr; + xbt_assert(*received == mboxName); + delete received; XBT_INFO("Test %u OK", test); } simgrid::s4u::this_actor::sleep_for(0.5); @@ -167,18 +163,20 @@ int main(int argc, char* argv[]) std::vector argRecv{specRecv.c_str()}; simgrid::s4u::Engine e(&argc, argv); - if (argc < 2) + if (argc < 2) { usage(argv[0], specSend.c_str(), specRecv.c_str()); + return 1; + } e.load_platform(argv[1]); if (argc >= 3) { argSend.clear(); - argSend.push_back(argv[2]); + argSend.emplace_back(argv[2]); } if (argc >= 4) { argRecv.clear(); - argRecv.push_back(argv[3]); + argRecv.emplace_back(argv[3]); } xbt_assert(argSend.front().size() == argRecv.front().size(), "Sender and receiver spec must be of the same size"); @@ -188,7 +186,7 @@ int main(int argc, char* argv[]) simgrid::s4u::Actor::create("recver", hosts[1], receiver, argRecv); e.run(); - XBT_INFO("Simulation time %g", e.get_clock()); + XBT_INFO("Simulation time %g", simgrid::s4u::Engine::get_clock()); return 0; }