Skip to content

Commit f479bd5

Browse files
committed
Make proxy_test work on machines with only IPv6 addresses as well.
1 parent b858be3 commit f479bd5

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

cmd/cloud_sql_proxy/proxy_test.go

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package main
1717
import (
1818
"bytes"
1919
"io/ioutil"
20+
"net"
2021
"net/http"
2122
"testing"
2223
)
@@ -99,54 +100,64 @@ func TestParseInstanceConfig(t *testing.T) {
99100
// inputs
100101
dir, instance string
101102

102-
wantCfg instanceConfig
103-
wantErr bool
103+
wantCfg instanceConfig
104+
wantErr, wantLoopback bool
104105
}{
105106
{
106107
"/x", "domain.com:my-proj:my-reg:my-instance",
107108
instanceConfig{"domain.com:my-proj:my-reg:my-instance", "unix", "/x/domain.com:my-proj:my-reg:my-instance"},
108-
false,
109+
false, false,
109110
}, {
110111
"/x", "my-proj:my-reg:my-instance",
111112
instanceConfig{"my-proj:my-reg:my-instance", "unix", "/x/my-proj:my-reg:my-instance"},
112-
false,
113+
false, false,
113114
}, {
114115
"/x", "my-proj:my-reg:my-instance=tcp:1234",
115-
instanceConfig{"my-proj:my-reg:my-instance", "tcp", "127.0.0.1:1234"},
116-
false,
116+
instanceConfig{"my-proj:my-reg:my-instance", "tcp", "[::1]:1234"},
117+
false, true,
117118
}, {
118119
"/x", "my-proj:my-reg:my-instance=tcp:my-host:1111",
119120
instanceConfig{"my-proj:my-reg:my-instance", "tcp", "my-host:1111"},
120-
false,
121+
false, false,
121122
}, {
122123
"/x", "my-proj:my-reg:my-instance=",
123124
instanceConfig{},
124-
true,
125+
true, false,
125126
}, {
126127
"/x", "my-proj:my-reg:my-instance=cool network",
127128
instanceConfig{},
128-
true,
129+
true, false,
129130
}, {
130131
"/x", "my-proj:my-reg:my-instance=cool network:1234",
131132
instanceConfig{},
132-
true,
133+
true, false,
133134
}, {
134135
"/x", "my-proj:my-reg:my-instance=oh:so:many:colons",
135136
instanceConfig{},
136-
true,
137+
true, false,
137138
},
138139
} {
139140
got, err := parseInstanceConfig(v.dir, v.instance, mockClient)
140141
if v.wantErr {
141142
if err == nil {
142-
t.Errorf("parseInstanceConfig(%s, %s) = %+v, wanted error", got)
143+
t.Errorf("parseInstanceConfig(%s, %s) = %+v, wanted error", v.dir, v.instance, got)
143144
}
144145
continue
145146
} else if err != nil {
146147
t.Errorf("parseInstanceConfig(%s, %s) had unexpected error: %v", v.dir, v.instance, err)
147148
continue
148149
}
149150
if got != v.wantCfg {
151+
if v.wantLoopback {
152+
host, _, err := net.SplitHostPort(got.Address)
153+
if err != nil {
154+
t.Errorf("parseInstanceConfig(%s, %s) = %+v, want %+v", v.dir, v.instance, got, v.wantCfg)
155+
}
156+
ip := net.ParseIP(host)
157+
if ip.IsLoopback() {
158+
continue
159+
}
160+
}
150161
t.Errorf("parseInstanceConfig(%s, %s) = %+v, want %+v", v.dir, v.instance, got, v.wantCfg)
151162
}
152163
}

0 commit comments

Comments
 (0)