Add tests 988-992 to cts
Test: cts-tradefed
Change-Id: Ib0c53d50ef5d4428a11d0805d7b042c95213aa33
diff --git a/test/988-method-trace/expected.txt b/test/988-method-trace/expected.txt
index 30ad532..63343b8 100644
--- a/test/988-method-trace/expected.txt
+++ b/test/988-method-trace/expected.txt
@@ -143,11 +143,11 @@
......=> private static native java.lang.Object java.lang.Throwable.nativeFillInStackTrace()
......<= private static native java.lang.Object java.lang.Throwable.nativeFillInStackTrace() -> <class [Ljava.lang.Object;: <non-deterministic>>
.....<= public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace() -> <class java.lang.Error: java.lang.Error: Bad argument: -19 < 0
- at art.Test988.iter_fibonacci(Test988.java:209)
- at art.Test988$IterOp.applyAsInt(Test988.java:204)
- at art.Test988.doFibTest(Test988.java:297)
- at art.Test988.run(Test988.java:267)
- at Main.main(Main.java:19)
+ art.Test988.iter_fibonacci(Test988.java:228)
+ art.Test988$IterOp.applyAsInt(Test988.java:223)
+ art.Test988.doFibTest(Test988.java:316)
+ art.Test988.run(Test988.java:286)
+ <additional hidden frames>
>
....<= public java.lang.Throwable(java.lang.String) -> <null: null>
...<= public java.lang.Error(java.lang.String) -> <null: null>
@@ -163,11 +163,11 @@
...<= private void java.util.ArrayList.ensureExplicitCapacity(int) -> <null: null>
..<= private void java.util.ArrayList.ensureCapacityInternal(int) -> <null: null>
fibonacci(-19) -> java.lang.Error: Bad argument: -19 < 0
- at art.Test988.iter_fibonacci(Test988.java:209)
- at art.Test988$IterOp.applyAsInt(Test988.java:204)
- at art.Test988.doFibTest(Test988.java:297)
- at art.Test988.run(Test988.java:267)
- at Main.main(Main.java:19)
+ art.Test988.iter_fibonacci(Test988.java:228)
+ art.Test988$IterOp.applyAsInt(Test988.java:223)
+ art.Test988.doFibTest(Test988.java:316)
+ art.Test988.run(Test988.java:286)
+ <additional hidden frames>
.<= public boolean java.util.ArrayList.add(java.lang.Object) -> <class java.lang.Boolean: true>
<= public static void art.Test988.doFibTest(int,java.util.function.IntUnaryOperator) -> <null: null>
@@ -244,11 +244,11 @@
......=> private static native java.lang.Object java.lang.Throwable.nativeFillInStackTrace()
......<= private static native java.lang.Object java.lang.Throwable.nativeFillInStackTrace() -> <class [Ljava.lang.Object;: <non-deterministic>>
.....<= public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace() -> <class java.lang.Error: java.lang.Error: Bad argument: -19 < 0
- at art.Test988.fibonacci(Test988.java:231)
- at art.Test988$RecurOp.applyAsInt(Test988.java:226)
- at art.Test988.doFibTest(Test988.java:297)
- at art.Test988.run(Test988.java:268)
- at Main.main(Main.java:19)
+ art.Test988.fibonacci(Test988.java:250)
+ art.Test988$RecurOp.applyAsInt(Test988.java:245)
+ art.Test988.doFibTest(Test988.java:316)
+ art.Test988.run(Test988.java:287)
+ <additional hidden frames>
>
....<= public java.lang.Throwable(java.lang.String) -> <null: null>
...<= public java.lang.Error(java.lang.String) -> <null: null>
@@ -264,14 +264,14 @@
...<= private void java.util.ArrayList.ensureExplicitCapacity(int) -> <null: null>
..<= private void java.util.ArrayList.ensureCapacityInternal(int) -> <null: null>
fibonacci(-19) -> java.lang.Error: Bad argument: -19 < 0
- at art.Test988.fibonacci(Test988.java:231)
- at art.Test988$RecurOp.applyAsInt(Test988.java:226)
- at art.Test988.doFibTest(Test988.java:297)
- at art.Test988.run(Test988.java:268)
- at Main.main(Main.java:19)
+ art.Test988.fibonacci(Test988.java:250)
+ art.Test988$RecurOp.applyAsInt(Test988.java:245)
+ art.Test988.doFibTest(Test988.java:316)
+ art.Test988.run(Test988.java:287)
+ <additional hidden frames>
.<= public boolean java.util.ArrayList.add(java.lang.Object) -> <class java.lang.Boolean: true>
<= public static void art.Test988.doFibTest(int,java.util.function.IntUnaryOperator) -> <null: null>
=> public static native java.lang.Thread java.lang.Thread.currentThread()
-<= public static native java.lang.Thread java.lang.Thread.currentThread() -> <class java.lang.Thread: <non-deterministic>>
+<= public static native java.lang.Thread java.lang.Thread.currentThread() -> <<non-deterministic>: <non-deterministic>>
=> public static native void art.Trace.disableTracing(java.lang.Thread)
diff --git a/test/988-method-trace/src/art/Test988.java b/test/988-method-trace/src/art/Test988.java
index 6a45c0e..e40c612 100644
--- a/test/988-method-trace/src/art/Test988.java
+++ b/test/988-method-trace/src/art/Test988.java
@@ -31,6 +31,7 @@
// Methods with non-deterministic output that should not be printed.
static Set<Method> NON_DETERMINISTIC_OUTPUT_METHODS = new HashSet<>();
+ static Set<Method> NON_DETERMINISTIC_OUTPUT_TYPE_METHODS = new HashSet<>();
static {
try {
@@ -39,6 +40,7 @@
} catch (Exception e) {}
try {
NON_DETERMINISTIC_OUTPUT_METHODS.add(Thread.class.getDeclaredMethod("currentThread"));
+ NON_DETERMINISTIC_OUTPUT_TYPE_METHODS.add(Thread.class.getDeclaredMethod("currentThread"));
} catch (Exception e) {}
}
@@ -66,7 +68,16 @@
return arrayToString(val);
} else if (val instanceof Throwable) {
StringWriter w = new StringWriter();
- ((Throwable) val).printStackTrace(new PrintWriter(w));
+ Throwable thr = ((Throwable) val);
+ w.write(thr.getClass().getName() + ": " + thr.getMessage() + "\n");
+ for (StackTraceElement e : thr.getStackTrace()) {
+ if (e.getClassName().startsWith("art.")) {
+ w.write("\t" + e + "\n");
+ } else {
+ w.write("\t<additional hidden frames>\n");
+ break;
+ }
+ }
return w.toString();
} else {
return val.toString();
@@ -134,8 +145,16 @@
if (val != null) {
klass = val.getClass();
}
+ String klass_print;
+ if (klass == null) {
+ klass_print = "null";
+ } else if (NON_DETERMINISTIC_OUTPUT_TYPE_METHODS.contains(m)) {
+ klass_print = "<non-deterministic>";
+ } else {
+ klass_print = klass.toString();
+ }
System.out.println(
- whitespace(cnt) + "<= " + m + " -> <" + klass + ": " + print + ">");
+ whitespace(cnt) + "<= " + m + " -> <" + klass_print + ": " + print + ">");
}
}
diff --git a/test/992-source-data/expected.txt b/test/992-source-data/expected.txt
index 480d8a4..4db8df0 100644
--- a/test/992-source-data/expected.txt
+++ b/test/992-source-data/expected.txt
@@ -1,6 +1,6 @@
class art.Test992 is defined in file "Test992.java"
class art.Test992$Target1 is defined in file "Test992.java"
-class art.Test2 is defined in file "Test2.java"
+class art.Target2 is defined in file "Target2.java"
int does not have a known source file because java.lang.RuntimeException: JVMTI_ERROR_ABSENT_INFORMATION
class java.lang.Integer is defined in file "Integer.java"
class java.lang.Object is defined in file "Object.java"
diff --git a/test/992-source-data/src/art/Test2.java b/test/992-source-data/src/art/Target2.java
similarity index 96%
rename from test/992-source-data/src/art/Test2.java
rename to test/992-source-data/src/art/Target2.java
index dbb1089..7c29d88 100644
--- a/test/992-source-data/src/art/Test2.java
+++ b/test/992-source-data/src/art/Target2.java
@@ -16,4 +16,4 @@
package art;
-public class Test2 {}
+public class Target2 {}
diff --git a/test/992-source-data/src/art/Test992.java b/test/992-source-data/src/art/Test992.java
index db6ea73..d9ab112 100644
--- a/test/992-source-data/src/art/Test992.java
+++ b/test/992-source-data/src/art/Test992.java
@@ -25,7 +25,7 @@
public static void run() {
doTest(Test992.class);
doTest(Target1.class);
- doTest(Test2.class);
+ doTest(Target2.class);
doTest(Integer.TYPE);
doTest(Integer.class);
doTest(Object.class);
diff --git a/test/Android.run-test-jvmti-java-library.mk b/test/Android.run-test-jvmti-java-library.mk
index 60ce6c7..753fe9a 100644
--- a/test/Android.run-test-jvmti-java-library.mk
+++ b/test/Android.run-test-jvmti-java-library.mk
@@ -22,6 +22,7 @@
LOCAL_SHIM_CLASSES := \
902-hello-transformation/src/art/Redefinition.java \
903-hello-tagging/src/art/Main.java \
+ 989-method-trace-throw/src/art/Trace.java \
LOCAL_SRC_FILES := $(LOCAL_SHIM_CLASSES)
@@ -77,6 +78,12 @@
984-obsolete-invoke/src/art/Test984.java \
985-re-obsolete/src/art/Test985.java \
986-native-method-bind/src/art/Test986.java \
+ 988-method-trace/src/art/Test988.java \
+ 989-method-trace-throw/src/art/Test989.java \
+ 990-field-trace/src/art/Test990.java \
+ 991-field-trace-2/src/art/Test991.java \
+ 992-source-data/src/art/Test992.java \
+ 992-source-data/src/art/Target2.java \
JVMTI_RUN_TEST_GENERATED_NUMBERS := \
901 \
@@ -119,6 +126,11 @@
984 \
985 \
986 \
+ 988 \
+ 989 \
+ 990 \
+ 991 \
+ 992 \
# Try to enforce that the directories correspond to the Java files we pull in.
JVMTI_RUN_TEST_DIR_CHECK := $(sort $(foreach DIR,$(JVMTI_RUN_TEST_GENERATED_NUMBERS), \