Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / teshsuite / s4u / activity-lifecycle / activity-lifecycle.hpp
index ff09e2a..33dc500 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2022. 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. */
@@ -6,7 +6,7 @@
 #ifndef ACTIVITY_LIFECYCLE_HPP
 #define ACTIVITY_LIFECYCLE_HPP
 
-#include "../../src/include/catch.hpp"
+#include <catch.hpp>
 
 #include <simgrid/s4u.hpp>
 #include <xbt/log.h>
@@ -27,4 +27,18 @@ extern void assert_cleanup();
 #define BEGIN_SECTION(descr) SECTION(descr) { simgrid::s4u::Actor::create(descr, all_hosts[0], []()
 #define END_SECTION })
 
+#define RUN_SECTION(descr, ...) SECTION(descr) simgrid::s4u::Actor::create(descr, all_hosts[0], __VA_ARGS__)
+
+// Normally, we should be able use Catch2's REQUIRE_THROWS_AS(...), but it generates errors with Address Sanitizer.
+// They're certainly false positive. Nevermind and use this simpler replacement.
+#define REQUIRE_NETWORK_FAILURE(...)                                                                                   \
+  do {                                                                                                                 \
+    try {                                                                                                              \
+      __VA_ARGS__;                                                                                                     \
+      FAIL("Expected exception NetworkFailureException not caught");                                                   \
+    } catch (simgrid::NetworkFailureException const&) {                                                                \
+      XBT_VERB("got expected NetworkFailureException");                                                                \
+    }                                                                                                                  \
+  } while (0)
+
 #endif // ACTIVITY_LIFECYCLE_HPP