Skip to content

Commit d2f93ae

Browse files
authored
Default seed address tests account for no IPv6 (#41971)
This change makes the default seed address tests account for the lack of an IPv6 network. By default docker containers only run with IPv4 and these tests fail in a vanilla installation of elasticsearch-ci. To resolve this we only expect IPv6 seed addresses if IPv6 is available. Relates #41404
1 parent 731dac7 commit d2f93ae

File tree

1 file changed

+33
-22
lines changed

1 file changed

+33
-22
lines changed

server/src/test/java/org/elasticsearch/transport/TcpTransportTests.java

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.elasticsearch.common.bytes.BytesReference;
2525
import org.elasticsearch.common.io.stream.BytesStreamOutput;
2626
import org.elasticsearch.common.network.NetworkService;
27+
import org.elasticsearch.common.network.NetworkUtils;
2728
import org.elasticsearch.common.settings.Settings;
2829
import org.elasticsearch.common.transport.TransportAddress;
2930
import org.elasticsearch.common.util.MockPageCacheRecycler;
@@ -97,54 +98,64 @@ public void testRejectsPortRanges() {
9798
}
9899

99100
public void testDefaultSeedAddressesWithDefaultPort() {
100-
testDefaultSeedAddresses(Settings.EMPTY, containsInAnyOrder(
101-
"[::1]:9300", "[::1]:9301", "[::1]:9302", "[::1]:9303", "[::1]:9304", "[::1]:9305",
102-
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304", "127.0.0.1:9305"));
101+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
102+
containsInAnyOrder(
103+
"[::1]:9300", "[::1]:9301", "[::1]:9302", "[::1]:9303", "[::1]:9304", "[::1]:9305",
104+
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304", "127.0.0.1:9305") :
105+
containsInAnyOrder(
106+
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304", "127.0.0.1:9305");
107+
testDefaultSeedAddresses(Settings.EMPTY, seedAddressMatcher);
103108
}
104109

105110
public void testDefaultSeedAddressesWithNonstandardGlobalPortRange() {
106-
testDefaultSeedAddresses(Settings.builder().put(TransportSettings.PORT.getKey(), "9500-9600").build(), containsInAnyOrder(
107-
"[::1]:9500", "[::1]:9501", "[::1]:9502", "[::1]:9503", "[::1]:9504", "[::1]:9505",
108-
"127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505"));
111+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
112+
containsInAnyOrder(
113+
"[::1]:9500", "[::1]:9501", "[::1]:9502", "[::1]:9503", "[::1]:9504", "[::1]:9505",
114+
"127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505") :
115+
containsInAnyOrder(
116+
"127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505");
117+
testDefaultSeedAddresses(Settings.builder().put(TransportSettings.PORT.getKey(), "9500-9600").build(), seedAddressMatcher);
109118
}
110119

111120
public void testDefaultSeedAddressesWithSmallGlobalPortRange() {
112-
testDefaultSeedAddresses(Settings.builder().put(TransportSettings.PORT.getKey(), "9300-9302").build(), containsInAnyOrder(
113-
"[::1]:9300", "[::1]:9301", "[::1]:9302",
114-
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"));
121+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
122+
containsInAnyOrder("[::1]:9300", "[::1]:9301", "[::1]:9302", "127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302") :
123+
containsInAnyOrder("127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302");
124+
testDefaultSeedAddresses(Settings.builder().put(TransportSettings.PORT.getKey(), "9300-9302").build(), seedAddressMatcher);
115125
}
116126

117127
public void testDefaultSeedAddressesWithNonstandardProfilePortRange() {
128+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
129+
containsInAnyOrder("[::1]:9500", "[::1]:9501", "[::1]:9502", "[::1]:9503", "[::1]:9504", "[::1]:9505",
130+
"127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505") :
131+
containsInAnyOrder("127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505");
118132
testDefaultSeedAddresses(Settings.builder()
119133
.put(TransportSettings.PORT_PROFILE.getConcreteSettingForNamespace(TransportSettings.DEFAULT_PROFILE).getKey(), "9500-9600")
120-
.build(),
121-
containsInAnyOrder(
122-
"[::1]:9500", "[::1]:9501", "[::1]:9502", "[::1]:9503", "[::1]:9504", "[::1]:9505",
123-
"127.0.0.1:9500", "127.0.0.1:9501", "127.0.0.1:9502", "127.0.0.1:9503", "127.0.0.1:9504", "127.0.0.1:9505"));
134+
.build(), seedAddressMatcher);
124135
}
125136

126137
public void testDefaultSeedAddressesWithSmallProfilePortRange() {
138+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
139+
containsInAnyOrder("[::1]:9300", "[::1]:9301", "[::1]:9302", "127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302") :
140+
containsInAnyOrder("127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302");
127141
testDefaultSeedAddresses(Settings.builder()
128142
.put(TransportSettings.PORT_PROFILE.getConcreteSettingForNamespace(TransportSettings.DEFAULT_PROFILE).getKey(), "9300-9302")
129-
.build(),
130-
containsInAnyOrder(
131-
"[::1]:9300", "[::1]:9301", "[::1]:9302",
132-
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"));
143+
.build(), seedAddressMatcher);
133144
}
134145

135146
public void testDefaultSeedAddressesPrefersProfileSettingToGlobalSetting() {
147+
final Matcher<Iterable<? extends String>> seedAddressMatcher = NetworkUtils.SUPPORTS_V6 ?
148+
containsInAnyOrder("[::1]:9300", "[::1]:9301", "[::1]:9302", "127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302") :
149+
containsInAnyOrder("127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302");
136150
testDefaultSeedAddresses(Settings.builder()
137151
.put(TransportSettings.PORT_PROFILE.getConcreteSettingForNamespace(TransportSettings.DEFAULT_PROFILE).getKey(), "9300-9302")
138152
.put(TransportSettings.PORT.getKey(), "9500-9600")
139-
.build(),
140-
containsInAnyOrder(
141-
"[::1]:9300", "[::1]:9301", "[::1]:9302",
142-
"127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"));
153+
.build(), seedAddressMatcher);
143154
}
144155

145156
public void testDefaultSeedAddressesWithNonstandardSinglePort() {
146157
testDefaultSeedAddresses(Settings.builder().put(TransportSettings.PORT.getKey(), "9500").build(),
147-
containsInAnyOrder("[::1]:9500", "127.0.0.1:9500"));
158+
NetworkUtils.SUPPORTS_V6 ? containsInAnyOrder("[::1]:9500", "127.0.0.1:9500") : containsInAnyOrder("127.0.0.1:9500"));
148159
}
149160

150161
private void testDefaultSeedAddresses(final Settings settings, Matcher<Iterable<? extends String>> seedAddressesMatcher) {

0 commit comments

Comments
 (0)