]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-base32_cc.cc
Add some notes explaining why some validations are not relevant in the dnstap case.
[thirdparty/pdns.git] / pdns / test-base32_cc.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
3 #ifdef HAVE_CONFIG_H
4 #include "config.h"
5 #endif
6 #include <boost/test/unit_test.hpp>
7 #include <boost/assign/list_of.hpp>
8
9 #include <boost/tuple/tuple.hpp>
10 #include "base32.hh"
11
12 BOOST_AUTO_TEST_SUITE(test_base32_cc)
13
14 BOOST_AUTO_TEST_CASE(test_base32_basic) {
15 typedef boost::tuple<const std::string, const std::string> case_t;
16 typedef std::list<case_t> cases_t;
17
18 // RFC test vectors
19 cases_t cases = boost::assign::list_of
20 (case_t(std::string(""), std::string("")))
21 (case_t(std::string("f"), std::string("co======")))
22 (case_t(std::string("fo"), std::string("cpng====")))
23 (case_t(std::string("foo"), std::string("cpnmu===")))
24 (case_t(std::string("foob"), std::string("cpnmuog=")))
25 (case_t(std::string("fooba"), std::string("cpnmuoj1")))
26 (case_t(std::string("foobar"), std::string("cpnmuoj1e8======")))
27 ;
28
29 for(const case_t& val : cases) {
30 std::string res;
31 res = toBase32Hex(val.get<0>());
32 BOOST_CHECK_EQUAL(res, val.get<1>());
33 res = fromBase32Hex(val.get<1>());
34 BOOST_CHECK_EQUAL(res, val.get<0>());
35 }
36 };
37
38 BOOST_AUTO_TEST_SUITE_END();