Don't test line numbers on *Package classes
Package classes in line number tests only contain "1" as the first line number of a single function, so there's no point in testing it. The test was failing due to the latest changes in the order of generation of classfiles (first $src, then facade)
This commit is contained in:
committed by
Pavel V. Talanov
parent
f77dd0bad6
commit
9cb19d17b0
@@ -29,7 +29,6 @@ import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.parsing.JetParsingTest;
|
||||
@@ -51,7 +50,7 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
private static final Pattern TEST_LINE_NUMBER_PATTERN = Pattern.compile("^.*test." + LINE_NUMBER_FUN + "\\(\\).*$");
|
||||
|
||||
@NotNull
|
||||
private String getTestDataPath() {
|
||||
private static String getTestDataPath() {
|
||||
return JetParsingTest.getTestDataDir() + "/lineNumber";
|
||||
}
|
||||
|
||||
@@ -94,7 +93,8 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
JetFile psiFile = createPsiFile(filename);
|
||||
GenerationState state = GenerationUtils.compileFileGetGenerationStateForTest(psiFile);
|
||||
|
||||
List<Integer> expectedLineNumbers, actualLineNumbers;
|
||||
List<Integer> expectedLineNumbers;
|
||||
List<Integer> actualLineNumbers;
|
||||
if (custom) {
|
||||
expectedLineNumbers = extractCustomLineNumbersFromSource(psiFile);
|
||||
actualLineNumbers = extractActualLineNumbersFromBytecode(state, false);
|
||||
@@ -109,10 +109,14 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<Integer> extractActualLineNumbersFromBytecode(@NotNull GenerationState state, boolean testFunInvoke) {
|
||||
private static List<Integer> extractActualLineNumbersFromBytecode(@NotNull GenerationState state, boolean testFunInvoke) {
|
||||
ClassFileFactory factory = state.getFactory();
|
||||
List<Integer> actualLineNumbers = Lists.newArrayList();
|
||||
for (String filename : factory.files()) {
|
||||
if (PackageClassUtils.isPackageClassFqName(new FqName(FileUtil.getNameWithoutExtension(filename)))) {
|
||||
// Don't test line numbers in *Package facade classes
|
||||
continue;
|
||||
}
|
||||
ClassReader cr = new ClassReader(factory.asBytes(filename));
|
||||
try {
|
||||
List<Integer> lineNumbers = testFunInvoke ? readTestFunLineNumbers(cr) : readAllLineNumbers(cr);
|
||||
@@ -136,7 +140,7 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<Integer> extractCustomLineNumbersFromSource(@NotNull JetFile file) {
|
||||
private static List<Integer> extractCustomLineNumbersFromSource(@NotNull JetFile file) {
|
||||
String fileContent = file.getText();
|
||||
List<Integer> lineNumbers = Lists.newArrayList();
|
||||
String[] lines = StringUtil.convertLineSeparators(fileContent).split("\n");
|
||||
@@ -154,7 +158,7 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<Integer> extractSelectedLineNumbersFromSource(@NotNull JetFile file) {
|
||||
private static List<Integer> extractSelectedLineNumbersFromSource(@NotNull JetFile file) {
|
||||
String fileContent = file.getText();
|
||||
List<Integer> lineNumbers = Lists.newArrayList();
|
||||
String[] lines = StringUtil.convertLineSeparators(fileContent).split("\n");
|
||||
@@ -170,7 +174,7 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<Integer> readTestFunLineNumbers(@NotNull ClassReader cr) {
|
||||
private static List<Integer> readTestFunLineNumbers(@NotNull ClassReader cr) {
|
||||
final List<Label> labels = Lists.newArrayList();
|
||||
final Map<Label, Integer> labels2LineNumbers = Maps.newHashMap();
|
||||
|
||||
@@ -215,7 +219,7 @@ public class LineNumberTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<Integer> readAllLineNumbers(@NotNull ClassReader reader) {
|
||||
private static List<Integer> readAllLineNumbers(@NotNull ClassReader reader) {
|
||||
final List<Integer> result = new ArrayList<Integer>();
|
||||
reader.accept(new ClassVisitor(Opcodes.ASM4) {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user