interest: improve code readability
And add more tests for decoding of malformed ForwardingHint Change-Id: Ie7b043911769a0952300aa412fe7dbb893a464aa
This commit is contained in:
1 parent
382de67df8
commit
9404892918
3 files changed
+38
-33
No files matched your search
+9
-11
@@ -319,28 +319,26 @@ Interest::toUri() const
|
||||
bool
|
||||
Interest::matchesData(const Data& data) const
|
||||
{
|
||||
size_t interestNameLength = m_name.size();
|
||||
const Name& dataName = data.getName();
|
||||
size_t fullNameLength = dataName.size() + 1;
|
||||
|
||||
// check Name and CanBePrefix
|
||||
if (interestNameLength == fullNameLength) {
|
||||
if (m_name.size() == fullNameLength) {
|
||||
if (m_name.get(-1).isImplicitSha256Digest()) {
|
||||
if (m_name != data.getFullName()) {
|
||||
return false;
|
||||
}
|
||||
return m_name == data.getFullName();
|
||||
}
|
||||
else {
|
||||
// Interest Name is same length as Data full Name, but last component isn't digest
|
||||
// so there's no possibility of matching
|
||||
// the Interest name has the same length as the Data full name, but the last
|
||||
// component is not a digest, so there is no possibility of matching
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (getCanBePrefix() ? !m_name.isPrefixOf(dataName) : (m_name != dataName)) {
|
||||
return false;
|
||||
else if (m_canBePrefix) {
|
||||
return m_name.isPrefixOf(dataName);
|
||||
}
|
||||
else {
|
||||
return m_name == dataName;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
|
||||
+17
-10
@@ -502,6 +502,9 @@ BOOST_AUTO_TEST_CASE(FullWithParameters)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CriticalElementOutOfOrder)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0507 FC00 0703080149"_block),
|
||||
tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "Name element is missing or out of order"sv; });
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode(
|
||||
"0529 2100 0703080149 1200 1E0B(1F09 1E023E15 0703080148) "
|
||||
"0A044ACB1E4C 0C0276A1 2201D6 2404C0C1C2C3"_block),
|
||||
@@ -578,13 +581,23 @@ BOOST_AUTO_TEST_CASE(BadName)
|
||||
BOOST_AUTO_TEST_CASE(BadCanBePrefix)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0508 0703080149 210102"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "CanBePrefix element has non-zero TLV-LENGTH"sv; });
|
||||
[] (const auto& e) { return e.what() == "CanBePrefix element has non-zero TLV-LENGTH"sv; });
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(BadMustBeFresh)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0508 0703080149 120102"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "MustBeFresh element has non-zero TLV-LENGTH"sv; });
|
||||
[] (const auto& e) { return e.what() == "MustBeFresh element has non-zero TLV-LENGTH"sv; });
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(BadForwardingHint)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("050C 0703080149 1E05(0703080248)"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "Invalid Name in ForwardingHint"sv; });
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("050E 0703080149 1E07(1F05(0703080248))"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "Invalid Name in ForwardingHint.Delegation"sv; });
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0509 0703080149 1E02(2100)"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "Unexpected TLV-TYPE 33 while decoding ForwardingHint"sv; });
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(BadNonce)
|
||||
@@ -628,12 +641,6 @@ BOOST_AUTO_TEST_CASE(BadParametersDigest)
|
||||
BOOST_CHECK_EQUAL(i.isParametersDigestValid(), false);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(UnrecognizedNonCriticalElementBeforeName)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0507 FC00 0703080149"_block), tlv::Error,
|
||||
[] (const auto& e) { return e.what() == "Name element is missing or out of order"sv; });
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(UnrecognizedCriticalElement)
|
||||
{
|
||||
BOOST_CHECK_EXCEPTION(i.wireDecode("0507 0703080149 FB00"_block), tlv::Error,
|
||||
@@ -677,8 +684,8 @@ BOOST_AUTO_TEST_CASE(MatchesData)
|
||||
BOOST_CHECK_EQUAL(interest->matchesData(*data), false); // violates implicit digest
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(MatchesInterest, 1)
|
||||
BOOST_AUTO_TEST_CASE(MatchesInterest)
|
||||
BOOST_AUTO_TEST_CASE(MatchesInterest,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
Interest interest;
|
||||
interest.setName("/A")
|
||||
|
||||
@@ -215,8 +215,8 @@ BOOST_FIXTURE_TEST_CASE(IsCanonicalUdp, CanonizeFixture)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(CanonizeUdpV4, 1)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeUdpV4, CanonizeFixture)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeUdpV4, CanonizeFixture,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
SKIP_IF_IPV4_UNAVAILABLE();
|
||||
|
||||
@@ -243,8 +243,8 @@ BOOST_FIXTURE_TEST_CASE(CanonizeUdpV4, CanonizeFixture)
|
||||
runTest("udp4://[2001:db8::1]:6363", false);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(CanonizeUdpV6, 1)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeUdpV6, CanonizeFixture)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeUdpV6, CanonizeFixture,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
SKIP_IF_IPV6_UNAVAILABLE();
|
||||
|
||||
@@ -345,8 +345,8 @@ BOOST_FIXTURE_TEST_CASE(IsCanonicalTcp, CanonizeFixture)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(CanonizeTcpV4, 1)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeTcpV4, CanonizeFixture)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeTcpV4, CanonizeFixture,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
SKIP_IF_IPV4_UNAVAILABLE();
|
||||
|
||||
@@ -384,8 +384,8 @@ BOOST_FIXTURE_TEST_CASE(CanonizeTcpV4, CanonizeFixture)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(CanonizeTcpV6, 1)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeTcpV6, CanonizeFixture)
|
||||
BOOST_FIXTURE_TEST_CASE(CanonizeTcpV6, CanonizeFixture,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
SKIP_IF_IPV6_UNAVAILABLE();
|
||||
|
||||
@@ -408,8 +408,8 @@ BOOST_FIXTURE_TEST_CASE(CanonizeTcpV6, CanonizeFixture)
|
||||
runTest("tcp6://192.0.2.1:6363", false);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(ParseUnix, 1)
|
||||
BOOST_AUTO_TEST_CASE(ParseUnix)
|
||||
BOOST_AUTO_TEST_CASE(ParseUnix,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
FaceUri uri;
|
||||
|
||||
@@ -477,8 +477,8 @@ BOOST_FIXTURE_TEST_CASE(CanonizeEther, CanonizeFixture)
|
||||
runTest("ether://[33:33:01:01:01:01]", true, "ether://[33:33:01:01:01:01]");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(ParseDev, 1)
|
||||
BOOST_AUTO_TEST_CASE(ParseDev)
|
||||
BOOST_AUTO_TEST_CASE(ParseDev,
|
||||
* boost::unit_test::expected_failures(1))
|
||||
{
|
||||
FaceUri uri;
|
||||
|
||||
|
||||
Reference in new issue
Block a user