From 877d9e2ee85cfce2e13b6da3b45585dc23e743c6 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 1 Apr 2019 15:24:08 +0200 Subject: [PATCH] [tests] uses production ASM flags computing methods in instrumentation tests --- .../NotNullVerifyingInstrumenterTest.java | 4 +++- .../intellilang/instrumentation/PatternInstrumenterTest.kt | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/java/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java b/java/java-tests/testSrc/com/intellij/java/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java index 691cb3b46d93..861a4617149e 100644 --- a/java/java-tests/testSrc/com/intellij/java/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java +++ b/java/java-tests/testSrc/com/intellij/java/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java @@ -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()); diff --git a/plugins/IntelliLang/intellilang-jps-plugin/test/org/jetbrains/jps/intellilang/instrumentation/PatternInstrumenterTest.kt b/plugins/IntelliLang/intellilang-jps-plugin/test/org/jetbrains/jps/intellilang/instrumentation/PatternInstrumenterTest.kt index ccec31dcabcf..35dfd3ff389c 100644 --- a/plugins/IntelliLang/intellilang-jps-plugin/test/org/jetbrains/jps/intellilang/instrumentation/PatternInstrumenterTest.kt +++ b/plugins/IntelliLang/intellilang-jps-plugin/test/org/jetbrains/jps/intellilang/instrumentation/PatternInstrumenterTest.kt @@ -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()) }