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 29cac02a Refactor some tests
29cac02a is described below
commit 29cac02ae4b995bfc8d0ef1994188f709175264e
Author: Gary David Gregory (Code signing key) <[email protected]>
AuthorDate: Thu Nov 10 15:51:00 2022 -0500
Refactor some tests
---
.../bcel/classfile/JDKClassDumpTestCase.java | 27 ++++++++-------
.../java/org/apache/bcel/generic/JavaHome.java | 40 +++++++++++++++-------
.../bcel/generic/JdkGenericDumpTestCase.java | 6 ++--
.../bcel/util/ModularRuntimeImageTestCase.java | 8 ++---
4 files changed, 49 insertions(+), 32 deletions(-)
diff --git a/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
b/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
index 17bbedcb..723eb1ee 100644
--- a/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
+++ b/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
@@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
+import java.nio.file.Path;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -52,24 +53,26 @@ public class JDKClassDumpTestCase {
}
}
- private void testJar(final JarFile jar) throws Exception {
- System.out.println("Parsing " + jar.getName());
- final Enumeration<JarEntry> en = jar.entries();
- while (en.hasMoreElements()) {
- final JarEntry e = en.nextElement();
- final String name = e.getName();
- if (name.endsWith(".class")) {
- // System.out.println("Parsing " + name);
- try (InputStream inputStream1 = jar.getInputStream(e);
InputStream inputStream2 = jar.getInputStream(e);) {
- compare(new ClassParser(inputStream1, name).parse(),
inputStream2, name);
+ private void testJar(final Path path) throws Exception {
+ try (final JarFile jar = new JarFile(path.toFile())) {
+ System.out.println("Parsing " + jar.getName());
+ final Enumeration<JarEntry> en = jar.entries();
+ while (en.hasMoreElements()) {
+ final JarEntry e = en.nextElement();
+ final String name = e.getName();
+ if (name.endsWith(".class")) {
+ // System.out.println("Parsing " + name);
+ try (InputStream inputStream1 = jar.getInputStream(e);
InputStream inputStream2 = jar.getInputStream(e);) {
+ compare(new ClassParser(inputStream1, name).parse(),
inputStream2, name);
+ }
}
}
}
}
@ParameterizedTest
- @MethodSource("org.apache.bcel.generic.JavaHome#streamJarFiles")
- public void testPerformance(final JarFile path) throws Exception {
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamJarPath")
+ public void testPerformance(final Path path) throws Exception {
assertDoesNotThrow(() -> testJar(path));
}
diff --git a/src/test/java/org/apache/bcel/generic/JavaHome.java
b/src/test/java/org/apache/bcel/generic/JavaHome.java
index 98a35e49..c7558f4c 100644
--- a/src/test/java/org/apache/bcel/generic/JavaHome.java
+++ b/src/test/java/org/apache/bcel/generic/JavaHome.java
@@ -31,6 +31,7 @@ import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import java.util.function.BiPredicate;
+import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.stream.Stream;
@@ -87,8 +88,17 @@ public class JavaHome {
*
* @return a stream of JarFile.
*/
- public static Stream<JarFile> streamJarFiles() {
- return streamJavaHomes().flatMap(JavaHome::streamJarFilesByExt);
+ public static Stream<JarEntry> streamJarEntry() {
+ return streamJavaHome().flatMap(JavaHome::streamJarEntryByExt);
+ }
+
+ /**
+ * Used from {@code @MethodSource} for tests.
+ *
+ * @return a stream of JarFile.
+ */
+ public static Stream<JarFile> streamJarFile() {
+ return streamJavaHome().flatMap(JavaHome::streamJarFileByExt);
}
/**
@@ -96,8 +106,8 @@ public class JavaHome {
*
* @return a stream of Java jar paths.
*/
- public static Stream<Path> streamJarPaths() {
- return streamJavaHomes().flatMap(JavaHome::streamJarPathsByExt);
+ public static Stream<Path> streamJarPath() {
+ return streamJavaHome().flatMap(JavaHome::streamJarPathByExt);
}
/**
@@ -105,7 +115,7 @@ public class JavaHome {
*
* @return a stream of Java homes.
*/
- public static Stream<JavaHome> streamJavaHomes() {
+ public static Stream<JavaHome> streamJavaHome() {
return streamJavaHomeString().map(JavaHome::from);
}
@@ -126,8 +136,8 @@ public class JavaHome {
*
* @return a stream of Java jar paths.
*/
- public static Stream<ModularRuntimeImage> streamModularRuntimeImages() {
- return streamJavaHomes().map(JavaHome::getModularRuntimeImage);
+ public static Stream<ModularRuntimeImage> streamModularRuntimeImage() {
+ return streamJavaHome().map(JavaHome::getModularRuntimeImage);
}
/**
@@ -135,8 +145,8 @@ public class JavaHome {
*
* @return a stream of Java jar paths.
*/
- public static Stream<Path> streamModulePaths() {
- return streamJavaHomes().flatMap(JavaHome::streamModulesByExt);
+ public static Stream<Path> streamModulePath() {
+ return streamJavaHome().flatMap(JavaHome::streamModuleByExt);
}
private static Stream<String> streamPropertyAndEnvVarValues(final String
key) {
@@ -191,15 +201,19 @@ public class JavaHome {
return find(10, (p, a) -> p.toString().endsWith(suffix));
}
- private Stream<JarFile> streamJarFilesByExt() {
- return streamJarPathsByExt().map(this::toJarFile);
+ private Stream<JarEntry> streamJarEntryByExt() {
+ return streamJarFileByExt().flatMap(JarFile::stream);
+ }
+
+ private Stream<JarFile> streamJarFileByExt() {
+ return streamJarPathByExt().map(this::toJarFile);
}
- private Stream<Path> streamJarPathsByExt() {
+ private Stream<Path> streamJarPathByExt() {
return streamEndsWith(".jar");
}
- private Stream<Path> streamModulesByExt() {
+ private Stream<Path> streamModuleByExt() {
return streamEndsWith(".jmod");
}
diff --git a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
index 44d0e988..2a9a3a5f 100644
--- a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
+++ b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
@@ -170,20 +170,20 @@ public class JdkGenericDumpTestCase {
}
@ParameterizedTest
- @MethodSource("org.apache.bcel.generic.JavaHome#streamJarPaths")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamJarPath")
public void testJdkJars(final Path jarPath) throws Exception {
testJar(jarPath);
}
@ParameterizedTest
- @MethodSource("org.apache.bcel.generic.JavaHome#streamModulePaths")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamModulePath")
@DisabledOnJre(value = JRE.JAVA_8)
public void testJdkModules(final Path jmodPath) throws Exception {
testJar(jmodPath);
}
@ParameterizedTest
- @MethodSource("org.apache.bcel.generic.JavaHome#streamJavaHomes")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamJavaHome")
public void testJreModules(final JavaHome javaHome) throws Exception {
assumeTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
try (final ModularRuntimeImage mri =
javaHome.getModularRuntimeImage()) {
diff --git
a/src/test/java/org/apache/bcel/util/ModularRuntimeImageTestCase.java
b/src/test/java/org/apache/bcel/util/ModularRuntimeImageTestCase.java
index 19634479..3c986974 100644
--- a/src/test/java/org/apache/bcel/util/ModularRuntimeImageTestCase.java
+++ b/src/test/java/org/apache/bcel/util/ModularRuntimeImageTestCase.java
@@ -42,7 +42,7 @@ public class ModularRuntimeImageTestCase {
}
@ParameterizedTest
-
@MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImages")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImage")
public void testListJreModule(final ModularRuntimeImage
modularRuntimeImage) throws IOException {
final List<Path> listEntries =
modularRuntimeImage.list(ModularRuntimeImage.MODULES_PATH + "/java.base");
assertFalse(listEntries.isEmpty());
@@ -50,7 +50,7 @@ public class ModularRuntimeImageTestCase {
}
@ParameterizedTest
-
@MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImages")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImage")
public void testListJreModulePackageDir(final ModularRuntimeImage
modularRuntimeImage) throws IOException {
final List<Path> listEntries =
modularRuntimeImage.list(ModularRuntimeImage.MODULES_PATH +
"/java.base/java/lang");
assertFalse(listEntries.isEmpty());
@@ -58,7 +58,7 @@ public class ModularRuntimeImageTestCase {
}
@ParameterizedTest
-
@MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImages")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImage")
public void testListJreModules(final ModularRuntimeImage
modularRuntimeImage) throws IOException {
final List<Path> listEntries =
modularRuntimeImage.list(ModularRuntimeImage.MODULES_PATH);
assertFalse(listEntries.isEmpty());
@@ -66,7 +66,7 @@ public class ModularRuntimeImageTestCase {
}
@ParameterizedTest
-
@MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImages")
+ @MethodSource("org.apache.bcel.generic.JavaHome#streamModularRuntimeImage")
public void testListJrePackages(final ModularRuntimeImage
modularRuntimeImage) throws IOException {
final List<Path> listEntries =
modularRuntimeImage.list(ModularRuntimeImage.PACKAGES_PATH);
assertFalse(listEntries.isEmpty());