interop-testing: apply --server_host_override regardless of flag order
apply --server_host_override regardless of flag order in the stress test client
diff --git a/interop-testing/src/main/java/io/grpc/testing/integration/StressTestClient.java b/interop-testing/src/main/java/io/grpc/testing/integration/StressTestClient.java
index 6ddc2c4..65580a6 100644
--- a/interop-testing/src/main/java/io/grpc/testing/integration/StressTestClient.java
+++ b/interop-testing/src/main/java/io/grpc/testing/integration/StressTestClient.java
@@ -142,6 +142,7 @@
@VisibleForTesting
void parseArgs(String[] args) {
boolean usage = false;
+ String serverAddresses = "";
for (String arg : args) {
if (!arg.startsWith("--")) {
System.err.println("All arguments must start with '--': " + arg);
@@ -161,8 +162,8 @@
}
String value = parts[1];
if ("server_addresses".equals(key)) {
- addresses = parseServerAddresses(value);
- usage = addresses.isEmpty();
+ // May need to apply server host overrides to the addresses, so delay processing
+ serverAddresses = value;
} else if ("server_host_override".equals(key)) {
serverHostOverride = value;
} else if ("use_tls".equals(key)) {
@@ -186,6 +187,11 @@
}
}
+ if (!usage && !serverAddresses.isEmpty()) {
+ addresses = parseServerAddresses(serverAddresses);
+ usage = addresses.isEmpty();
+ }
+
if (usage) {
StressTestClient c = new StressTestClient();
System.err.println(
diff --git a/interop-testing/src/test/java/io/grpc/testing/integration/StressTestClientTest.java b/interop-testing/src/test/java/io/grpc/testing/integration/StressTestClientTest.java
index 9fba17f..f79134a 100644
--- a/interop-testing/src/test/java/io/grpc/testing/integration/StressTestClientTest.java
+++ b/interop-testing/src/test/java/io/grpc/testing/integration/StressTestClientTest.java
@@ -115,6 +115,17 @@
assertEquals(9090, client.metricsPort());
}
+ @Test
+ public void serverHostOverrideShouldBeApplied() {
+ StressTestClient client = new StressTestClient();
+ client.parseArgs(new String[] {
+ "--server_addresses=localhost:8080",
+ "--server_host_override=foo.test.google.fr",
+ });
+
+ assertEquals("foo.test.google.fr", client.addresses().get(0).getHostName());
+ }
+
@Test(timeout = 5000)
public void gaugesShouldBeExported() throws Exception {