You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/06/17 12:33:32 UTC

[commons-bcel] branch master updated: Better test (disabled and failing)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git


The following commit(s) were added to refs/heads/master by this push:
     new 72f73664 Better test (disabled and failing)
72f73664 is described below

commit 72f736642ee5ad2cfe88dd0cb99c04a9bb09531a
Author: Gary David Gregory (Code signing key) <gg...@apache.org>
AuthorDate: Sat Jun 17 08:33:28 2023 -0400

    Better test (disabled and failing)
---
 .../apache/bcel/verifier/JiraBcel369TestCase.java  |  83 +++++++++++++++++++++
 src/test/resources/issue369/Test.class             | Bin 274 -> 283 bytes
 2 files changed, 83 insertions(+)

diff --git a/src/test/java/org/apache/bcel/verifier/JiraBcel369TestCase.java b/src/test/java/org/apache/bcel/verifier/JiraBcel369TestCase.java
index c74b6152..bfd84f28 100644
--- a/src/test/java/org/apache/bcel/verifier/JiraBcel369TestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/JiraBcel369TestCase.java
@@ -18,6 +18,7 @@
 package org.apache.bcel.verifier;
 
 import org.apache.bcel.AbstractTestCase;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -30,7 +31,89 @@ public class JiraBcel369TestCase extends AbstractTestCase {
         Verifier.verifyType(org.apache.bcel.verifier.JiraBcel369TestFixture.class.getName());
     }
 
+    /**
+     * 3.7.0 fails with
+     * <pre>{@code
+     * org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: Some RuntimeException occurred while verify()ing class 'issue369.Test', method 'public void <init>(int arg1)'. Original RuntimeException's stack trace:
+---
+org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: outFrame not set! This:
+  24: return    [InstructionContext]
+ExecutionChain:   24: return    [InstructionContext]
+OutFrames: '{   7: jsr -> 19    [InstructionContext]=Local Variables:
+0: issue369.Test
+1: int
+2: <unknown object>
+3: <return address targeting   10: goto[167](3) -> 34>
+4: <unknown object>
+OperandStack:
+Slots used: 0 MaxStack: 1.
+,   14: jsr -> 19   [InstructionContext]=Local Variables:
+0: issue369.Test
+1: int
+2: java.lang.Throwable
+3: <return address targeting   17: aload_2[44](1)>
+4: <unknown object>
+OperandStack:
+Slots used: 0 MaxStack: 1.
+}'.
+    at org.apache.bcel.verifier.structurals.ControlFlowGraph$InstructionContextImpl.getOutFrame(ControlFlowGraph.java:282)
+    at org.apache.bcel.verifier.structurals.Pass3bVerifier.circulationPump(Pass3bVerifier.java:275)
+    at org.apache.bcel.verifier.structurals.Pass3bVerifier.do_verify(Pass3bVerifier.java:386)
+    at org.apache.bcel.verifier.PassVerifier.verify(PassVerifier.java:98)
+    at org.apache.bcel.verifier.Verifier.doPass3b(Verifier.java:166)
+    at org.apache.bcel.verifier.Verifier.verifyType(Verifier.java:90)
+    at org.apache.bcel.verifier.JiraBcel369TestCase.testCompiledClass(JiraBcel369TestCase.java:35)
+    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+    at java.lang.reflect.Method.invoke(Method.java:498)
+    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
+    ...
+    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
+---
+
+    at org.apache.bcel.verifier.structurals.Pass3bVerifier.do_verify(Pass3bVerifier.java:398)
+    at org.apache.bcel.verifier.PassVerifier.verify(PassVerifier.java:98)
+    at org.apache.bcel.verifier.Verifier.doPass3b(Verifier.java:166)
+    at org.apache.bcel.verifier.Verifier.verifyType(Verifier.java:90)
+    at org.apache.bcel.verifier.JiraBcel369TestCase.testCompiledClass(JiraBcel369TestCase.java:35)
+    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+    at java.lang.reflect.Method.invoke(Method.java:498)
+    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
+    ...
+    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
+Caused by: org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: outFrame not set! This:
+  24: return    [InstructionContext]
+ExecutionChain:   24: return    [InstructionContext]
+OutFrames: '{   7: jsr -> 19    [InstructionContext]=Local Variables:
+0: issue369.Test
+1: int
+2: <unknown object>
+3: <return address targeting   10: goto[167](3) -> 34>
+4: <unknown object>
+OperandStack:
+Slots used: 0 MaxStack: 1.
+,   14: jsr -> 19   [InstructionContext]=Local Variables:
+0: issue369.Test
+1: int
+2: java.lang.Throwable
+3: <return address targeting   17: aload_2[44](1)>
+4: <unknown object>
+OperandStack:
+Slots used: 0 MaxStack: 1.
+}'.
+    at org.apache.bcel.verifier.structurals.ControlFlowGraph$InstructionContextImpl.getOutFrame(ControlFlowGraph.java:282)
+    at org.apache.bcel.verifier.structurals.Pass3bVerifier.circulationPump(Pass3bVerifier.java:275)
+    at org.apache.bcel.verifier.structurals.Pass3bVerifier.do_verify(Pass3bVerifier.java:386)
+    ... 74 more
+     * }</pre>
+     * 
+     * @throws ClassNotFoundException
+     */
     @Test
+    @Disabled
     public void testCompiledClass() throws ClassNotFoundException {
         Verifier.verifyType("issue369.Test");
     }
diff --git a/src/test/resources/issue369/Test.class b/src/test/resources/issue369/Test.class
index 2c9476c0..78c100c0 100644
Binary files a/src/test/resources/issue369/Test.class and b/src/test/resources/issue369/Test.class differ