From: Frederic Suter Date: Mon, 2 Jul 2018 11:11:48 +0000 (+0200) Subject: add a broken test X-Git-Tag: v3_21~579 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/0739a6293dbbdf6d341f77bfb70adc67f288e88d?ds=inline add a broken test it reproduces the behavior of the Java MWE provided in #131 by @bcamus --- diff --git a/teshsuite/s4u/CMakeLists.txt b/teshsuite/s4u/CMakeLists.txt index cdcb343cd9..3e6a5aa14d 100644 --- a/teshsuite/s4u/CMakeLists.txt +++ b/teshsuite/s4u/CMakeLists.txt @@ -1,4 +1,4 @@ -foreach(x actor +foreach(x actor actor-autorestart comm-pt2pt cloud-interrupt-migration concurrent_rw storage_client_server host_on_off_wait listen_async pid ) @@ -11,7 +11,7 @@ endforeach() ## Add the tests. ## Some need to be run with all factories, some need not tesh to run -foreach(x actor cloud-interrupt-migration concurrent_rw) +foreach(x actor actor-autorestart cloud-interrupt-migration concurrent_rw) set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/${x}/${x}.tesh) ADD_TESH_FACTORIES(tesh-s4u-${x} "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/s4u/${x} --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/teshsuite/s4u/${x} ${CMAKE_HOME_DIRECTORY}/teshsuite/s4u/${x}/${x}.tesh) endforeach() diff --git a/teshsuite/s4u/actor-autorestart/actor-autorestart.cpp b/teshsuite/s4u/actor-autorestart/actor-autorestart.cpp new file mode 100644 index 0000000000..5962c5bf66 --- /dev/null +++ b/teshsuite/s4u/actor-autorestart/actor-autorestart.cpp @@ -0,0 +1,48 @@ +/* Copyright (c) 2017. 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. */ + +#include "simgrid/s4u.hpp" + +XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); + +static void dummy() +{ + XBT_INFO("I start"); + simgrid::s4u::this_actor::sleep_for(200); + XBT_INFO("I stop"); +} + +static void autostart() +{ + simgrid::s4u::Host* host = simgrid::s4u::Host::by_name("Fafard"); + XBT_INFO("starting a dummy process on %s ", host->get_cname()); + + simgrid::s4u::ActorPtr dummy_actor = simgrid::s4u::Actor::create("Dummy", host, dummy); + dummy_actor->set_auto_restart(true); + + simgrid::s4u::this_actor::sleep_for(50); + + XBT_INFO("powering off %s", host->get_cname()); + host->turn_off(); + + simgrid::s4u::this_actor::sleep_for(10); + + XBT_INFO("powering on %s", host->get_cname()); + host->turn_on(); + simgrid::s4u::this_actor::sleep_for(200); +} + +int main(int argc, char* argv[]) +{ + simgrid::s4u::Engine e(&argc, argv); + e.load_platform(argv[1]); + + simgrid::s4u::Actor::create("Autostart", simgrid::s4u::Host::by_name("Tremblay"), autostart); + + e.run(); + XBT_INFO("Simulation time %g", e.get_clock()); + + return 0; +} diff --git a/teshsuite/s4u/actor-autorestart/actor-autorestart.tesh b/teshsuite/s4u/actor-autorestart/actor-autorestart.tesh new file mode 100644 index 0000000000..e2ecd26e0e --- /dev/null +++ b/teshsuite/s4u/actor-autorestart/actor-autorestart.tesh @@ -0,0 +1,8 @@ +$ ./actor-autorestart ${platfdir}/small_platform.xml +> [Tremblay:Autostart:(1) 0.000000] [s4u_test/INFO] starting a dummy process on Fafard +> [Fafard:Dummy:(2) 0.000000] [s4u_test/INFO] I start +> [Tremblay:Autostart:(1) 50.000000] [s4u_test/INFO] powering off Fafard +> [Tremblay:Autostart:(1) 60.000000] [s4u_test/INFO] powering on Fafard +> [Fafard:Dummy:(2) 60.000000] [s4u_test/INFO] I start +> [Fafard:Dummy:(2) 260.000000] [s4u_test/INFO] I stop +> [260.000000] [s4u_test/INFO] Simulation time 260