JS test: check directives in MultipleModulesTranslationTest

This commit is contained in:
Alexey Tsvetkov
2015-05-20 15:46:03 +03:00
parent f214c4eac7
commit 115798f584
4 changed files with 13 additions and 24 deletions
@@ -16,10 +16,7 @@
package org.jetbrains.kotlin.js.test;
import com.google.dart.compiler.backend.js.ast.JsProgram;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.js.test.utils.DirectiveTestUtils;
import org.jetbrains.kotlin.js.test.utils.JsTestUtils;
public abstract class AbstractSingleFileTranslationWithDirectivesTest extends SingleFileTranslationTest {
public AbstractSingleFileTranslationWithDirectivesTest(@NotNull String main) {
@@ -30,11 +27,4 @@ public abstract class AbstractSingleFileTranslationWithDirectivesTest extends Si
public void setUp() throws Exception {
super.setUp();
}
@Override
protected void processJsProgram(@NotNull JsProgram program) throws Exception {
String fileName = getInputFilePath(getTestName(true) + ".kt");
String fileText = JsTestUtils.readFile(fileName);
DirectiveTestUtils.processDirectives(program, fileText);
}
}
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters;
import org.jetbrains.kotlin.js.facade.TranslationResult;
import org.jetbrains.kotlin.js.test.rhino.RhinoResultChecker;
import org.jetbrains.kotlin.js.test.utils.DirectiveTestUtils;
import org.jetbrains.kotlin.js.test.utils.JsTestUtils;
import org.jetbrains.kotlin.js.translate.context.Namer;
import org.jetbrains.kotlin.psi.JetFile;
@@ -195,12 +196,13 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
if (!(translationResult instanceof TranslationResult.Success)) return;
TranslationResult.Success successResult = (TranslationResult.Success) translationResult;
processJsProgram(successResult.getProgram());
OutputFileCollection outputFiles = successResult.getOutputFiles(outputFile, getOutputPrefixFile(), getOutputPostfixFile());
File outputDir = outputFile.getParentFile();
assert outputDir != null : "Parent file for output file should not be null, outputFilePath: " + outputFile.getPath();
OutputUtilsPackage.writeAllTo(outputFiles, outputDir);
processJsProgram(successResult.getProgram(), jetFiles);
}
protected File getOutputPostfixFile() {
@@ -223,7 +225,12 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
return false;
}
protected void processJsProgram(@NotNull JsProgram program) throws Exception { }
protected void processJsProgram(@NotNull JsProgram program, @NotNull List<JetFile> jetFiles) throws Exception {
for (JetFile file : jetFiles) {
String text = file.getText();
DirectiveTestUtils.processDirectives(program, text);
}
}
protected void runRhinoTests(
@NotNull String testName,
@@ -16,9 +16,12 @@
package org.jetbrains.kotlin.js.test
import com.google.dart.compiler.backend.js.ast.JsProgram
import org.jetbrains.kotlin.js.config.EcmaVersion
import org.jetbrains.kotlin.js.facade.MainCallParameters
import org.jetbrains.kotlin.js.test.rhino.RhinoFunctionResultChecker
import org.jetbrains.kotlin.js.test.utils.DirectiveTestUtils
import org.jetbrains.kotlin.js.test.utils.JsTestUtils
import org.jetbrains.kotlin.js.test.utils.JsTestUtils.getAllFilesInDir
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
import java.io.File
@@ -61,7 +64,7 @@ public abstract class MultipleModulesTranslationTest(main: String) : BasicTest(m
generateJavaScriptFiles(fullFilePaths, moduleDirectoryName, MainCallParameters.noCall(), version, moduleName, libraries)
}
}
private fun getMetaFileOutputPath(moduleDirectoryName: String, version: EcmaVersion) =
KotlinJavascriptMetadataUtils.replaceSuffix(getOutputFilePath(moduleDirectoryName, version))
@@ -147,15 +147,4 @@ public final class InlineMultiFileTest extends MultipleFilesTranslationTest {
public void testSimpleCapturingInPackage() throws Exception {
checkFooBoxIsOk();
}
@Override
protected void processJsProgram(@NotNull JsProgram program) throws Exception {
String dir = getTestName(true);
List<String> fileNames = getAllFilesInDir(getInputFilePath(dir));
for (String fileName : fileNames) {
String fileText = JsTestUtils.readFile(fileName);
DirectiveTestUtils.processDirectives(program, fileText);
}
}
}