1 /* A few tests for the trace library */
3 /* Copyright (c) 2004-2006, 2009-2015. The SimGrid Team.
4 * All rights reserved. */
6 /* This program is free software; you can redistribute it and/or modify it
7 * under the terms of the license (GNU LGPL) which comes with this package. */
16 #include "src/surf/network_cm02.hpp"
17 #include "src/surf/trace_mgr.hpp"
19 XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test,
20 "Messages specific for surf example");
22 class DummyTestResource
23 : public simgrid::surf::Resource {
25 DummyTestResource(const char *name) : Resource(nullptr,name) {}
26 bool isUsed() override {return false;}
27 void updateState(tmgr_trace_iterator_t it, double date, double value) override {}
30 static void test(void)
32 simgrid::trace_mgr::future_evt_set *fes = new simgrid::trace_mgr::future_evt_set();
33 tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt");
34 tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt");
35 double next_event_date = -1.0;
37 simgrid::surf::Resource *resource = NULL;
38 simgrid::surf::Resource *hostA = new DummyTestResource("Host A");
39 simgrid::surf::Resource *hostB = new DummyTestResource("Host B");
41 fes->add_trace(trace_A, 1.0, hostA);
42 fes->add_trace(trace_B, 0.0, hostB);
44 while ((next_event_date = fes->next_date()) != -1.0) {
45 XBT_DEBUG("%g" " : \n", next_event_date);
46 while (fes->pop_leq(next_event_date, &value, &resource)) {
47 XBT_DEBUG("\t %s : " "%g" "\n", resource->getName(), value);
49 if (next_event_date > 1000)
58 int main(int argc, char **argv)
60 surf_init(&argc, argv);