mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8295059: test/langtools/tools/javap 12 test classes use com.sun.tools.classfile library
Reviewed-by: asotona
This commit is contained in:
parent
3671d83c87
commit
97b688340e
11 changed files with 520 additions and 588 deletions
|
@ -29,12 +29,17 @@
|
|||
* @modules
|
||||
* jdk.compiler/com.sun.tools.javac.api
|
||||
* jdk.compiler/com.sun.tools.javac.main
|
||||
* jdk.jdeps/com.sun.tools.classfile
|
||||
* jdk.jdeps/com.sun.tools.javap
|
||||
* java.base/jdk.internal.classfile
|
||||
* java.base/jdk.internal.classfile.attribute
|
||||
* java.base/jdk.internal.classfile.constantpool
|
||||
* java.base/jdk.internal.classfile.instruction
|
||||
* java.base/jdk.internal.classfile.components
|
||||
* @build toolbox.JavacTask toolbox.JavapTask toolbox.ToolBox toolbox.TestRunner
|
||||
* @run main TestClassNameWarning
|
||||
*/
|
||||
|
||||
import java.lang.constant.ClassDesc;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
@ -43,9 +48,8 @@ import java.util.List;
|
|||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.sun.tools.classfile.ClassFile;
|
||||
import com.sun.tools.classfile.ClassWriter;
|
||||
|
||||
import jdk.internal.classfile.*;
|
||||
import toolbox.JavacTask;
|
||||
import toolbox.JavapTask;
|
||||
import toolbox.Task;
|
||||
|
@ -140,7 +144,7 @@ public class TestClassNameWarning extends TestRunner {
|
|||
byte[] replaceBytes = "module-info".getBytes("UTF-8");
|
||||
for (int i = 0; i < bytes.length - searchBytes.length; i++) {
|
||||
if (Arrays.equals(bytes, i, i + searchBytes.length,
|
||||
searchBytes, 0, searchBytes.length)) {
|
||||
searchBytes, 0, searchBytes.length)) {
|
||||
System.arraycopy(replaceBytes, 0, bytes, i, replaceBytes.length);
|
||||
}
|
||||
}
|
||||
|
@ -172,14 +176,15 @@ public class TestClassNameWarning extends TestRunner {
|
|||
.files(tb.findJavaFiles(src))
|
||||
.run()
|
||||
.writeAll();
|
||||
|
||||
ClassFile cf = ClassFile.read(classes.resolve("A.class"));
|
||||
ClassFile cf2 = new ClassFile(
|
||||
cf.magic, cf.minor_version, cf.major_version, cf.constant_pool,
|
||||
cf.access_flags,
|
||||
0, // this_class,
|
||||
cf.super_class, cf.interfaces, cf.fields, cf.methods, cf.attributes);
|
||||
new ClassWriter().write(cf2, Files.newOutputStream(classes.resolve("Z.class")));
|
||||
ClassModel cm = Classfile.of().parse(classes.resolve("A.class"));
|
||||
Classfile.of().buildTo(
|
||||
classes.resolve("Z.class"),
|
||||
ClassDesc.of("0"), cb -> {
|
||||
for (ClassElement ce : cm) {
|
||||
cb.with(ce);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
List<String> log = new JavapTask(tb)
|
||||
.classpath(classes.toString())
|
||||
|
@ -238,4 +243,3 @@ public class TestClassNameWarning extends TestRunner {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue