From ff3deb37a8bc428db6341f330c5b08cfac6f5268 Mon Sep 17 00:00:00 2001 From: Sorin Basca Date: Tue, 12 Mar 2024 14:35:34 +0000 Subject: [PATCH] Add JVM expected out for JDK 21 for 1969-force-early-return-void With JDK 21 the format output for the Thread has changed slightly. Bug: 313924276 Test: ./art/test/testrunner/run_build_test_target.py -j80 art-test-javac Change-Id: I038e5e872a46320ca7b45b956a25da49ec974b8e --- .../expected-stdout.jvm.txt | 212 ++++++++++++++++++ test/1969-force-early-return-void/run.py | 4 +- 2 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 test/1969-force-early-return-void/expected-stdout.jvm.txt diff --git a/test/1969-force-early-return-void/expected-stdout.jvm.txt b/test/1969-force-early-return-void/expected-stdout.jvm.txt new file mode 100644 index 0000000000..92f55933c6 --- /dev/null +++ b/test/1969-force-early-return-void/expected-stdout.jvm.txt @@ -0,0 +1,212 @@ +Test stopped using breakpoint +NORMAL RUN: Single call with no interference on (ID: 0) StandardTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 0) StandardTestObject { cnt: 2 } on Test1969 target thread - 0 +Single call with force-early-return on (ID: 1) StandardTestObject { cnt: 0 } +Will force return of Test1969 target thread - 1 +result for (ID: 1) StandardTestObject { cnt: 1 } on Test1969 target thread - 1 +Test stopped using breakpoint with declared synchronized function +NORMAL RUN: Single call with no interference on (ID: 2) SynchronizedFunctionTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 2) SynchronizedFunctionTestObject { cnt: 2 } on Test1969 target thread - 2 +Single call with force-early-return on (ID: 3) SynchronizedFunctionTestObject { cnt: 0 } +Will force return of Test1969 target thread - 3 +result for (ID: 3) SynchronizedFunctionTestObject { cnt: 1 } on Test1969 target thread - 3 +Test stopped using breakpoint with synchronized block +NORMAL RUN: Single call with no interference on (ID: 4) SynchronizedTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 4) SynchronizedTestObject { cnt: 2 } on Test1969 target thread - 4 +Single call with force-early-return on (ID: 5) SynchronizedTestObject { cnt: 0 } +Will force return of Test1969 target thread - 5 +result for (ID: 5) SynchronizedTestObject { cnt: 1 } on Test1969 target thread - 5 +Test stopped on single step +NORMAL RUN: Single call with no interference on (ID: 6) StandardTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 6) StandardTestObject { cnt: 2 } on Test1969 target thread - 6 +Single call with force-early-return on (ID: 7) StandardTestObject { cnt: 0 } +Will force return of Test1969 target thread - 7 +result for (ID: 7) StandardTestObject { cnt: 1 } on Test1969 target thread - 7 +Test stopped on field access +NORMAL RUN: Single call with no interference on (ID: 8) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 0 } +NORMAL RUN: result for (ID: 8) FieldBasedTestObject { TARGET_FIELD: 10, cnt: 2 } on Test1969 target thread - 8 +Single call with force-early-return on (ID: 9) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 0 } +Will force return of Test1969 target thread - 9 +result for (ID: 9) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 1 } on Test1969 target thread - 9 +Test stopped on field modification +NORMAL RUN: Single call with no interference on (ID: 10) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 0 } +NORMAL RUN: result for (ID: 10) FieldBasedTestObject { TARGET_FIELD: 10, cnt: 2 } on Test1969 target thread - 10 +Single call with force-early-return on (ID: 11) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 0 } +Will force return of Test1969 target thread - 11 +result for (ID: 11) FieldBasedTestObject { TARGET_FIELD: 0, cnt: 1 } on Test1969 target thread - 11 +Test stopped during Method Exit of calledFunction +NORMAL RUN: Single call with no interference on (ID: 12) StandardTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 12) StandardTestObject { cnt: 2 } on Test1969 target thread - 12 +Single call with force-early-return on (ID: 13) StandardTestObject { cnt: 0 } +Will force return of Test1969 target thread - 13 +result for (ID: 13) StandardTestObject { cnt: 2 } on Test1969 target thread - 13 +Test stopped during Method Enter of calledFunction +NORMAL RUN: Single call with no interference on (ID: 14) StandardTestObject { cnt: 0 } +NORMAL RUN: result for (ID: 14) StandardTestObject { cnt: 2 } on Test1969 target thread - 14 +Single call with force-early-return on (ID: 15) StandardTestObject { cnt: 0 } +Will force return of Test1969 target thread - 15 +result for (ID: 15) StandardTestObject { cnt: 0 } on Test1969 target thread - 15 +Test stopped during Method Exit due to exception thrown in same function +NORMAL RUN: Single call with no interference on (ID: 16) ExceptionOnceObject { cnt: 0, throwInSub: false } +Uncaught exception in thread Thread[#32,Test1969 target thread - 16,5,main] - art.Test1969$ExceptionOnceObject$TestError: null + art.Test1969$ExceptionOnceObject.calledFunction(Test1969.java) + art.Test1969$AbstractTestObject.run(Test1969.java) + art.Test1969$2.run(Test1969.java) + java.lang.Thread.run(Thread.java) + +NORMAL RUN: result for (ID: 16) ExceptionOnceObject { cnt: 1, throwInSub: false } on Test1969 target thread - 16 +Single call with force-early-return on (ID: 17) ExceptionOnceObject { cnt: 0, throwInSub: false } +Will force return of Test1969 target thread - 17 +result for (ID: 17) ExceptionOnceObject { cnt: 1, throwInSub: false } on Test1969 target thread - 17 +Test stopped during Method Exit due to exception thrown in subroutine +NORMAL RUN: Single call with no interference on (ID: 18) ExceptionOnceObject { cnt: 0, throwInSub: true } +Uncaught exception in thread Thread[#34,Test1969 target thread - 18,5,main] - art.Test1969$ExceptionOnceObject$TestError: null + art.Test1969$ExceptionOnceObject.doThrow(Test1969.java) + art.Test1969$ExceptionOnceObject.calledFunction(Test1969.java) + art.Test1969$AbstractTestObject.run(Test1969.java) + art.Test1969$2.run(Test1969.java) + java.lang.Thread.run(Thread.java) + +NORMAL RUN: result for (ID: 18) ExceptionOnceObject { cnt: 1, throwInSub: true } on Test1969 target thread - 18 +Single call with force-early-return on (ID: 19) ExceptionOnceObject { cnt: 0, throwInSub: true } +Will force return of Test1969 target thread - 19 +result for (ID: 19) ExceptionOnceObject { cnt: 1, throwInSub: true } on Test1969 target thread - 19 +Test stopped during notifyFramePop with exception on pop of calledFunction +NORMAL RUN: Single call with no interference on (ID: 20) ExceptionThrowTestObject { cnt: 0, baseCnt: 0 } +art.Test1969$ExceptionThrowTestObject$TestError thrown and caught! +NORMAL RUN: result for (ID: 20) ExceptionThrowTestObject { cnt: 2, baseCnt: 2 } on Test1969 target thread - 20 +Single call with force-early-return on (ID: 21) ExceptionThrowTestObject { cnt: 0, baseCnt: 0 } +Will force return of Test1969 target thread - 21 +result for (ID: 21) ExceptionThrowTestObject { cnt: 2, baseCnt: 2 } on Test1969 target thread - 21 +Test stopped during notifyFramePop with exception on pop of doThrow +NORMAL RUN: Single call with no interference on (ID: 22) ExceptionCatchTestObject { cnt: 0 } +art.Test1969$ExceptionCatchTestObject$TestError caught in called function. +NORMAL RUN: result for (ID: 22) ExceptionCatchTestObject { cnt: 2 } on Test1969 target thread - 22 +Single call with force-early-return on (ID: 23) ExceptionCatchTestObject { cnt: 0 } +Will force return of Test1969 target thread - 23 +Failed to force-return due to java.lang.RuntimeException: JVMTI_ERROR_TYPE_MISMATCH + art.NonStandardExit.forceEarlyReturnVoid(Native Method) + art.Test1969$TestSuspender.performForceReturn(Test1969.java) + art.Test1969.runTestOn(Test1969.java) + art.Test1969.runTestOn(Test1969.java) + art.Test1969.runTestOn(Test1969.java) + art.Test1969.runTests(Test1969.java) +