diff options
author | 2020-11-23 22:53:01 +0000 | |
---|---|---|
committer | 2020-11-24 13:10:38 +0000 | |
commit | 9705c5dc5a1c8f6df6887bc97232e2dcac1fc499 (patch) | |
tree | 30383323b7599a03eeca74710b6a5239e06c432b | |
parent | 2324775a451c395ecf2e61867c030724dbcf67c3 (diff) |
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
-rw-r--r-- | test/723-string-init-range/smali/new-instance.smali | 11 | ||||
-rw-r--r-- | test/723-string-init-range/src/Main.java | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/test/723-string-init-range/smali/new-instance.smali b/test/723-string-init-range/smali/new-instance.smali index 45d6329e9c..f47c8bb965 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 97ba76daa6..12fb93b772 100644 --- a/test/723-string-init-range/src/Main.java +++ b/test/723-string-init-range/src/Main.java @@ -26,5 +26,12 @@ public class Main { 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); + } } } |