File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -107,10 +107,9 @@ struct Addr {
107107
108108 const static std::regex ipv4_address_pattern
109109 {
110- " ^\\ s*(25[0–5]|2[0–4]\\ d|[01]?\\ d\\ d?)\\ ."
111- " (25[0–5]|2[0–4]\\ d|[01]?\\ d\\ d?)\\ ."
112- " (25[0–5]|2[0–4]\\ d|[01]?\\ d\\ d?)\\ ."
113- " (25[0–5]|2[0–4]\\ d|[01]?\\ d\\ d?)\\ s*$"
110+ #define OCTET_PATTERN " (25[0-5]|2[0-4]\\ d|[01]?\\ d\\ d?)"
111+ " ^\\ s*" OCTET_PATTERN " \\ ." OCTET_PATTERN " \\ ." OCTET_PATTERN " \\ ." OCTET_PATTERN " \\ s*$"
112+ #undef OCTET_PATTERN
114113 };
115114
116115 std::smatch ipv4_parts;
Original file line number Diff line number Diff line change @@ -52,6 +52,15 @@ CASE("Create IP4 addresses from strings")
5252 Addr ipv4_address {extra_whitespace_addr_str};
5353 EXPECT (ipv4_address.str () == " 10.0.0.42" );
5454
55+ EXPECT_NO_THROW (Addr (" 202.209.27.78" ));
56+ EXPECT_NO_THROW (Addr (" 212.209.27.78" ));
57+ EXPECT_NO_THROW (Addr (" 222.209.27.78" ));
58+ EXPECT_NO_THROW (Addr (" 232.209.27.78" ));
59+ EXPECT_NO_THROW (Addr (" 242.209.27.78" ));
60+ EXPECT_NO_THROW (Addr (" 255.209.27.78" ));
61+ EXPECT_THROWS (Addr (" 265.209.27.78" ));
62+ EXPECT_THROWS (Addr (" 256.209.27.78" ));
63+
5564 EXPECT_THROWS (Addr{" LUL" });
5665 EXPECT_THROWS (Addr{" 12310298310298301283" });
5766 EXPECT_THROWS (const Addr invalid{" 256.256.256.256" });
You can’t perform that action at this time.
0 commit comments