encoding: provide _block literal operator
_block literal operator is moved from tests and becomes public API.
refs #4722
Change-Id: I07cc040af3c4288104b66f11d91830dc9f28835a
diff --git a/tests/unit-tests/data.t.cpp b/tests/unit-tests/data.t.cpp
index b7d49c3..521b7d9 100644
--- a/tests/unit-tests/data.t.cpp
+++ b/tests/unit-tests/data.t.cpp
@@ -30,7 +30,6 @@
#include "security/verification-helpers.hpp"
#include "util/sha256.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
#include "identity-management-fixture.hpp"
#include <boost/lexical_cast.hpp>
diff --git a/tests/unit-tests/encoding/block.t.cpp b/tests/unit-tests/encoding/block.t.cpp
index 70174aa..a3459e7 100644
--- a/tests/unit-tests/encoding/block.t.cpp
+++ b/tests/unit-tests/encoding/block.t.cpp
@@ -22,7 +22,6 @@
#include "encoding/block.hpp"
#include "encoding/block-helpers.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
#include <boost/lexical_cast.hpp>
#include <cstring>
@@ -530,6 +529,41 @@
"264[8]={89[2]=4E42,16[2]=2386}");
}
+BOOST_AUTO_TEST_SUITE(BlockLiteral)
+
+BOOST_AUTO_TEST_CASE(Simple)
+{
+ Block b0 = "0000"_block;
+ BOOST_CHECK_EQUAL(b0.type(), 0x00);
+ BOOST_CHECK_EQUAL(b0.value_size(), 0);
+
+ Block b1 = "0101A0"_block;
+ BOOST_CHECK_EQUAL(b1.type(), 0x01);
+ BOOST_REQUIRE_EQUAL(b1.value_size(), 1);
+ BOOST_CHECK_EQUAL(b1.value()[0], 0xA0);
+}
+
+BOOST_AUTO_TEST_CASE(Comment)
+{
+ Block b0 = "a2b0c0d2eBf0G.B 1+"_block;
+ BOOST_CHECK_EQUAL(b0.type(), 0x20);
+ BOOST_REQUIRE_EQUAL(b0.value_size(), 2);
+ BOOST_CHECK_EQUAL(b0.value()[0], 0xB0);
+ BOOST_CHECK_EQUAL(b0.value()[1], 0xB1);
+}
+
+BOOST_AUTO_TEST_CASE(BadInput)
+{
+ BOOST_CHECK_THROW(""_block, std::invalid_argument);
+ BOOST_CHECK_THROW("1"_block, std::invalid_argument);
+ BOOST_CHECK_THROW("333"_block, std::invalid_argument);
+
+ BOOST_CHECK_THROW("0202C0"_block, tlv::Error);
+ BOOST_CHECK_THROW("0201C0C1"_block, tlv::Error);
+}
+
+BOOST_AUTO_TEST_SUITE_END() // BlockLiteral
+
BOOST_AUTO_TEST_SUITE_END() // TestBlock
BOOST_AUTO_TEST_SUITE_END() // Encoding
diff --git a/tests/unit-tests/interest.t.cpp b/tests/unit-tests/interest.t.cpp
index 52ec461..0f39c16 100644
--- a/tests/unit-tests/interest.t.cpp
+++ b/tests/unit-tests/interest.t.cpp
@@ -24,7 +24,6 @@
#include "security/digest-sha256.hpp"
#include "security/signature-sha256-with-rsa.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
#include "identity-management-fixture.hpp"
diff --git a/tests/unit-tests/meta-info.t.cpp b/tests/unit-tests/meta-info.t.cpp
index aee3b69..57371c3 100644
--- a/tests/unit-tests/meta-info.t.cpp
+++ b/tests/unit-tests/meta-info.t.cpp
@@ -22,7 +22,6 @@
#include "meta-info.hpp"
#include "data.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
namespace ndn {
diff --git a/tests/unit-tests/name-component.t.cpp b/tests/unit-tests/name-component.t.cpp
index ddd7629..031ccb8 100644
--- a/tests/unit-tests/name-component.t.cpp
+++ b/tests/unit-tests/name-component.t.cpp
@@ -23,7 +23,6 @@
#include "name.hpp"
#include "util/string-helper.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/mpl/vector.hpp>
@@ -32,8 +31,6 @@
namespace name {
namespace tests {
-using namespace ndn::tests;
-
BOOST_AUTO_TEST_SUITE(TestNameComponent)
BOOST_AUTO_TEST_SUITE(Decode)
diff --git a/tests/unit-tests/name.t.cpp b/tests/unit-tests/name.t.cpp
index 061fd56..1e0aa1d 100644
--- a/tests/unit-tests/name.t.cpp
+++ b/tests/unit-tests/name.t.cpp
@@ -21,7 +21,6 @@
#include "name.hpp"
-#include "block-literal.hpp"
#include "boost-test.hpp"
#include <unordered_map>