From 842dab308d06d53c1cc9858d7fde16ca7bfd556f Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Wed, 4 May 2016 12:04:18 -0700 Subject: [PATCH] HBASE-15761 Add on more server name tests --- hbase-native-client/serde/server-name-test.cc | 18 ++++++++++++++++++ hbase-native-client/serde/server-name.h | 4 +++- 2 files changed, 21 insertions(+), 1 deletion(-) 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("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("Ther's no colon here")); +} + +TEST(TestServerName, TestIPV6) { + auto sn = folly::to("[::::1]:123"); + + ASSERT_EQ("[::::1]", sn.host_name()); + ASSERT_EQ(123, sn.port()); + +} 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 void parseTo(String in, ServerName &out) { std::string s = folly::to(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(s.substr(delim + 1))); -- 2.8.0-rc2