"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "pkg/netutil/netutil_test.go" between
etcd-3.5.5.tar.gz and etcd-3.5.6.tar.gz

About: etcd is a distributed reliable key-value store for the most critical data of a distributed system (written in "Go").

netutil_test.go  (etcd-3.5.5):netutil_test.go  (etcd-3.5.6)
skipping to change at line 20 skipping to change at line 20
// distributed under the License is distributed on an "AS IS" BASIS, // distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package netutil package netutil
import ( import (
"context" "context"
"errors" "errors"
"fmt"
"net" "net"
"net/url" "net/url"
"reflect" "reflect"
"strconv" "strconv"
"testing" "testing"
"time" "time"
"go.uber.org/zap" "go.uber.org/zap"
) )
skipping to change at line 169 skipping to change at line 170
return nil, errors.New("cannot resolve host.") return nil, errors.New("cannot resolve host.")
} }
i, err := strconv.Atoi(port) i, err := strconv.Atoi(port)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &net.TCPAddr{IP: net.ParseIP(hostm[host]), Port: i, Zone: ""}, nil return &net.TCPAddr{IP: net.ParseIP(hostm[host]), Port: i, Zone: ""}, nil
} }
tests := []struct { tests := []struct {
n int
a []url.URL a []url.URL
b []url.URL b []url.URL
expect bool expect bool
err error err error
}{ }{
{ {
n: 0,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }},
b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }}, b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }},
expect: true, expect: true,
}, },
{ {
n: 1,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}},
b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }}, b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }},
expect: true, expect: true,
}, },
{ {
n: 2,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}},
b: []url.URL{{Scheme: "https", Host: "10.0.10.1:2379 "}}, b: []url.URL{{Scheme: "https", Host: "10.0.10.1:2379 "}},
expect: false, expect: false,
err: errors.New(`"http://10.0.10.1:2379"(resolved from "http://example.com:2379") != "https://10.0.10.1:2379"(resolved from "https://1 0.0.10.1:2379")`), err: errors.New(`resolved urls: "http://10.0.10.1:2379 " != "https://10.0.10.1:2379"`),
}, },
{ {
n: 3,
a: []url.URL{{Scheme: "https", Host: "example.com:23 79"}}, a: []url.URL{{Scheme: "https", Host: "example.com:23 79"}},
b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }}, b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }},
expect: false, expect: false,
err: errors.New(`"https://10.0.10.1:2379"(resolved fro m "https://example.com:2379") != "http://10.0.10.1:2379"(resolved from "http://1 0.0.10.1:2379")`), err: errors.New(`resolved urls: "https://10.0.10.1:237 9" != "http://10.0.10.1:2379"`),
}, },
{ {
n: 4,
a: []url.URL{{Scheme: "unix", Host: "abc:2379"}}, a: []url.URL{{Scheme: "unix", Host: "abc:2379"}},
b: []url.URL{{Scheme: "unix", Host: "abc:2379"}}, b: []url.URL{{Scheme: "unix", Host: "abc:2379"}},
expect: true, expect: true,
}, },
{ {
n: 5,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: true, expect: true,
}, },
{ {
n: 6,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: true, expect: true,
}, },
{ {
n: 7,
a: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: true, expect: true,
}, },
{ {
n: 8,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }},
b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }}, b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }},
expect: false, expect: false,
err: errors.New(`"http://127.0.0.1:2379"(resolved from "http://127.0.0.1:2379") != "http://127.0.0.1:2380"(resolved from "http://127.0 .0.1:2380")`), err: errors.New(`resolved urls: "http://127.0.0.1:2379 " != "http://127.0.0.1:2380"`),
}, },
{ {
n: 9,
a: []url.URL{{Scheme: "http", Host: "example.com:238 0"}}, a: []url.URL{{Scheme: "http", Host: "example.com:238 0"}},
b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }}, b: []url.URL{{Scheme: "http", Host: "10.0.10.1:2379" }},
expect: false, expect: false,
err: errors.New(`"http://10.0.10.1:2380"(resolved from "http://example.com:2380") != "http://10.0.10.1:2379"(resolved from "http://10. 0.10.1:2379")`), err: errors.New(`resolved urls: "http://10.0.10.1:2380 " != "http://10.0.10.1:2379"`),
}, },
{ {
n: 10,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }},
b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} }, b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} },
expect: false, expect: false,
err: errors.New(`"http://127.0.0.1:2379"(resolved from "http://127.0.0.1:2379") != "http://10.0.0.1:2379"(resolved from "http://10.0.0 .1:2379")`), err: errors.New(`resolved urls: "http://127.0.0.1:2379 " != "http://10.0.0.1:2379"`),
}, },
{ {
n: 11,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}},
b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} }, b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} },
expect: false, expect: false,
err: errors.New(`"http://10.0.10.1:2379"(resolved from "http://example.com:2379") != "http://10.0.0.1:2379"(resolved from "http://10.0 .0.1:2379")`), err: errors.New(`resolved urls: "http://10.0.10.1:2379 " != "http://10.0.0.1:2379"`),
}, },
{ {
n: 12,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: false, expect: false,
err: errors.New(`"http://127.0.0.1:2379"(resolved from "http://127.0.0.1:2379") != "http://127.0.0.1:2380"(resolved from "http://127.0 .0.1:2380")`), err: errors.New(`resolved urls: "http://127.0.0.1:2379 " != "http://127.0.0.1:2380"`),
}, },
{ {
n: 13,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "127.0.0.1:2380" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: false, expect: false,
err: errors.New(`"http://10.0.10.1:2379"(resolved from "http://example.com:2379") != "http://127.0.0.1:2380"(resolved from "http://127 .0.0.1:2380")`), err: errors.New(`resolved urls: "http://10.0.10.1:2379 " != "http://127.0.0.1:2380"`),
}, },
{ {
n: 14,
a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "127.0.0.1:2379" }, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: false, expect: false,
err: errors.New(`"http://127.0.0.1:2379"(resolved from "http://127.0.0.1:2379") != "http://10.0.0.1:2379"(resolved from "http://10.0.0 .1:2379")`), err: errors.New(`resolved urls: "http://127.0.0.1:2379 " != "http://10.0.0.1:2379"`),
}, },
{ {
n: 15,
a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}}, a: []url.URL{{Scheme: "http", Host: "example.com:237 9"}, {Scheme: "http", Host: "127.0.0.1:2380"}},
b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: false, expect: false,
err: errors.New(`"http://10.0.10.1:2379"(resolved from "http://example.com:2379") != "http://10.0.0.1:2379"(resolved from "http://10.0 .0.1:2379")`), err: errors.New(`resolved urls: "http://10.0.10.1:2379 " != "http://10.0.0.1:2379"`),
}, },
{ {
n: 16,
a: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} }, a: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} },
b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}}, b: []url.URL{{Scheme: "http", Host: "10.0.0.1:2379"} , {Scheme: "http", Host: "127.0.0.1:2380"}},
expect: false, expect: false,
err: errors.New(`len(["http://10.0.0.1:2379"]) != len( ["http://10.0.0.1:2379" "http://127.0.0.1:2380"])`), err: errors.New(`len(["http://10.0.0.1:2379"]) != len( ["http://10.0.0.1:2379" "http://127.0.0.1:2380"])`),
}, },
{ {
n: 17,
a: []url.URL{{Scheme: "http", Host: "first.com:2379" }, {Scheme: "http", Host: "second.com:2380"}}, a: []url.URL{{Scheme: "http", Host: "first.com:2379" }, {Scheme: "http", Host: "second.com:2380"}},
b: []url.URL{{Scheme: "http", Host: "10.0.11.1:2379" }, {Scheme: "http", Host: "10.0.11.2:2380"}}, b: []url.URL{{Scheme: "http", Host: "10.0.11.1:2379" }, {Scheme: "http", Host: "10.0.11.2:2380"}},
expect: true, expect: true,
}, },
{ {
n: 18,
a: []url.URL{{Scheme: "http", Host: "second.com:2380 "}, {Scheme: "http", Host: "first.com:2379"}}, a: []url.URL{{Scheme: "http", Host: "second.com:2380 "}, {Scheme: "http", Host: "first.com:2379"}},
b: []url.URL{{Scheme: "http", Host: "10.0.11.1:2379" }, {Scheme: "http", Host: "10.0.11.2:2380"}}, b: []url.URL{{Scheme: "http", Host: "10.0.11.1:2379" }, {Scheme: "http", Host: "10.0.11.2:2380"}},
expect: true, expect: true,
}, },
} }
for i, test := range tests { for i, test := range tests {
result, err := urlsEqual(context.TODO(), zap.NewExample(), test.a , test.b) result, err := urlsEqual(context.TODO(), zap.NewExample(), test.a , test.b)
if result != test.expect { if result != test.expect {
t.Errorf("#%d: a:%v b:%v, expected %v but %v", i, test.a, test.b, test.expect, result) t.Errorf("idx=%d #%d: a:%v b:%v, expected %v but %v", i, test.n, test.a, test.b, test.expect, result)
} }
if test.err != nil { if test.err != nil {
if err.Error() != test.err.Error() { if err.Error() != test.err.Error() {
t.Errorf("#%d: err expected %v but %v", i, test.e rr, err) t.Errorf("idx=%d #%d: err expected %v but %v", i, test.n, test.err, err)
} }
} }
} }
} }
func TestURLStringsEqual(t *testing.T) { func TestURLStringsEqual(t *testing.T) {
result, err := URLStringsEqual(context.TODO(), zap.NewExample(), []string defer func() { resolveTCPAddr = resolveTCPAddrDefault }()
{"http://127.0.0.1:8080"}, []string{"http://127.0.0.1:8080"}) errOnResolve := func(ctx context.Context, addr string) (*net.TCPAddr, err
if !result { or) {
t.Errorf("unexpected result %v", result) return nil, fmt.Errorf("unexpected attempt to resolve: %q", addr)
}
cases := []struct {
urlsA []string
urlsB []string
resolver func(ctx context.Context, addr string) (*net.TCPAddr, er
ror)
}{
{[]string{"http://127.0.0.1:8080"}, []string{"http://127.0.0.1:80
80"}, resolveTCPAddrDefault},
{[]string{
"http://host1:8080",
"http://host2:8080",
}, []string{
"http://host1:8080",
"http://host2:8080",
}, errOnResolve},
} }
if err != nil { for idx, c := range cases {
t.Errorf("unexpected error %v", err) t.Logf("TestURLStringsEqual, case #%d", idx)
resolveTCPAddr = c.resolver
result, err := URLStringsEqual(context.TODO(), zap.NewExample(),
c.urlsA, c.urlsB)
if !result {
t.Errorf("unexpected result %v", result)
}
if err != nil {
t.Errorf("unexpected error %v", err)
}
} }
} }
 End of changes. 35 change blocks. 
18 lines changed or deleted 64 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)