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. */
11 #include "src/surf/network_interface.hpp"
12 #include "src/surf/trace_mgr.hpp"
14 XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example");
16 class DummyTestResource
17 : public simgrid::surf::Resource {
19 explicit DummyTestResource(const char* name) : Resource(nullptr, name, nullptr) {}
20 bool isUsed() override {return false;}
21 void apply_event(tmgr_trace_iterator_t it, double value) override {}
24 int main(int argc, char **argv)
26 surf_init(&argc, argv);
28 simgrid::trace_mgr::future_evt_set *fes = new simgrid::trace_mgr::future_evt_set();
29 tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt");
30 tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt");
32 simgrid::surf::Resource *resource = nullptr;
33 simgrid::surf::Resource *hostA = new DummyTestResource("Host A");
34 simgrid::surf::Resource *hostB = new DummyTestResource("Host B");
36 fes->add_trace(trace_A, 1.0, hostA);
37 fes->add_trace(trace_B, 0.0, hostB);
39 double next_event_date = fes->next_date();
40 while (next_event_date > -1.0) {
41 XBT_INFO("%g:", next_event_date);
42 while (fes->pop_leq(next_event_date, &value, &resource)) {
43 XBT_INFO(" %s: %g", resource->cname(), value);
45 if (next_event_date > 100)
47 next_event_date = fes->next_date();