Skip to content

Commit d9ad669

Browse files
cushonJavac Team
authored andcommitted
Use turbine's own class file parser in a test
To fix a test failure on JDK 22, which ASM doesn't support yet. PiperOrigin-RevId: 565784119
1 parent 4854e4e commit d9ad669

File tree

1 file changed

+27
-50
lines changed

1 file changed

+27
-50
lines changed

javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java

Lines changed: 27 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
import com.google.common.base.Splitter;
2424
import com.google.common.collect.ImmutableList;
2525
import com.google.common.collect.Streams;
26-
import org.objectweb.asm.Opcodes;
26+
import com.google.turbine.bytecode.ClassFile;
27+
import com.google.turbine.bytecode.ClassReader;
2728
import java.io.File;
2829
import java.io.IOException;
2930
import java.io.UncheckedIOException;
@@ -41,10 +42,6 @@
4142
import org.junit.Test;
4243
import org.junit.runner.RunWith;
4344
import org.junit.runners.JUnit4;
44-
import org.objectweb.asm.ClassReader;
45-
import org.objectweb.asm.ClassVisitor;
46-
import org.objectweb.asm.FieldVisitor;
47-
import org.objectweb.asm.MethodVisitor;
4845

4946
/**
5047
* Reads all field, class, and method signatures in the bootclasspath, and round-trips them through
@@ -92,51 +89,31 @@ public void roundTrip() throws Exception {
9289
forEachBootclass(
9390
path -> {
9491
try {
95-
new ClassReader(Files.newInputStream(path))
96-
.accept(
97-
new ClassVisitor(Opcodes.ASM9) {
98-
@Override
99-
public void visit(
100-
int version,
101-
int access,
102-
String name,
103-
String signature,
104-
String superName,
105-
String[] interfaces) {
106-
if (signature != null) {
107-
assertThat(SigWriter.classSig(new SigParser(signature).parseClassSig()))
108-
.isEqualTo(signature);
109-
totalSignatures[0]++;
110-
}
111-
}
112-
113-
@Override
114-
public FieldVisitor visitField(
115-
int access, String name, String desc, String signature, Object value) {
116-
if (signature != null) {
117-
assertThat(SigWriter.type(new SigParser(signature).parseFieldSig()))
118-
.isEqualTo(signature);
119-
totalSignatures[0]++;
120-
}
121-
return super.visitField(access, name, desc, signature, value);
122-
}
123-
124-
@Override
125-
public MethodVisitor visitMethod(
126-
int access,
127-
String name,
128-
String desc,
129-
String signature,
130-
String[] exceptions) {
131-
if (signature != null) {
132-
assertThat(SigWriter.method(new SigParser(signature).parseMethodSig()))
133-
.isEqualTo(signature);
134-
totalSignatures[0]++;
135-
}
136-
return super.visitMethod(access, name, desc, signature, exceptions);
137-
}
138-
},
139-
ClassReader.SKIP_CODE | ClassReader.SKIP_FRAMES | ClassReader.SKIP_DEBUG);
92+
ClassFile classFile = ClassReader.read(path.toString(), Files.readAllBytes(path));
93+
{
94+
String signature = classFile.signature();
95+
if (signature != null) {
96+
assertThat(SigWriter.classSig(new SigParser(signature).parseClassSig()))
97+
.isEqualTo(signature);
98+
totalSignatures[0]++;
99+
}
100+
}
101+
for (ClassFile.FieldInfo field : classFile.fields()) {
102+
String signature = field.signature();
103+
if (signature != null) {
104+
assertThat(SigWriter.type(new SigParser(signature).parseFieldSig()))
105+
.isEqualTo(signature);
106+
totalSignatures[0]++;
107+
}
108+
}
109+
for (ClassFile.MethodInfo method : classFile.methods()) {
110+
String signature = method.signature();
111+
if (signature != null) {
112+
assertThat(SigWriter.method(new SigParser(signature).parseMethodSig()))
113+
.isEqualTo(signature);
114+
totalSignatures[0]++;
115+
}
116+
}
140117
} catch (IOException e) {
141118
throw new UncheckedIOException(e);
142119
}

0 commit comments

Comments
 (0)