-/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2023. 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 "activity-lifecycle.hpp"
+#include "catch_simgrid.hpp"
//========== Creators: create an async activity
ret = true;
} catch (const simgrid::TimeoutException& e) {
XBT_DEBUG("wait_for() timed out (%s)", e.what());
- INFO("wait_for() timeout should expire at expected date: " << timeout);
+ INFO("wait_for() timeout should expire at expected date: " + std::to_string(timeout));
REQUIRE(simgrid::s4u::Engine::get_clock() == Approx(timeout));
ret = false;
} catch (const simgrid::Exception& e) {
try {
std::vector<Activity> activities = {activity};
XBT_DEBUG("calling wait_any_for(%f)", duration);
- int index = Activity::element_type::wait_any_for(&activities, duration);
+ ssize_t index = Activity::element_type::wait_any_for(activities, duration);
if (index == -1) {
XBT_DEBUG("wait_any_for() timed out");
INFO("wait_any_for() timeout should expire at expected date: " << timeout);
REQUIRE(simgrid::s4u::Engine::get_clock() == Approx(timeout));
ret = false;
} else {
- XBT_DEBUG("wait_any_for() returned index %d", index);
+ XBT_DEBUG("wait_any_for() returned index %zd", index);
REQUIRE(index == 0);
ret = true;
}
test_failure_actor<ExecPtr, create_exec, tester_wait<0>, waiter_sleep6>);
RUN_SECTION("exec: host failure and wait<0> / sleep",
test_failure_host<ExecPtr, create_exec, tester_wait<0>, waiter_sleep6>);
- // exec: actor failure and wait<0> / wait
- // exec: host failure and wait<0> / wait
+ RUN_SECTION("exec: actor failure and wait<0> / wait",
+ test_failure_actor<ExecPtr, create_exec, tester_wait<0>, waiter_wait>);
+ RUN_SECTION("exec: host failure and wait<0> / wait",
+ test_failure_host<ExecPtr, create_exec, tester_wait<0>, waiter_wait>);
simgrid::s4u::this_actor::sleep_for(10);
assert_cleanup();
XBT_INFO("#####[ launch next test ]#####");
RUN_SECTION("exec: run and wait<1> once", test_trivial<ExecPtr, create_exec, tester_wait<1>>);
- // exec: run and wait<1> many
+ RUN_SECTION("exec: run and wait<1> many", test_basic<ExecPtr, create_exec, tester_wait<1>>);
RUN_SECTION("exec: cancel and wait<1>", test_cancel<ExecPtr, create_exec, tester_wait<1>>);
- // exec: actor failure and wait<1> / sleep
- // exec: host failure and wait<1> / sleep
- // exec: actor failure and wait<1> / wait
- // exec: host failure and wait<1> / wait
+ RUN_SECTION("exec: actor failure and wait<1> / sleep",
+ test_failure_actor<ExecPtr, create_exec, tester_wait<1>, waiter_sleep6>);
+ RUN_SECTION("exec: host failure and wait<1> / sleep",
+ test_failure_host<ExecPtr, create_exec, tester_wait<1>, waiter_sleep6>);
+ RUN_SECTION("exec: actor failure and wait<1> / wait",
+ test_failure_actor<ExecPtr, create_exec, tester_wait<1>, waiter_wait>);
+ RUN_SECTION("exec: host failure and wait<1> / wait",
+ test_failure_host<ExecPtr, create_exec, tester_wait<1>, waiter_wait>);
simgrid::s4u::this_actor::sleep_for(10);
assert_cleanup();
simgrid::s4u::this_actor::sleep_for(10);
assert_cleanup();
}
-
-// FIXME: The tests grouped here are currently failing. Once fixed, they should be put in the right section above.
-// The tests can be activated with run-time parameter '*' or, more specifically '[failing]'
-TEST_CASE("Activity test/wait: tests currently failing", "[.][failing]")
-{
- XBT_INFO("#####[ launch next failing test ]#####");
-
- // with tester_wait<0>
- // -> actor should not be killed by TimeoutException
- RUN_SECTION("exec: actor failure and wait<0> / wait",
- test_failure_actor<ExecPtr, create_exec, tester_wait<0>, waiter_wait>);
- // -> actor should not be killed by TimeoutException
- RUN_SECTION("exec: host failure and wait<0> / wait",
- test_failure_host<ExecPtr, create_exec, tester_wait<0>, waiter_wait>);
-
- // with tester_wait<1>
- // -> second call to wait_for() should wait for timeout and not return immediately
- RUN_SECTION("exec: run and wait<1> many", test_basic<ExecPtr, create_exec, tester_wait<1>>);
- // -> second call to wait_for() should report a failure, and not a timeout
- RUN_SECTION("exec: actor failure and wait<1> / sleep",
- test_failure_actor<ExecPtr, create_exec, tester_wait<1>, waiter_sleep6>);
- // -> second call to wait_for() should report a failure, and not a timeout
- RUN_SECTION("exec: host failure and wait<1> / sleep",
- test_failure_host<ExecPtr, create_exec, tester_wait<1>, waiter_sleep6>);
- // -> actor should not be killed by TimeoutException
- RUN_SECTION("exec: actor failure and wait<1> / wait",
- test_failure_actor<ExecPtr, create_exec, tester_wait<1>, waiter_wait>);
- // -> actor should not be killed by TimeoutException
- RUN_SECTION("exec: host failure and wait<1> / wait",
- test_failure_host<ExecPtr, create_exec, tester_wait<1>, waiter_wait>);
-
- simgrid::s4u::this_actor::sleep_for(10);
- assert_cleanup();
-}