tests: sync common testing infrastructure with ndn-cxx and NFD
And upgrade waf to version 2.0.21
Change-Id: Id713e0f3035badd97ca7fc03f76e50085b9a266c
diff --git a/tests/ping/client/ping.t.cpp b/tests/ping/client/ping.t.cpp
index 67d7ddc..cef62d6 100644
--- a/tests/ping/client/ping.t.cpp
+++ b/tests/ping/client/ping.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2019, Arizona Board of Regents.
+ * Copyright (c) 2014-2020, Arizona Board of Regents.
*
* This file is part of ndn-tools (Named Data Networking Essential Tools).
* See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -20,6 +20,8 @@
#include "tools/ping/client/ping.hpp"
#include "tests/test-common.hpp"
+#include "tests/io-fixture.hpp"
+
#include <ndn-cxx/util/dummy-client-face.hpp>
namespace ndn {
@@ -34,20 +36,18 @@
using ping::client::Ping;
-BOOST_FIXTURE_TEST_CASE(Basic, UnitTestTimeFixture)
+BOOST_FIXTURE_TEST_CASE(Basic, IoFixture)
{
+ util::DummyClientFace face(m_io, {true, true});
Options pingOptions;
- pingOptions.prefix = "ndn:/test-prefix";
+ pingOptions.prefix = "/test-prefix";
pingOptions.shouldAllowStaleData = false;
pingOptions.shouldGenerateRandomSeq = false;
pingOptions.shouldPrintTimestamp = false;
pingOptions.nPings = 4;
- pingOptions.interval = time::milliseconds(100);
- pingOptions.timeout = time::milliseconds(2000);
+ pingOptions.interval = 100_ms;
+ pingOptions.timeout = 2_s;
pingOptions.startSeq = 1000;
-
- boost::asio::io_service io;
- util::DummyClientFace face(io, {true, true});
Ping ping(face, pingOptions);
int nFinishSignals = 0;
@@ -73,29 +73,24 @@
ping.start();
- this->advanceClocks(io, time::milliseconds(1), 500);
+ this->advanceClocks(1_ms, 500);
BOOST_REQUIRE_EQUAL(face.sentInterests.size(), 4);
auto data = makeData("/test-prefix/ping/1000");
data->setFreshnessPeriod(1_s);
face.receive(*data);
- lp::Nack nack(face.sentInterests[1]);
- nack.setReason(lp::NackReason::DUPLICATE);
- face.receive(nack);
+ face.receive(makeNack(face.sentInterests[1], lp::NackReason::DUPLICATE));
data = makeData("/test-prefix/ping/1002");
data->setFreshnessPeriod(1_s);
face.receive(*data);
- this->advanceClocks(io, time::milliseconds(100), 20);
+ this->advanceClocks(100_ms, 20);
- // ndn:/test-prefix/ping/1003 is unanswered and will timeout
+ // /test-prefix/ping/1003 is unanswered and will timeout
BOOST_CHECK_EQUAL(nFinishSignals, 1);
-
- face.shutdown();
- io.stop();
}
BOOST_AUTO_TEST_SUITE_END() // TestPing
diff --git a/tests/ping/integrated.t.cpp b/tests/ping/integrated.t.cpp
index 84c13e5..eafc52b 100644
--- a/tests/ping/integrated.t.cpp
+++ b/tests/ping/integrated.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2015-2018, Arizona Board of Regents.
+ * Copyright (c) 2015-2020, Arizona Board of Regents.
*
* This file is part of ndn-tools (Named Data Networking Essential Tools).
* See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -17,10 +17,13 @@
* ndn-tools, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "tools/ping/server/ping-server.hpp"
#include "tools/ping/client/ping.hpp"
+#include "tools/ping/server/ping-server.hpp"
-#include "tests/identity-management-fixture.hpp"
+#include "tests/test-common.hpp"
+#include "tests/io-fixture.hpp"
+#include "tests/key-chain-fixture.hpp"
+
#include <ndn-cxx/util/dummy-client-face.hpp>
namespace ndn {
@@ -29,25 +32,25 @@
using namespace ndn::tests;
-class PingIntegratedFixture : public IdentityManagementTimeFixture
+class PingIntegratedFixture : public IoFixture, public KeyChainFixture
{
public:
PingIntegratedFixture()
- : serverFace(io, m_keyChain, {false, true})
- , clientFace(io, m_keyChain, {false, true})
+ : serverFace(m_io, m_keyChain, {false, true})
+ , clientFace(m_io, m_keyChain, {false, true})
, wantLoss(false)
{
serverFace.onSendInterest.connect([this] (const Interest& interest) {
- io.post([=] { if (!wantLoss) { clientFace.receive(interest); } });
+ m_io.post([=] { if (!wantLoss) { clientFace.receive(interest); } });
});
clientFace.onSendInterest.connect([this] (const Interest& interest) {
- io.post([=] { if (!wantLoss) { serverFace.receive(interest); } });
+ m_io.post([=] { if (!wantLoss) { serverFace.receive(interest); } });
});
serverFace.onSendData.connect([this] (const Data& data) {
- io.post([=] { if (!wantLoss) { clientFace.receive(data); } });
+ m_io.post([=] { if (!wantLoss) { clientFace.receive(data); } });
});
clientFace.onSendData.connect([this] (const Data& data) {
- io.post([=] { if (!wantLoss) { serverFace.receive(data); } });
+ m_io.post([=] { if (!wantLoss) { serverFace.receive(data); } });
});
}
@@ -55,11 +58,10 @@
{
serverFace.shutdown();
clientFace.shutdown();
- io.stop();
+ m_io.stop();
}
public:
- boost::asio::io_service io;
util::DummyClientFace serverFace;
util::DummyClientFace clientFace;
std::unique_ptr<server::PingServer> server;
@@ -92,11 +94,11 @@
clientOpts.timeout = 2_s;
clientOpts.startSeq = 1000;
client = make_unique<client::Ping>(clientFace, clientOpts);
- client->afterFinish.connect(bind(&PingIntegratedFixture::onFinish, this));
+ client->afterFinish.connect([this] { onFinish(); });
client->start();
- advanceClocks(io, 1_ms, 400);
- io.run();
+ advanceClocks(1_ms, 400);
+ m_io.run();
BOOST_CHECK_EQUAL(4, server->getNPings());
}
@@ -125,11 +127,11 @@
clientOpts.timeout = 500_ms;
clientOpts.startSeq = 1000;
client = make_unique<client::Ping>(clientFace, clientOpts);
- client->afterFinish.connect(bind(&PingIntegratedFixture::onFinish, this));
+ client->afterFinish.connect([this] { onFinish(); });
client->start();
- advanceClocks(io, 1_ms, 1000);
- io.run();
+ advanceClocks(1_ms, 1000);
+ m_io.run();
BOOST_CHECK_EQUAL(0, server->getNPings());
}
diff --git a/tests/ping/server/ping-server.t.cpp b/tests/ping/server/ping-server.t.cpp
index 1fe5b35..f7ff66f 100644
--- a/tests/ping/server/ping-server.t.cpp
+++ b/tests/ping/server/ping-server.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2018, Arizona Board of Regents.
+ * Copyright (c) 2014-2020, Arizona Board of Regents.
*
* This file is part of ndn-tools (Named Data Networking Essential Tools).
* See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -20,7 +20,8 @@
#include "tools/ping/server/ping-server.hpp"
#include "tests/test-common.hpp"
-#include "../../identity-management-fixture.hpp"
+#include "tests/io-fixture.hpp"
+#include "tests/key-chain-fixture.hpp"
#include <ndn-cxx/util/dummy-client-face.hpp>
@@ -34,11 +35,11 @@
BOOST_AUTO_TEST_SUITE(Ping)
BOOST_AUTO_TEST_SUITE(TestPingServer)
-class CreatePingServerFixture : public IdentityManagementTimeFixture
+class CreatePingServerFixture : public IoFixture, public KeyChainFixture
{
protected:
CreatePingServerFixture()
- : face(io, m_keyChain, {false, true})
+ : face(m_io, m_keyChain, {false, true})
, pingOptions(makeOptions())
, pingServer(face, m_keyChain, pingOptions)
{
@@ -72,7 +73,6 @@
}
protected:
- boost::asio::io_service io;
util::DummyClientFace face;
Options pingOptions;
PingServer pingServer;
@@ -83,12 +83,12 @@
BOOST_REQUIRE_EQUAL(0, pingServer.getNPings());
pingServer.start();
- advanceClocks(io, 1_ms, 200);
+ advanceClocks(1_ms, 200);
face.receive(makePingInterest(1000));
face.receive(makePingInterest(1001));
- io.run();
+ m_io.run();
BOOST_CHECK_EQUAL(2, pingServer.getNPings());
}