HBASE-15761 Add on more server name tests
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6f571eee Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6f571eee Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6f571eee Branch: refs/heads/HBASE-14850 Commit: 6f571eeef5dcb0c0bd228cbe29f7be8a12305a36 Parents: d3415f6 Author: Elliott Clark <ecl...@apache.org> Authored: Wed May 4 12:04:18 2016 -0700 Committer: Elliott Clark <elli...@fb.com> Committed: Tue May 17 15:02:24 2016 -0700 ---------------------------------------------------------------------- hbase-native-client/serde/server-name-test.cc | 18 ++++++++++++++++++ hbase-native-client/serde/server-name.h | 4 +++- 2 files changed, 21 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/6f571eee/hbase-native-client/serde/server-name-test.cc ---------------------------------------------------------------------- diff --git a/hbase-native-client/serde/server-name-test.cc b/hbase-native-client/serde/server-name-test.cc index 35dcbc1..2281fa2 100644 --- a/hbase-native-client/serde/server-name-test.cc +++ b/hbase-native-client/serde/server-name-test.cc @@ -30,3 +30,21 @@ TEST(TestServerName, TestMakeServerName) { ASSERT_EQ("test", sn.host_name()); ASSERT_EQ(123, sn.port()); } + +TEST(TestServerName, TestIps) { + auto sn = folly::to<ServerName>("127.0.0.1:999"); + ASSERT_EQ("127.0.0.1", sn.host_name()); + ASSERT_EQ(999, sn.port()); +} + +TEST(TestServerName, TestThrow) { + ASSERT_ANY_THROW(folly::to<ServerName>("Ther's no colon here")); +} + +TEST(TestServerName, TestIPV6) { + auto sn = folly::to<ServerName>("[::::1]:123"); + + ASSERT_EQ("[::::1]", sn.host_name()); + ASSERT_EQ(123, sn.port()); + +} http://git-wip-us.apache.org/repos/asf/hbase/blob/6f571eee/hbase-native-client/serde/server-name.h ---------------------------------------------------------------------- diff --git a/hbase-native-client/serde/server-name.h b/hbase-native-client/serde/server-name.h index bdba087..9844465 100644 --- a/hbase-native-client/serde/server-name.h +++ b/hbase-native-client/serde/server-name.h @@ -12,7 +12,9 @@ template <class String> void parseTo(String in, ServerName &out) { std::string s = folly::to<std::string>(in); auto delim = s.rfind(":"); - DCHECK(delim != std::string::npos); + if (delim == std::string::npos) { + throw std::runtime_error("Couldn't parse server name"); + } out.set_host_name(s.substr(0, delim)); // Now keep everything after the : (delim + 1) to the end. out.set_port(folly::to<int>(s.substr(delim + 1)));