fw: pull FaceTable construction out of Forwarder class
Refs: #4922, #4973
Change-Id: Ibbd4a8840cb0d01ebbd4cabf9c34fa78a1d23db1
diff --git a/tests/daemon/fw/forwarder.t.cpp b/tests/daemon/fw/forwarder.t.cpp
index c2e646e..af362e1 100644
--- a/tests/daemon/fw/forwarder.t.cpp
+++ b/tests/daemon/fw/forwarder.t.cpp
@@ -37,17 +37,30 @@
namespace nfd {
namespace tests {
+class ForwarderFixture : public GlobalIoTimeFixture
+{
+protected:
+ template<typename ...Args>
+ shared_ptr<DummyFace>
+ addFace(Args&&... args)
+ {
+ auto face = make_shared<DummyFace>(std::forward<Args>(args)...);
+ faceTable.add(face);
+ return face;
+ }
+
+protected:
+ FaceTable faceTable;
+ Forwarder forwarder{faceTable};
+};
+
BOOST_AUTO_TEST_SUITE(Fw)
-BOOST_FIXTURE_TEST_SUITE(TestForwarder, GlobalIoTimeFixture)
+BOOST_FIXTURE_TEST_SUITE(TestForwarder, ForwarderFixture)
BOOST_AUTO_TEST_CASE(SimpleExchange)
{
- Forwarder forwarder;
-
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
+ auto face1 = addFace();
+ auto face2 = addFace();
Fib& fib = forwarder.getFib();
fib::Entry* entry = fib.insert("/A").first;
@@ -82,14 +95,9 @@
BOOST_AUTO_TEST_CASE(CsMatched)
{
- Forwarder forwarder;
-
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace();
Fib& fib = forwarder.getFib();
fib::Entry* entry = fib.insert("/A").first;
@@ -124,11 +132,8 @@
BOOST_AUTO_TEST_CASE(OutgoingInterest)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
+ auto face1 = addFace();
+ auto face2 = addFace();
Pit& pit = forwarder.getPit();
auto interestA1 = makeInterest("/A", false, nullopt, 8378);
@@ -148,14 +153,9 @@
BOOST_AUTO_TEST_CASE(NextHopFaceId)
{
- Forwarder forwarder;
-
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace();
Fib& fib = forwarder.getFib();
fib::Entry* entry = fib.insert("/A").first;
@@ -174,6 +174,8 @@
class ScopeLocalhostIncomingTestForwarder : public Forwarder
{
public:
+ using Forwarder::Forwarder;
+
void
onDataUnsolicited(const FaceEndpoint&, const Data&) final
{
@@ -192,13 +194,15 @@
int onDataUnsolicited_count = 0;
};
-BOOST_AUTO_TEST_CASE(ScopeLocalhostIncoming)
+BOOST_FIXTURE_TEST_CASE(ScopeLocalhostIncoming, GlobalIoTimeFixture)
{
- ScopeLocalhostIncomingTestForwarder forwarder;
+ FaceTable faceTable;
+ ScopeLocalhostIncomingTestForwarder forwarder(faceTable);
+
auto face1 = make_shared<DummyFace>("dummy://", "dummy://", ndn::nfd::FACE_SCOPE_LOCAL);
auto face2 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
+ faceTable.add(face1);
+ faceTable.add(face2);
// local face, /localhost: OK
forwarder.dispatchToStrategy_count = 0;
@@ -251,11 +255,8 @@
BOOST_AUTO_TEST_CASE(IncomingInterestStrategyDispatch)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
+ auto face1 = addFace();
+ auto face2 = addFace();
DummyStrategy& strategyA = choose<DummyStrategy>(forwarder, "/", DummyStrategy::getStrategyName());
DummyStrategy& strategyB = choose<DummyStrategy>(forwarder, "/B", DummyStrategy::getStrategyName());
@@ -292,15 +293,10 @@
BOOST_AUTO_TEST_CASE(IncomingData)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>();
- auto face4 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
- forwarder.addFace(face4);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace();
+ auto face4 = addFace();
Pit& pit = forwarder.getPit();
auto interestD = makeInterest("/A/B/C/D");
@@ -327,16 +323,12 @@
BOOST_AUTO_TEST_CASE(IncomingNack)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>("dummy://", "dummy://",
- ndn::nfd::FACE_SCOPE_NON_LOCAL,
- ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
- ndn::nfd::LINK_TYPE_MULTI_ACCESS);
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace("dummy://", "dummy://",
+ ndn::nfd::FACE_SCOPE_NON_LOCAL,
+ ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
+ ndn::nfd::LINK_TYPE_MULTI_ACCESS);
DummyStrategy& strategyA = choose<DummyStrategy>(forwarder, "/", DummyStrategy::getStrategyName());
DummyStrategy& strategyB = choose<DummyStrategy>(forwarder, "/B", DummyStrategy::getStrategyName());
@@ -410,16 +402,12 @@
BOOST_AUTO_TEST_CASE(OutgoingNack)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>("dummy://", "dummy://",
- ndn::nfd::FACE_SCOPE_NON_LOCAL,
- ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
- ndn::nfd::LINK_TYPE_MULTI_ACCESS);
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace("dummy://", "dummy://",
+ ndn::nfd::FACE_SCOPE_NON_LOCAL,
+ ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
+ ndn::nfd::LINK_TYPE_MULTI_ACCESS);
Pit& pit = forwarder.getPit();
@@ -474,18 +462,13 @@
BOOST_AUTO_TEST_CASE(InterestLoopNack)
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- auto face3 = make_shared<DummyFace>("dummy://", "dummy://",
- ndn::nfd::FACE_SCOPE_NON_LOCAL,
- ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
- ndn::nfd::LINK_TYPE_MULTI_ACCESS);
- auto face4 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
- forwarder.addFace(face3);
- forwarder.addFace(face4);
+ auto face1 = addFace();
+ auto face2 = addFace();
+ auto face3 = addFace("dummy://", "dummy://",
+ ndn::nfd::FACE_SCOPE_NON_LOCAL,
+ ndn::nfd::FACE_PERSISTENCY_PERSISTENT,
+ ndn::nfd::LINK_TYPE_MULTI_ACCESS);
+ auto face4 = addFace();
Fib& fib = forwarder.getFib();
fib::Entry* entry = fib.insert("/zT4XwK0Hnx").first;
@@ -526,11 +509,8 @@
BOOST_AUTO_TEST_CASE(InterestLoopWithShortLifetime) // Bug 1953
{
- Forwarder forwarder;
- auto face1 = make_shared<DummyFace>();
- auto face2 = make_shared<DummyFace>();
- forwarder.addFace(face1);
- forwarder.addFace(face2);
+ auto face1 = addFace();
+ auto face2 = addFace();
// cause an Interest sent out of face2 to loop back into face1 after a delay
face2->afterSend.connect([face1, face2] (uint32_t pktType) {
@@ -563,9 +543,7 @@
BOOST_AUTO_TEST_CASE(PitLeak) // Bug 3484
{
- Forwarder forwarder;
- shared_ptr<Face> face1 = make_shared<DummyFace>();
- forwarder.addFace(face1);
+ auto face1 = addFace();
auto interest = makeInterest("/hcLSAsQ9A", false, 2_s, 61883075);