JS test: check directives in MultipleModulesTranslationTest
This commit is contained in:
-10
@@ -16,10 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.test;
|
package org.jetbrains.kotlin.js.test;
|
||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsProgram;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
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 abstract class AbstractSingleFileTranslationWithDirectivesTest extends SingleFileTranslationTest {
|
||||||
public AbstractSingleFileTranslationWithDirectivesTest(@NotNull String main) {
|
public AbstractSingleFileTranslationWithDirectivesTest(@NotNull String main) {
|
||||||
@@ -30,11 +27,4 @@ public abstract class AbstractSingleFileTranslationWithDirectivesTest extends Si
|
|||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
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.MainCallParameters;
|
||||||
import org.jetbrains.kotlin.js.facade.TranslationResult;
|
import org.jetbrains.kotlin.js.facade.TranslationResult;
|
||||||
import org.jetbrains.kotlin.js.test.rhino.RhinoResultChecker;
|
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.test.utils.JsTestUtils;
|
||||||
import org.jetbrains.kotlin.js.translate.context.Namer;
|
import org.jetbrains.kotlin.js.translate.context.Namer;
|
||||||
import org.jetbrains.kotlin.psi.JetFile;
|
import org.jetbrains.kotlin.psi.JetFile;
|
||||||
@@ -195,12 +196,13 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
|||||||
if (!(translationResult instanceof TranslationResult.Success)) return;
|
if (!(translationResult instanceof TranslationResult.Success)) return;
|
||||||
|
|
||||||
TranslationResult.Success successResult = (TranslationResult.Success) translationResult;
|
TranslationResult.Success successResult = (TranslationResult.Success) translationResult;
|
||||||
processJsProgram(successResult.getProgram());
|
|
||||||
|
|
||||||
OutputFileCollection outputFiles = successResult.getOutputFiles(outputFile, getOutputPrefixFile(), getOutputPostfixFile());
|
OutputFileCollection outputFiles = successResult.getOutputFiles(outputFile, getOutputPrefixFile(), getOutputPostfixFile());
|
||||||
File outputDir = outputFile.getParentFile();
|
File outputDir = outputFile.getParentFile();
|
||||||
assert outputDir != null : "Parent file for output file should not be null, outputFilePath: " + outputFile.getPath();
|
assert outputDir != null : "Parent file for output file should not be null, outputFilePath: " + outputFile.getPath();
|
||||||
OutputUtilsPackage.writeAllTo(outputFiles, outputDir);
|
OutputUtilsPackage.writeAllTo(outputFiles, outputDir);
|
||||||
|
|
||||||
|
processJsProgram(successResult.getProgram(), jetFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected File getOutputPostfixFile() {
|
protected File getOutputPostfixFile() {
|
||||||
@@ -223,7 +225,12 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
|||||||
return false;
|
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(
|
protected void runRhinoTests(
|
||||||
@NotNull String testName,
|
@NotNull String testName,
|
||||||
|
|||||||
@@ -16,9 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.test
|
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.config.EcmaVersion
|
||||||
import org.jetbrains.kotlin.js.facade.MainCallParameters
|
import org.jetbrains.kotlin.js.facade.MainCallParameters
|
||||||
import org.jetbrains.kotlin.js.test.rhino.RhinoFunctionResultChecker
|
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.js.test.utils.JsTestUtils.getAllFilesInDir
|
||||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -61,7 +64,7 @@ public abstract class MultipleModulesTranslationTest(main: String) : BasicTest(m
|
|||||||
generateJavaScriptFiles(fullFilePaths, moduleDirectoryName, MainCallParameters.noCall(), version, moduleName, libraries)
|
generateJavaScriptFiles(fullFilePaths, moduleDirectoryName, MainCallParameters.noCall(), version, moduleName, libraries)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getMetaFileOutputPath(moduleDirectoryName: String, version: EcmaVersion) =
|
private fun getMetaFileOutputPath(moduleDirectoryName: String, version: EcmaVersion) =
|
||||||
KotlinJavascriptMetadataUtils.replaceSuffix(getOutputFilePath(moduleDirectoryName, version))
|
KotlinJavascriptMetadataUtils.replaceSuffix(getOutputFilePath(moduleDirectoryName, version))
|
||||||
|
|
||||||
|
|||||||
@@ -147,15 +147,4 @@ public final class InlineMultiFileTest extends MultipleFilesTranslationTest {
|
|||||||
public void testSimpleCapturingInPackage() throws Exception {
|
public void testSimpleCapturingInPackage() throws Exception {
|
||||||
checkFooBoxIsOk();
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user