Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to fix the build on centos
[simgrid.git] / src / surf / trace_mgr_test.cpp
index 30c53c6..3b64866 100644 (file)
@@ -1,36 +1,38 @@
-/* Copyright (c) 2017. The SimGrid Team. All rights reserved.               */
+/* Copyright (c) 2017-2018. 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. */
 
 #define BOOST_TEST_MODULE Trace Manager tests
-
-bool init_unit_test(); // boost forget to give this prototype on NetBSD, which does not fit our paranoid flags
+bool init_unit_test(); // boost sometimes forget to give this prototype (NetBSD and other), which does not fit our paranoid flags
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_NO_MAIN
 #include <boost/test/unit_test.hpp>
-namespace utf = boost::unit_test;
 
+#include "simgrid/kernel/resource/Resource.hpp"
 #include "src/surf/surf_interface.hpp"
 #include "src/surf/trace_mgr.hpp"
-namespace tmgr = simgrid::trace_mgr;
 
 #include "xbt/log.h"
 #include "xbt/misc.h"
 
-#include <math.h>
+#include <cmath>
+
+namespace utf  = boost::unit_test;
+namespace tmgr = simgrid::trace_mgr;
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(unit, "Unit tests of the Trace Manager");
 
 double thedate;
-class MockedResource : public simgrid::surf::Resource {
+class MockedResource : public simgrid::kernel::resource::Resource {
 public:
-  explicit MockedResource() : simgrid::surf::Resource(nullptr, "fake", nullptr) {}
-  void apply_event(tmgr_trace_event_t event, double value)
+  explicit MockedResource() : simgrid::kernel::resource::Resource(nullptr, "fake", nullptr) {}
+  void apply_event(tmgr_trace_event_t event, double value) override
   {
-    XBT_VERB("t=%.1f: Change value to %lg (idx: %d)", thedate, value, event->idx);
+    XBT_VERB("t=%.1f: Change value to %lg (idx: %u)", thedate, value, event->idx);
+    tmgr_trace_event_unref(&event);
   }
-  bool isUsed() { return true; }
+  bool is_used() override { return true; }
 };
 
 static void trace2vector(const char* str, std::vector<tmgr::DatedValue>* whereto)
@@ -38,7 +40,7 @@ static void trace2vector(const char* str, std::vector<tmgr::DatedValue>* whereto
   simgrid::trace_mgr::trace* trace = tmgr_trace_new_from_string("TheName", str, 0);
   XBT_VERB("---------------------------------------------------------");
   XBT_VERB("data>>\n%s<<data\n", str);
-  for (auto evt : trace->event_list)
+  for (auto const& evt : trace->event_list)
     XBT_VERB("event: d:%lg v:%lg", evt.date_, evt.value_);
 
   MockedResource daResource;
@@ -48,7 +50,7 @@ static void trace2vector(const char* str, std::vector<tmgr::DatedValue>* whereto
   while (fes.next_date() <= 20.0 && fes.next_date() >= 0) {
     thedate = fes.next_date();
     double value;
-    simgrid::surf::Resource* res;
+    simgrid::kernel::resource::Resource* res;
     tmgr_trace_event_t it = fes.pop_leq(thedate, &value, &res);
     if (it == nullptr)
       continue;
@@ -58,9 +60,10 @@ static void trace2vector(const char* str, std::vector<tmgr::DatedValue>* whereto
       res->apply_event(it, value);
       whereto->push_back(tmgr::DatedValue(thedate, value));
     } else {
-      XBT_DEBUG("%.1f: ignore an event (idx: %d)\n", thedate, it->idx);
+      XBT_DEBUG("%.1f: ignore an event (idx: %u)\n", thedate, it->idx);
     }
   }
+  tmgr_finalize();
 }
 
 /* Fails in a way that is difficult to test: xbt_assert should become throw
@@ -113,7 +116,7 @@ BOOST_AUTO_TEST_CASE(two_evt_loop)
   std::vector<tmgr::DatedValue> got;
   trace2vector("1.0 1.0\n"
                "3.0 3.0\n"
-               "WAITFOR 2\n",
+               "LOOPAFTER 2\n",
                &got);
 
   std::vector<tmgr::DatedValue> want;
@@ -133,7 +136,7 @@ BOOST_AUTO_TEST_CASE(two_evt_start0_loop)
   std::vector<tmgr::DatedValue> got;
   trace2vector("0.0 1\n"
                "5.0 2\n"
-               "WAITFOR 5\n",
+               "LOOPAFTER 5\n",
                &got);
 
   std::vector<tmgr::DatedValue> want;