diff options
| author | 2017-06-23 13:17:07 -0700 | |
|---|---|---|
| committer | 2017-06-28 11:42:06 -0700 | |
| commit | 70fbac7ac065efd11d49b7e8554f40d44f0baf72 (patch) | |
| tree | c979b2b8ffc98e307e56faea69018f80df3aef68 | |
| parent | 96e3dd546cc255441fb27d456b06e2e662b5f9c8 (diff) | |
Add tests 988-992 to cts
Test: cts-tradefed
Change-Id: Ib0c53d50ef5d4428a11d0805d7b042c95213aa33
| -rw-r--r-- | test/988-method-trace/expected.txt | 42 | ||||
| -rw-r--r-- | test/988-method-trace/src/art/Test988.java | 23 | ||||
| -rw-r--r-- | test/992-source-data/expected.txt | 2 | ||||
| -rw-r--r-- | test/992-source-data/src/art/Target2.java (renamed from test/992-source-data/src/art/Test2.java) | 2 | ||||
| -rw-r--r-- | test/992-source-data/src/art/Test992.java | 2 | ||||
| -rw-r--r-- | test/Android.run-test-jvmti-java-library.mk | 12 |
6 files changed, 57 insertions, 26 deletions
diff --git a/test/988-method-trace/expected.txt b/test/988-method-trace/expected.txt index 30ad532f6c..63343b8fb4 100644 --- a/test/988-method-trace/expected.txt +++ b/test/988-method-trace/expected.txt @@ -143,11 +143,11 @@ fibonacci(5)=5 ......=> 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 @@ fibonacci(5)=5 ...<= 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 @@ fibonacci(-19) -> java.lang.Error: Bad argument: -19 < 0 ......=> 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 @@ fibonacci(-19) -> java.lang.Error: Bad argument: -19 < 0 ...<= 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 6a45c0eaa2..e40c612851 100644 --- a/test/988-method-trace/src/art/Test988.java +++ b/test/988-method-trace/src/art/Test988.java @@ -31,6 +31,7 @@ public class Test988 { // 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 @@ public class Test988 { } 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 @@ public class Test988 { 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 @@ public class Test988 { 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 480d8a4fe7..4db8df0ada 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 index dbb1089c5e..7c29d88871 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 db6ea73856..d9ab112726 100644 --- a/test/992-source-data/src/art/Test992.java +++ b/test/992-source-data/src/art/Test992.java @@ -25,7 +25,7 @@ public class Test992 { 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 60ce6c7003..753fe9a330 100644 --- a/test/Android.run-test-jvmti-java-library.mk +++ b/test/Android.run-test-jvmti-java-library.mk @@ -22,6 +22,7 @@ include $(CLEAR_VARS) 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 @@ LOCAL_SRC_FILES += \ 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 @@ JVMTI_RUN_TEST_GENERATED_NUMBERS := \ 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), \ |