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 {