[tests] uses production ASM flags computing methods in instrumentation tests

This commit is contained in:
Roman Shevchenko
2019-04-01 15:24:33 +02:00
parent bb21daaa8d
commit 877d9e2ee8
2 changed files with 6 additions and 3 deletions
@@ -4,6 +4,7 @@ package com.intellij.java.compiler.notNullVerification;
import com.intellij.JavaTestUtil;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.compiler.instrumentation.FailSafeClassReader;
import com.intellij.compiler.instrumentation.InstrumenterClassWriter;
import com.intellij.compiler.notNullVerification.NotNullVerifyingInstrumenter;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.io.IoTestUtil;
@@ -411,7 +412,8 @@ public abstract class NotNullVerifyingInstrumenterTest {
Class mainClass = null;
for (File file: files) {
FailSafeClassReader reader = new FailSafeClassReader(FileUtil.loadFileBytes(file));
ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_FRAMES);
int flags = InstrumenterClassWriter.getAsmClassWriterFlags(InstrumenterClassWriter.getClassFileVersion(reader));
ClassWriter writer = new ClassWriter(reader, flags);
modified |= NotNullVerifyingInstrumenter.processClassFile(reader, writer, notNullAnnotations);
String className = FileUtil.getNameWithoutExtension(file.getName());
Class aClass = classLoader.doDefineClass(className, writer.toByteArray());
@@ -1,4 +1,4 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.jps.intellilang.instrumentation
import com.intellij.compiler.instrumentation.FailSafeClassReader
@@ -156,7 +156,8 @@ class PatternInstrumenterTest {
val loader = MyClassLoader()
classesDir.listFiles().sorted().forEach {
val reader = FailSafeClassReader(it.readBytes())
val writer = InstrumenterClassWriter(reader, ClassWriter.COMPUTE_FRAMES, finder)
val flags = InstrumenterClassWriter.getAsmClassWriterFlags(InstrumenterClassWriter.getClassFileVersion(reader))
val writer = InstrumenterClassWriter(reader, flags, finder)
modified = modified or PatternValidatorBuilder.processClassFile(reader, writer, finder, Pattern::class.java.name, type)
loader.createClass(it.nameWithoutExtension, writer.toByteArray())
}