summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/tests/unit/ip/network_v6.cpp')
-rw-r--r--3rdparty/asio/src/tests/unit/ip/network_v6.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
index c7e458f08f1..e1c7bcff6b4 100644
--- a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
@@ -2,7 +2,7 @@
// network_v6.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -87,15 +87,15 @@ void test()
net1 = ip::make_network_v6("10.0.0.0/8", ec);
net1 = ip::make_network_v6(s1);
net1 = ip::make_network_v6(s1, ec);
-#if defined(ASIO_HAS_STD_STRING_VIEW)
-# if defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
- std::experimental::string_view string_view_value("0::0/8");
-# else // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+#if defined(ASIO_HAS_STRING_VIEW)
+# if defined(ASIO_HAS_STD_STRING_VIEW)
std::string_view string_view_value("0::0/8");
+# elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+ std::experimental::string_view string_view_value("0::0/8");
# endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
net1 = ip::make_network_v6(string_view_value);
net1 = ip::make_network_v6(string_view_value, ec);
-#endif // defined(ASIO_HAS_STD_STRING_VIEW)
+#endif // defined(ASIO_STD_STRING_VIEW)
// network_v6 I/O.
@@ -153,6 +153,19 @@ void test()
ASIO_CHECK(make_network_v6("2001:370::10:7344/64").network() == make_address_v6("2001:370::"));
ASIO_CHECK(make_network_v6("2001:370::10:7344/27").network() == make_address_v6("2001:360::"));
+ // construct network from invalid string
+ asio::error_code ec;
+ make_network_v6("a:b/24", ec);
+ ASIO_CHECK(!!ec);
+ make_network_v6("2001:370::10:7344/129", ec);
+ ASIO_CHECK(!!ec);
+ make_network_v6("2001:370::10:7344/-1", ec);
+ ASIO_CHECK(!!ec);
+ make_network_v6("2001:370::10:7344/", ec);
+ ASIO_CHECK(!!ec);
+ make_network_v6("2001:370::10:7344", ec);
+ ASIO_CHECK(!!ec);
+
// prefix length
ASIO_CHECK(make_network_v6("2001:370::10:7344/128").prefix_length() == 128);
ASIO_CHECK(network_v6(make_address_v6("2001:370::10:7344"), 27).prefix_length() == 27);