@@ -64,134 +64,6 @@ func TestBzzAddress(t *testing.T) {
6464 }
6565}
6666
67- func TestSelectBestAdvertisedAddress (t * testing.T ) {
68- t .Parallel ()
69-
70- mustMultiaddr := func (s string ) multiaddr.Multiaddr {
71- addr , err := multiaddr .NewMultiaddr (s )
72- if err != nil {
73- t .Fatalf ("failed to create multiaddr %s: %v" , s , err )
74- }
75- return addr
76- }
77-
78- tests := []struct {
79- name string
80- addrs []multiaddr.Multiaddr
81- fallback multiaddr.Multiaddr
82- expected multiaddr.Multiaddr
83- }{
84- {
85- name : "empty addresses returns fallback" ,
86- addrs : []multiaddr.Multiaddr {},
87- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
88- expected : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
89- },
90- {
91- name : "nil addresses returns fallback" ,
92- addrs : nil ,
93- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
94- expected : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
95- },
96- {
97- name : "prefers public addresses" ,
98- addrs : []multiaddr.Multiaddr {
99- mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ), // private
100- mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ), // public
101- mustMultiaddr ("/ip4/10.0.0.1/tcp/8080" ), // private
102- },
103- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
104- expected : mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ),
105- },
106- {
107- name : "prefers first public address when multiple exist" ,
108- addrs : []multiaddr.Multiaddr {
109- mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ), // private
110- mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ), // public
111- mustMultiaddr ("/ip4/1.1.1.1/tcp/8080" ), // public
112- },
113- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
114- expected : mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ),
115- },
116- {
117- name : "prefers non-private when no public addresses" ,
118- addrs : []multiaddr.Multiaddr {
119- mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ), // loopback
120- mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ), // private but not loopback
121- mustMultiaddr ("/ip4/10.0.0.1/tcp/8080" ), // private but not loopback
122- },
123- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
124- expected : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
125- },
126- {
127- name : "returns first address when all are loopback" ,
128- addrs : []multiaddr.Multiaddr {
129- mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
130- mustMultiaddr ("/ip4/127.0.0.1/tcp/8081" ),
131- mustMultiaddr ("/ip6/::1/tcp/8080" ),
132- },
133- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
134- expected : mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ),
135- },
136- {
137- name : "sorts TCP addresses first" ,
138- addrs : []multiaddr.Multiaddr {
139- mustMultiaddr ("/ip4/192.168.1.1/udp/8080" ), // UDP
140- mustMultiaddr ("/ip4/1.1.1.1/udp/8080" ), // UDP public
141- mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ), // TCP public
142- },
143- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
144- expected : mustMultiaddr ("/ip4/8.8.8.8/tcp/8080" ),
145- },
146- {
147- name : "handles IPv6 addresses" ,
148- addrs : []multiaddr.Multiaddr {
149- mustMultiaddr ("/ip6/::1/tcp/8080" ), // loopback
150- mustMultiaddr ("/ip6/2001:db8::1/tcp/8080" ), // public IPv6
151- mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ), // private IPv4
152- },
153- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
154- expected : mustMultiaddr ("/ip6/2001:db8::1/tcp/8080" ),
155- },
156- {
157- name : "handles mixed protocols with preference order" ,
158- addrs : []multiaddr.Multiaddr {
159- mustMultiaddr ("/ip4/192.168.1.1/udp/8080" ), // private UDP
160- mustMultiaddr ("/ip4/192.168.1.2/tcp/8080" ), // private TCP
161- mustMultiaddr ("/ip4/127.0.0.1/tcp/8080" ), // loopback TCP
162- },
163- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
164- expected : mustMultiaddr ("/ip4/192.168.1.2/tcp/8080" ), // first TCP, and it's non-loopback
165- },
166- {
167- name : "single address" ,
168- addrs : []multiaddr.Multiaddr {
169- mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ),
170- },
171- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
172- expected : mustMultiaddr ("/ip4/192.168.1.1/tcp/8080" ),
173- },
174- {
175- name : "websocket addresses" ,
176- addrs : []multiaddr.Multiaddr {
177- mustMultiaddr ("/ip4/127.0.0.1/tcp/8080/ws" ),
178- mustMultiaddr ("/ip4/8.8.8.8/tcp/8080/ws" ), // public with websocket
179- },
180- fallback : mustMultiaddr ("/ip4/127.0.0.1/tcp/9999" ),
181- expected : mustMultiaddr ("/ip4/8.8.8.8/tcp/8080/ws" ),
182- },
183- }
184-
185- for _ , tt := range tests {
186- t .Run (tt .name , func (t * testing.T ) {
187- result := bzz .SelectBestAdvertisedAddress (tt .addrs , tt .fallback )
188- if ! result .Equal (tt .expected ) {
189- t .Errorf ("SelectBestAdvertisedAddress() = %v, want %v" , result , tt .expected )
190- }
191- })
192- }
193- }
194-
19567func TestAreUnderlaysEqual (t * testing.T ) {
19668 // --- Test Data Initialization ---
19769 addr1 := mustNewMultiaddr (t , "/ip4/127.0.0.1/tcp/8001" )
0 commit comments