Add another invoke-range test for String.<init>.

Add a variant with multiple arguments to stress backends / nterp.

Test: 723-string-init-range
Change-Id: If8b760fc1fded9b3f2a8fc6e928532d7bf3c6225
diff --git a/test/723-string-init-range/smali/new-instance.smali b/test/723-string-init-range/smali/new-instance.smali
index 45d6329..f47c8bb 100644
--- a/test/723-string-init-range/smali/new-instance.smali
+++ b/test/723-string-init-range/smali/new-instance.smali
@@ -23,3 +23,14 @@
     invoke-direct/range {v0 .. v1}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
     return-object v0
 .end method
+
+.method public static initRange([BIII)Ljava/lang/String;
+    .registers 9
+    new-instance v0, Ljava/lang/String;
+    move-object v1, p0
+    move v2, p1
+    move v3, p2
+    move v4, p3
+    invoke-direct/range {v0 .. v4}, Ljava/lang/String;-><init>([BIII)V
+    return-object v0
+.end method
diff --git a/test/723-string-init-range/src/Main.java b/test/723-string-init-range/src/Main.java
index 97ba76d..12fb93b 100644
--- a/test/723-string-init-range/src/Main.java
+++ b/test/723-string-init-range/src/Main.java
@@ -26,5 +26,12 @@
     if (!expected.equals(result)) {
       throw new Error("Expected '" + expected + "', got " + result);
     }
+
+    m = c.getMethod("initRange", byte[].class, int.class, int.class, int.class);
+    byte[] byteArray = expected.getBytes();
+    result = (String)m.invoke(null, byteArray, 0, 0, 5);
+    if (!expected.equals(result)) {
+      throw new Error("Expected '" + expected + "', got " + result);
+    }
   }
 }