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 2019/07/06 18:58:12 UTC
[commons-bcel] branch master updated: Better tests.
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 20992bf Better tests.
20992bf is described below
commit 20992bfab627d57e74e4623a09db325a244e7d05
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jul 6 14:58:08 2019 -0400
Better tests.
---
.../java/org/apache/bcel/verifier/Verifier.java | 73 ++++++++++++----------
.../apache/bcel/verifier/JiraBcel291TestCase.java | 4 +-
2 files changed, 41 insertions(+), 36 deletions(-)
diff --git a/src/main/java/org/apache/bcel/verifier/Verifier.java b/src/main/java/org/apache/bcel/verifier/Verifier.java
index c14457e..2dd6087 100644
--- a/src/main/java/org/apache/bcel/verifier/Verifier.java
+++ b/src/main/java/org/apache/bcel/verifier/Verifier.java
@@ -193,44 +193,17 @@ public class Verifier {
public static void main( final String[] args ) {
System.out
.println("JustIce by Enver Haase, (C) 2001-2002.\n<http://bcel.sourceforge.net>\n<https://commons.apache.org/bcel>\n");
- for (int k = 0; k < args.length; k++) {
+ for (int index = 0; index < args.length; index++) {
try {
- if (args[k].endsWith(".class")) {
- final int dotclasspos = args[k].lastIndexOf(".class");
+ if (args[index].endsWith(".class")) {
+ final int dotclasspos = args[index].lastIndexOf(".class");
if (dotclasspos != -1) {
- args[k] = args[k].substring(0, dotclasspos);
+ args[index] = args[index].substring(0, dotclasspos);
}
}
- args[k] = args[k].replace('/', '.');
- System.out.println("Now verifying: " + args[k] + "\n");
- final Verifier v = VerifierFactory.getVerifier(args[k]);
- VerificationResult vr;
- vr = v.doPass1();
- System.out.println("Pass 1:\n" + vr);
- vr = v.doPass2();
- System.out.println("Pass 2:\n" + vr);
- if (vr == VerificationResult.VR_OK) {
- final JavaClass jc = org.apache.bcel.Repository.lookupClass(args[k]);
- for (int i = 0; i < jc.getMethods().length; i++) {
- vr = v.doPass3a(i);
- System.out.println("Pass 3a, method number " + i + " ['"
- + jc.getMethods()[i] + "']:\n" + vr);
- vr = v.doPass3b(i);
- System.out.println("Pass 3b, method number " + i + " ['"
- + jc.getMethods()[i] + "']:\n" + vr);
- }
- }
- System.out.println("Warnings:");
- final String[] warnings = v.getMessages();
- if (warnings.length == 0) {
- System.out.println("<none>");
- }
- for (final String warning : warnings) {
- System.out.println(warning);
- }
- System.out.println("\n");
- // avoid swapping.
- v.flush();
+ args[index] = args[index].replace('/', '.');
+ System.out.println("Now verifying: " + args[index] + "\n");
+ verifyType(args[index]);
org.apache.bcel.Repository.clearCache();
System.gc();
} catch (final ClassNotFoundException e) {
@@ -238,4 +211,36 @@ public class Verifier {
}
}
}
+
+
+ static void verifyType(final String fullyQualifiedClassName) throws ClassNotFoundException {
+ final Verifier verifier = VerifierFactory.getVerifier(fullyQualifiedClassName);
+ VerificationResult verificationResult;
+ verificationResult = verifier.doPass1();
+ System.out.println("Pass 1:\n" + verificationResult);
+ verificationResult = verifier.doPass2();
+ System.out.println("Pass 2:\n" + verificationResult);
+ if (verificationResult == VerificationResult.VR_OK) {
+ final JavaClass jc = org.apache.bcel.Repository.lookupClass(fullyQualifiedClassName);
+ for (int i = 0; i < jc.getMethods().length; i++) {
+ verificationResult = verifier.doPass3a(i);
+ System.out.println("Pass 3a, method number " + i + " ['"
+ + jc.getMethods()[i] + "']:\n" + verificationResult);
+ verificationResult = verifier.doPass3b(i);
+ System.out.println("Pass 3b, method number " + i + " ['"
+ + jc.getMethods()[i] + "']:\n" + verificationResult);
+ }
+ }
+ System.out.println("Warnings:");
+ final String[] warnings = verifier.getMessages();
+ if (warnings.length == 0) {
+ System.out.println("<none>");
+ }
+ for (final String warning : warnings) {
+ System.out.println(warning);
+ }
+ System.out.println("\n");
+ // avoid swapping.
+ verifier.flush();
+ }
}
diff --git a/src/test/java/org/apache/bcel/verifier/JiraBcel291TestCase.java b/src/test/java/org/apache/bcel/verifier/JiraBcel291TestCase.java
index 8337c8b..4de31d8 100644
--- a/src/test/java/org/apache/bcel/verifier/JiraBcel291TestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/JiraBcel291TestCase.java
@@ -25,7 +25,7 @@ import org.junit.Test;
public class JiraBcel291TestCase {
@Test
- public void test() {
- Verifier.main(new String[] { "org/apache/bcel/verifier/tests/JiraBcel291TestFixture" });
+ public void test() throws ClassNotFoundException {
+ Verifier.verifyType("org.apache.bcel.verifier.tests.JiraBcel291TestFixture");
}
}