diff --git a/rib/rib.cpp b/rib/rib.cpp index 97492b28..422de9f5 100644 --- a/rib/rib.cpp +++ b/rib/rib.cpp @@ -507,7 +507,7 @@ std::ostream& operator<<(std::ostream& os, const Rib& rib) { for (const auto& item : rib) { - os << item.second << "\n"; + os << *item.second << "\n"; } return os; diff --git a/tests/rib/rib.t.cpp b/tests/rib/rib.t.cpp index 9a73ac72..51a8040a 100644 --- a/tests/rib/rib.t.cpp +++ b/tests/rib/rib.t.cpp @@ -336,6 +336,49 @@ BOOST_AUTO_TEST_CASE(RibSignals) } +BOOST_AUTO_TEST_CASE(Output) +{ + rib::Rib rib; + + Route root; + Name name1("/"); + root.faceId = 1; + root.origin = 20; + root.expires = time::steady_clock::TimePoint::max(); + rib.insert(name1, root); + + Route route1; + Name name2("/hello"); + route1.faceId = 2; + route1.origin = 20; + route1.expires = time::steady_clock::TimePoint::max(); + rib.insert(name2, route1); + + Route route2; + Name name3("/hello/world"); + route2.faceId = 3; + route2.origin = 20; + route2.expires = time::steady_clock::TimePoint::max(); + rib.insert(name3, route2); + + const std::string ribStr = std::string(R"TEXT( +RibEntry { + Name: / + Route(faceid: 1, origin: 20, cost: 0, flags: 0, never expires) +} +RibEntry { + Name: /hello + Route(faceid: 2, origin: 20, cost: 0, flags: 0, never expires) +} +RibEntry { + Name: /hello/world + Route(faceid: 3, origin: 20, cost: 0, flags: 0, never expires) +} +)TEXT").substr(1); + + BOOST_CHECK_EQUAL(boost::lexical_cast(rib), ribStr); +} + BOOST_AUTO_TEST_SUITE_END() // TestRib } // namespace tests