Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / mc / explo / udpor / Unfolding_test.cpp
index d75fb28763f3d50aaef46ce5a54680fc5a2fb7a6..30e1529267e4ec9726d0f3a19cde28c078c38d69 100644 (file)
@@ -17,11 +17,13 @@ TEST_CASE("simgrid::mc::udpor::Unfolding: Creating an unfolding")
   REQUIRE(unfolding.empty());
 }
 
-TEST_CASE("simgrid::mc::udpor::Unfolding: Inserting and removing events with an unfolding")
+TEST_CASE("simgrid::mc::udpor::Unfolding: Inserting and marking events with an unfolding")
 {
   Unfolding unfolding;
-  auto e1              = std::make_unique<UnfoldingEvent>();
-  auto e2              = std::make_unique<UnfoldingEvent>();
+  auto e1 = std::make_unique<UnfoldingEvent>(
+      EventSet(), std::make_shared<ConditionallyDependentAction>(Transition::Type::UNKNOWN, 0));
+  auto e2 =
+      std::make_unique<UnfoldingEvent>(EventSet(), std::make_shared<DependentAction>(Transition::Type::UNKNOWN, 1));
   const auto e1_handle = e1.get();
   const auto e2_handle = e2.get();
 
@@ -33,32 +35,13 @@ TEST_CASE("simgrid::mc::udpor::Unfolding: Inserting and removing events with an
   REQUIRE(unfolding.size() == 2);
   REQUIRE_FALSE(unfolding.empty());
 
-  unfolding.remove(e1_handle);
-  REQUIRE(unfolding.size() == 1);
+  unfolding.mark_finished(e1_handle);
+  REQUIRE(unfolding.size() == 2);
   REQUIRE_FALSE(unfolding.empty());
 
-  unfolding.remove(e2_handle);
-  REQUIRE(unfolding.size() == 0);
-  REQUIRE(unfolding.empty());
-}
-
-TEST_CASE("simgrid::mc::udpor::Unfolding: Checking for semantically equivalent events")
-{
-  Unfolding unfolding;
-  auto e1 = std::make_unique<UnfoldingEvent>(
-      EventSet(), std::make_shared<IndependentAction>(Transition::Type::BARRIER_ASYNC_LOCK, 6, 2));
-  auto e2 = std::make_unique<UnfoldingEvent>(
-      EventSet(), std::make_shared<IndependentAction>(Transition::Type::BARRIER_ASYNC_LOCK, 6, 2));
-
-  // e1 and e2 are equivalent
-  REQUIRE(*e1 == *e2);
-
-  const auto e1_handle = e1.get();
-  const auto e2_handle = e2.get();
-  unfolding.insert(std::move(e1));
-
-  REQUIRE(unfolding.contains_event_equivalent_to(e1_handle));
-  REQUIRE(unfolding.contains_event_equivalent_to(e2_handle));
+  unfolding.mark_finished(e2_handle);
+  REQUIRE(unfolding.size() == 2);
+  REQUIRE_FALSE(unfolding.empty());
 }
 
 TEST_CASE("simgrid::mc::udpor::Unfolding: Checking all immediate conflicts restricted to an unfolding") {}
\ No newline at end of file