diff --git a/src/Makefile.test-hush.include b/src/Makefile.test-hush.include index ecdc2d4e5..e8d1f823c 100644 --- a/src/Makefile.test-hush.include +++ b/src/Makefile.test-hush.include @@ -6,15 +6,12 @@ TESTS += hush-test bin_PROGRAMS += hush-test # tool for generating our public parameters -hush_test_SOURCES = test-hush/main.cpp +hush_test_SOURCES = test-hush/main.cpp \ + test-hush/test_netbase_tests.cpp # test-hush/testutils.cpp \ # test-hush/test_cryptoconditions.cpp \ # test-hush/test_coinimport.cpp \ -# test-hush/test_eval_bet.cpp \ -# test-hush/test_eval_notarization.cpp \ -# test-hush/test_parse_notarization.cpp \ -# test-hush/test_addrman.cpp \ -# test-hush/test_netbase_tests.cpp +# test-hush/test_addrman.cpp hush_test_CPPFLAGS = $(hushd_CPPFLAGS) diff --git a/src/test-hush/test_netbase_tests.cpp b/src/test-hush/test_netbase_tests.cpp index 23b610697..0787d780e 100644 --- a/src/test-hush/test_netbase_tests.cpp +++ b/src/test-hush/test_netbase_tests.cpp @@ -1,81 +1,46 @@ // Copyright (c) 2016-2024 The Hush developers // Distributed under the GPLv3 software license, see the accompanying // file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html -#include - #include #include #include "addrman.h" #include #include "netbase.h" +//#include +#include -#define GTEST_COUT_NOCOLOR std::cerr << "[ ] [ INFO ] " -namespace testing -{ - namespace internal - { - enum GTestColor { - COLOR_DEFAULT, - COLOR_RED, - COLOR_GREEN, - COLOR_YELLOW - }; - - extern void ColoredPrintf(GTestColor color, const char* fmt, ...); - } -} -#define PRINTF(...) do { testing::internal::ColoredPrintf(testing::internal::COLOR_GREEN, "[ ] "); testing::internal::ColoredPrintf(testing::internal::COLOR_YELLOW, __VA_ARGS__); } while(0) - -// C++ stream interface -class TestCout : public std::stringstream -{ - public: - ~TestCout() - { - PRINTF("%s",str().c_str()); - } -}; - -#define GTEST_COUT_COLOR TestCout() - -using namespace std; +BOOST_AUTO_TEST_SUITE(netbase) static CNetAddr ResolveIP(const std::string& ip) { - vector vIPs; CNetAddr addr; - if (LookupHost(ip.c_str(), vIPs)) { - addr = vIPs[0]; - } else - { - // it was BOOST_CHECK_MESSAGE, but we can't use ASSERT outside a test - GTEST_COUT_COLOR << strprintf("failed to resolve: %s", ip) << std::endl; + bool fAllowLookup = true; + if (LookupHost(ip.c_str(), addr, fAllowLookup)) { + } else { } return addr; } -namespace TestNetBaseTests { - - TEST(TestAddrmanTests, netbase_getgroup) { - +BOOST_AUTO_TEST_CASE(test_resolve) { std::vector asmap; // use /16 - ASSERT_TRUE(ResolveIP("127.0.0.1").GetGroup(asmap) == std::vector({0})); // Local -> !Routable() - ASSERT_TRUE(ResolveIP("257.0.0.1").GetGroup(asmap) == std::vector({0})); // !Valid -> !Routable() - ASSERT_TRUE(ResolveIP("10.0.0.1").GetGroup(asmap) == std::vector({0})); // RFC1918 -> !Routable() - ASSERT_TRUE(ResolveIP("169.254.1.1").GetGroup(asmap) == std::vector({0})); // RFC3927 -> !Routable() - ASSERT_TRUE(ResolveIP("1.2.3.4").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // IPv4 + BOOST_CHECK(ResolveIP("127.0.0.1").GetGroup(asmap) == std::vector({0})); // Local -> !Routable() + BOOST_CHECK(ResolveIP("257.0.0.1").GetGroup(asmap) == std::vector({0})); // !Valid -> !Routable() + BOOST_CHECK(ResolveIP("10.0.0.1").GetGroup(asmap) == std::vector({0})); // RFC1918 -> !Routable() + BOOST_CHECK(ResolveIP("169.254.1.1").GetGroup(asmap) == std::vector({0})); // RFC3927 -> !Routable() + BOOST_CHECK(ResolveIP("1.2.3.4").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // IPv4 // std::vector vch = ResolveIP("4.3.2.1").GetGroup(asmap); - // GTEST_COUT_COLOR << boost::to_string((int)vch[0]) << boost::to_string((int)vch[1]) << boost::to_string((int)vch[2]) << std::endl; - ASSERT_TRUE(ResolveIP("::FFFF:0:102:304").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC6145 - ASSERT_TRUE(ResolveIP("64:FF9B::102:304").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC6052 - ASSERT_TRUE(ResolveIP("2002:102:304:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC3964 - ASSERT_TRUE(ResolveIP("2001:0:9999:9999:9999:9999:FEFD:FCFB").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC4380 - ASSERT_TRUE(ResolveIP("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetGroup(asmap) == std::vector({(unsigned char)NET_ONION, 239})); // Tor - ASSERT_TRUE(ResolveIP("2001:470:abcd:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV6, 32, 1, 4, 112, 175})); //he.net - ASSERT_TRUE(ResolveIP("2001:2001:9999:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV6, 32, 1, 32, 1})); //IPv6 + BOOST_CHECK(ResolveIP("::FFFF:0:102:304").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC6145 + BOOST_CHECK(ResolveIP("64:FF9B::102:304").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC6052 + BOOST_CHECK(ResolveIP("2002:102:304:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC3964 + BOOST_CHECK(ResolveIP("2001:0:9999:9999:9999:9999:FEFD:FCFB").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV4, 1, 2})); // RFC4380 + BOOST_CHECK(ResolveIP("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetGroup(asmap) == std::vector({(unsigned char)NET_ONION, 239})); // Tor + BOOST_CHECK(ResolveIP("2001:470:abcd:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV6, 32, 1, 4, 112, 175})); //he.net + BOOST_CHECK(ResolveIP("2001:2001:9999:9999:9999:9999:9999:9999").GetGroup(asmap) == std::vector({(unsigned char)NET_IPV6, 32, 1, 32, 1})); //IPv6 - } } + +BOOST_AUTO_TEST_SUITE_END() +