diff --git a/compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java b/compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java index 8145851f12c..4250395412a 100644 --- a/compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java +++ b/compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java @@ -16,62 +16,27 @@ package org.jetbrains.jet.parsing; -import junit.framework.Test; +import com.intellij.openapi.util.io.FileUtil; import junit.framework.TestCase; -import junit.framework.TestSuite; import java.io.File; -import java.io.FileReader; -import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; -/** - * @author abreslav - */ -public class JetCodeConformanceTest extends TestCase { - public static Test suite() { - TestSuite suite = new TestSuite(); - TestSuite ats = new TestSuite("Side-effect-free at()'s in assertions"); - suite.addTest(ats); - File parsingSourceDir = new File("./compiler/frontend/src/org/jetbrains/jet/lang/parsing"); - for (File sourceFile : parsingSourceDir.listFiles()) { - if (sourceFile.getName().endsWith(".java")) { - ats.addTest(new JetCodeConformanceTest(sourceFile.getName(), sourceFile)); +public class JetCodeConformanceTest extends TestCase { + private static final Pattern JAVA_FILE_PATTERN = Pattern.compile(".+\\.java"); + + public void testParserCode() throws Exception { + for (File sourceFile : FileUtil.findFilesByMask(JAVA_FILE_PATTERN, new File("compiler/frontend/src/org/jetbrains/jet/lang/parsing"))) { + String source = FileUtil.loadFile(sourceFile); + + Pattern atPattern = Pattern.compile("assert.*?[^_]at.*?$", Pattern.MULTILINE); + Matcher matcher = atPattern.matcher(source); + + if (matcher.find()) { + fail("An at-method with side-effects is used inside assert: " + matcher.group() + "\nin file: " + sourceFile); } } - return suite; } - - private final File sourceFile; - - public JetCodeConformanceTest(String name, File sourceFile) { - super(name); - this.sourceFile = sourceFile; - } - - @Override - protected void runTest() throws Throwable { - checkSourceFile(sourceFile); - } - - private void checkSourceFile(File sourceFile) throws IOException { - FileReader reader = new FileReader(sourceFile); - StringBuilder builder = new StringBuilder(); - int c; - while ((c = reader.read()) >= 0) { - builder.append((char) c); - } - String source = builder.toString(); - - Pattern atPattern = Pattern.compile("assert.*?[^_]at.*?$", Pattern.MULTILINE); - Matcher matcher = atPattern.matcher(source); - boolean match = matcher.find(); - if (match) { - fail("An at-method with side-ffects is used inside assert: " + matcher.group()); - } - } - - }