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