From 886bad2fd55b59505b64eb9cd25a919763ac42ac Mon Sep 17 00:00:00 2001 From: Sofia Papagiannaki Date: Mon, 18 Nov 2019 10:42:51 +0200 Subject: [PATCH] Util: Modify SplitHostPortDefault not to return an error for empty input (#20351) * Util: Optionally allow empty input in SplitHostPortDefault Due to a recent change the SQL Server tests failed because passing an empty datasource url in `util.SplitHostPortDefault` was no more allowed. This fix contains the following modifications: - Modifies the util.SplitHostPortDefault not to return an error for empty input. - Modifies the util.SplitHostPort to return an error for empty input. - Introduces an additional test for empty input. --- pkg/util/ip_address.go | 5 ++++- pkg/util/ip_address_test.go | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/util/ip_address.go b/pkg/util/ip_address.go index 96d08a8fc6b..1d9efd19341 100644 --- a/pkg/util/ip_address.go +++ b/pkg/util/ip_address.go @@ -44,7 +44,7 @@ func SplitHostPortDefault(input, defaultHost, defaultPort string) (NetworkAddres Port: defaultPort, } if len(input) == 0 { - return addr, fmt.Errorf("Input is empty") + return addr, nil } start := 0 @@ -82,5 +82,8 @@ func SplitHostPortDefault(input, defaultHost, defaultPort string) (NetworkAddres // SplitHostPort splits ip address/hostname string by host and port func SplitHostPort(input string) (NetworkAddress, error) { + if len(input) == 0 { + return NetworkAddress{}, fmt.Errorf("Input is empty") + } return SplitHostPortDefault(input, "", "") } diff --git a/pkg/util/ip_address_test.go b/pkg/util/ip_address_test.go index 170106cf6c2..6faa05d77f0 100644 --- a/pkg/util/ip_address_test.go +++ b/pkg/util/ip_address_test.go @@ -87,6 +87,11 @@ func TestSplitHostPortDefault(t *testing.T) { So(err, ShouldBeNil) So(addr.Host, ShouldEqual, "xyz.rds.amazonaws.com") So(addr.Port, ShouldEqual, "123") + + addr, err = SplitHostPortDefault("", "localhost", "1433") + So(err, ShouldBeNil) + So(addr.Host, ShouldEqual, "localhost") + So(addr.Port, ShouldEqual, "1433") }) }