tests: use NullSignature

Change-Id: Icb8ff95905cfa2ba9d9a493d7a60b30a61a8d671
This commit is contained in:
Davide Pesavento
2020-10-02 20:00:03 -04:00
parent c1d4837b6f
commit b7e72c3a0a
5 changed files with 48 additions and 47 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ if has OSX $NODE_LABELS; then
elif has Ubuntu $NODE_LABELS; then
sudo apt-get -qq update
sudo apt-get -qy install g++ pkg-config python3-minimal \
sudo apt-get -qy install build-essential pkg-config python3-minimal \
libboost-all-dev libssl-dev libsqlite3-dev \
libpcap-dev libsystemd-dev
+12 -16
View File
@@ -24,10 +24,8 @@
*/
#include "face/lp-fragmenter.hpp"
#include "face/transport.hpp"
#include "tests/test-common.hpp"
#include "tests/daemon/global-io-fixture.hpp"
namespace nfd {
namespace face {
@@ -35,7 +33,7 @@ namespace tests {
using namespace nfd::tests;
class LpFragmenterFixture : public GlobalIoFixture
class LpFragmenterFixture
{
protected:
LpFragmenter fragmenter{{}};
@@ -44,23 +42,22 @@ protected:
BOOST_AUTO_TEST_SUITE(Face)
BOOST_FIXTURE_TEST_SUITE(TestLpFragmenter, LpFragmenterFixture)
BOOST_AUTO_TEST_CASE(FragmentSingleFragment)
BOOST_AUTO_TEST_CASE(SingleFragment)
{
size_t mtu = 256;
const size_t mtu = 256;
lp::Packet packet;
packet.add<lp::IncomingFaceIdField>(123);
auto data = makeData("/test/data123");
BOOST_REQUIRE_EQUAL(data->wireEncode().size(), 30);
packet.add<lp::FragmentField>({data->wireEncode().begin(), data->wireEncode().end()});
bool isOk = false;
std::vector<lp::Packet> frags;
std::tie(isOk, frags) = fragmenter.fragmentPacket(packet, mtu);
BOOST_REQUIRE(isOk);
BOOST_REQUIRE_EQUAL(frags.size(), 1);
BOOST_CHECK(frags[0].has<lp::FragmentField>());
BOOST_CHECK_EQUAL(frags[0].get<lp::IncomingFaceIdField>(), 123);
BOOST_CHECK(!frags[0].has<lp::FragIndexField>());
@@ -73,25 +70,23 @@ BOOST_AUTO_TEST_CASE(FragmentSingleFragment)
fragBegin, fragEnd);
}
BOOST_AUTO_TEST_CASE(FragmentMultipleFragments)
BOOST_AUTO_TEST_CASE(MultipleFragments)
{
size_t mtu = MIN_MTU;
const size_t mtu = MIN_MTU;
lp::Packet packet;
packet.add<lp::IncomingFaceIdField>(123);
auto data = makeData("/test/data123/123456789/987654321/123456789");
BOOST_REQUIRE_EQUAL(data->wireEncode().size(), 63);
packet.add<lp::FragmentField>({data->wireEncode().begin(), data->wireEncode().end()});
bool isOk = false;
std::vector<lp::Packet> frags;
std::tie(isOk, frags) = fragmenter.fragmentPacket(packet, mtu);
BOOST_REQUIRE(isOk);
BOOST_REQUIRE_EQUAL(frags.size(), 5);
ndn::Buffer reassembledPayload(63);
ndn::Buffer reassembledPayload(data->wireEncode().size());
BOOST_CHECK(frags[0].has<lp::FragmentField>());
BOOST_CHECK_EQUAL(frags[0].get<lp::IncomingFaceIdField>(), 123);
@@ -151,9 +146,9 @@ BOOST_AUTO_TEST_CASE(FragmentMultipleFragments)
reassembledPayload.begin(), reassembledPayload.end());
}
BOOST_AUTO_TEST_CASE(FragmentMtuTooSmall)
BOOST_AUTO_TEST_CASE(MtuTooSmall)
{
size_t mtu = 20;
const size_t mtu = 20;
BOOST_ASSERT(mtu < MIN_MTU);
lp::Packet packet;
@@ -167,13 +162,14 @@ BOOST_AUTO_TEST_CASE(FragmentMtuTooSmall)
BOOST_CHECK_EQUAL(isOk, false);
}
BOOST_AUTO_TEST_CASE(FragmentOverFragCount)
BOOST_AUTO_TEST_CASE(FragCountOverLimit)
{
LpFragmenter::Options options;
options.nMaxFragments = 2;
fragmenter.setOptions(options);
size_t mtu = 70;
const size_t mtu = 70;
BOOST_ASSERT(mtu >= MIN_MTU);
lp::Packet packet;
packet.add<lp::IncomingFaceIdField>(123);
+5 -6
View File
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2014-2019, Regents of the University of California,
* Copyright (c) 2014-2020, Regents of the University of California,
* Arizona Board of Regents,
* Colorado State University,
* University Pierre & Marie Curie, Sorbonne University,
@@ -70,10 +70,9 @@ protected:
static shared_ptr<Data>
makeData(const Name& name)
{
auto data = make_shared<Data>(name);
ndn::SignatureSha256WithRsa fakeSignature;
fakeSignature.setValue(ndn::encoding::makeEmptyBlock(tlv::SignatureValue));
data->setSignature(fakeSignature);
auto data = std::make_shared<Data>(name);
data->setSignatureInfo(ndn::SignatureInfo(tlv::NullSignature));
data->setSignatureValue(std::make_shared<ndn::Buffer>());
data->wireEncode();
return data;
}
@@ -115,7 +114,7 @@ protected:
std::vector<shared_ptr<Interest>> workload(count);
for (size_t i = 0; i < count; ++i) {
Name name = genName(i);
auto interest = make_shared<Interest>(name);
auto interest = std::make_shared<Interest>(name);
interest->setCanBePrefix(false);
workload[i] = interest;
}
+4 -7
View File
@@ -25,8 +25,6 @@
#include "tests/test-common.hpp"
#include <ndn-cxx/security/signature-sha256-with-rsa.hpp>
namespace nfd {
namespace tests {
@@ -34,7 +32,7 @@ shared_ptr<Interest>
makeInterest(const Name& name, bool canBePrefix, optional<time::milliseconds> lifetime,
optional<Interest::Nonce> nonce)
{
auto interest = make_shared<Interest>(name);
auto interest = std::make_shared<Interest>(name);
interest->setCanBePrefix(canBePrefix);
if (lifetime) {
interest->setInterestLifetime(*lifetime);
@@ -46,16 +44,15 @@ makeInterest(const Name& name, bool canBePrefix, optional<time::milliseconds> li
shared_ptr<Data>
makeData(const Name& name)
{
auto data = make_shared<Data>(name);
auto data = std::make_shared<Data>(name);
return signData(data);
}
Data&
signData(Data& data)
{
ndn::SignatureSha256WithRsa fakeSignature;
fakeSignature.setValue(ndn::encoding::makeEmptyBlock(tlv::SignatureValue));
data.setSignature(fakeSignature);
data.setSignatureInfo(ndn::SignatureInfo(tlv::NullSignature));
data.setSignatureValue(std::make_shared<ndn::Buffer>());
data.wireEncode();
return data;
}
+26 -17
View File
@@ -47,26 +47,30 @@
namespace nfd {
namespace tests {
/** \brief create an Interest
/**
* \brief Create an Interest
*/
shared_ptr<Interest>
makeInterest(const Name& name, bool canBePrefix = false,
optional<time::milliseconds> lifetime = nullopt,
optional<Interest::Nonce> nonce = nullopt);
/** \brief create a Data with fake signature
* \note Data may be modified afterwards without losing the fake signature.
* If a real signature is desired, sign again with KeyChain.
/**
* \brief Create a Data with a null (i.e., empty) signature
*
* If a real signature is desired, use KeyChainFixture and sign again with `m_keyChain`.
*/
shared_ptr<Data>
makeData(const Name& name);
/** \brief add a fake signature to Data
/**
* \brief Add a null signature to \p data
*/
Data&
signData(Data& data);
/** \brief add a fake signature to Data
/**
* \brief Add a null signature to \p data
*/
inline shared_ptr<Data>
signData(shared_ptr<Data> data)
@@ -75,15 +79,17 @@ signData(shared_ptr<Data> data)
return data;
}
/** \brief create a Nack
/**
* \brief Create a Nack
*/
lp::Nack
makeNack(Interest interest, lp::NackReason reason);
/** \brief replace a name component in a packet
* \param[inout] pkt the packet
* \param index the index of the name component to replace
* \param args arguments to name::Component constructor
/**
* \brief Replace a name component in a packet
* \param[inout] pkt the packet
* \param index the index of the name component to replace
* \param args arguments to name::Component constructor
*/
template<typename Packet, typename ...Args>
void
@@ -94,22 +100,25 @@ setNameComponent(Packet& pkt, ssize_t index, Args&& ...args)
pkt.setName(name);
}
/** \brief create a prefix announcement without signing
/**
* \brief Create a prefix announcement without signing
*/
ndn::PrefixAnnouncement
makePrefixAnn(const Name& announcedName, time::milliseconds expiration,
optional<ndn::security::ValidityPeriod> validity = nullopt);
/** \brief create a prefix announcement without signing
* \param announcedName announced name
* \param expiration expiration period
* \param validityFromNow validity period, relative from now
/**
* \brief Create a prefix announcement without signing
* \param announcedName announced name
* \param expiration expiration period
* \param validityFromNow validity period, relative from now
*/
ndn::PrefixAnnouncement
makePrefixAnn(const Name& announcedName, time::milliseconds expiration,
std::pair<time::seconds, time::seconds> validityFromNow);
/** \brief sign a prefix announcement
/**
* \brief Sign a prefix announcement
*/
ndn::PrefixAnnouncement
signPrefixAnn(ndn::PrefixAnnouncement&& pa, ndn::KeyChain& keyChain,