use of org.eclipse.n4js.cli.helper.CliTools in project n4js by eclipse.
the class XtIdeTest method generated_dts.
/**
* Compares the content of the generated .d.ts file with the expectation string.
*
* <pre>
* // XPECT generated_dts ---
* <EXPECTED CONTENT OF GENERATED D.TS FILE>
* // ---
* </pre>
*/
@Xpect
public void generated_dts(XtMethodData data) throws IOException {
String moduleName = xtData.workspace.moduleNameOfXtFile;
int idxStart = Math.max(moduleName.lastIndexOf("/") + 1, 0);
int idxEnd = moduleName.lastIndexOf(".");
String genDtsFileName = moduleName.substring(idxStart, idxEnd) + ".d.ts";
try {
FileURI genDtsFileURI = getFileURIFromModuleName(genDtsFileName);
String genDtsCode = Files.readString(genDtsFileURI.toPath());
assertTrue(genDtsCode.startsWith(OUTPUT_FILE_PREAMBLE));
String genDtsCodeTrimmedPreamble = genDtsCode.substring(OUTPUT_FILE_PREAMBLE.length()).trim();
assertTrue(genDtsCodeTrimmedPreamble.startsWith(IMPORT_N4JSGLOBALS));
String genDtsCodeTrimmed = genDtsCodeTrimmedPreamble.substring(IMPORT_N4JSGLOBALS.length()).trim();
assertEquals(data.getUnescapeExpectationRaw(), genDtsCodeTrimmed);
CliTools cliTools = new CliTools();
ensureTSC(cliTools);
List<Project> allProjectsWithGenerateDts = FluentIterable.from(xtData.workspace.getAllProjects()).filter(Project::isGenerateDts).toList();
assertFalse("no projects found with .d.ts generation turned on", allProjectsWithGenerateDts.isEmpty());
for (Project project : allProjectsWithGenerateDts) {
File workingDir = getProjectRoot(project.getName());
// copy n4jsglobals.d.ts to output dir to make d.ts globals available
Path n4jsGlobalsDTS = N4jsLibsAccess.getN4JSGlobalsDTS();
Files.copy(n4jsGlobalsDTS, workingDir.toPath().resolve("src-gen/n4jsglobals.d.ts"));
ProcessResult result;
try {
result = cliTools.nodejsRun(workingDir.toPath(), TSC2.getAbsoluteFile().toPath());
} catch (CliException e) {
throw new AssertionError("error while running tsc in working directory: " + workingDir, e);
}
assertFalse("TypeScript Error: " + result.getStdOut(), result.getStdOut().contains(": error "));
}
} catch (IllegalStateException e) {
throw new RuntimeException("Could not find file " + genDtsFileName + "\nDid you set: " + XtSetupParser.GENERATE_DTS + " in SETUP section?", e);
}
}
use of org.eclipse.n4js.cli.helper.CliTools in project n4js by eclipse.
the class NodeVersionTest method testNodeVersion.
/**
*/
@Test
public void testNodeVersion() {
Path cwd = new File("").toPath().toAbsolutePath();
ProcessResult result = new CliTools().nodejsRun(cwd, Path.of("-v"));
Assert.assertEquals("bad exit code", 0, result.getExitCode());
String versionStr = result.getStdOut().trim();
if (!N4JSGlobals.isCompatibleNodeVersion(versionStr)) {
Assert.fail("tests are running with node version " + versionStr + " but this version is not compatible to version v" + N4JSGlobals.NODE_VERSION + " defined in " + N4JSGlobals.class.getSimpleName());
}
}
use of org.eclipse.n4js.cli.helper.CliTools in project n4js by eclipse.
the class ConvertedIdeTest method runMangelhaft.
/**
* Executes mangelhaft for the given output file. The {@code outputFilePath} should be a relative path from the
* project's root folder.
*/
protected String runMangelhaft(String projectName, Optional<String> outputFilePath, boolean quiet) {
File workingDir = getProjectRootForImportedProject(projectName);
List<String> args = new ArrayList<>();
if (quiet) {
args.add("-q");
}
if (outputFilePath.isPresent()) {
args.add("-f");
args.add("/" + outputFilePath.get() + "/");
}
ProcessResult result = new CliTools().nodejsRun(workingDir.toPath(), Path.of("../../node_modules/n4js-mangelhaft-cli/src-gen/org/eclipse/n4js/mangelhaft/runner/node/NodeTestMain.js"), args.toArray(String[]::new));
String output = result.getStdOut();
output = output.replaceAll("\\e\\[\\d+m", "");
return output;
}
use of org.eclipse.n4js.cli.helper.CliTools in project n4js by eclipse.
the class XpectN4JSES5TranspilerHelper method doExecute.
private String doExecute(Path workingDir, Path fileToRun, boolean decorateStdStreams, String... options) {
ProcessResult processResult = new CliTools().nodejsRun(workingDir, fileToRun, options);
StringBuffer output = new StringBuffer();
output.append(processResult.getStdOut().trim());
String errOut = processResult.getErrOut().trim();
if (!errOut.isEmpty()) {
if (decorateStdStreams) {
output.append("=== stderr ===");
}
output.append(errOut);
}
return output.toString();
}
use of org.eclipse.n4js.cli.helper.CliTools in project n4js by eclipse.
the class BuildN4jsLibs method bundleN4jsRuntime.
private static void bundleN4jsRuntime(Path n4jsLibsRootPath) {
CliTools cliTools = new CliTools();
cliTools.setInheritIO(true);
cliTools.yarnRun(n4jsLibsRootPath, "workspace", "n4js-runtime", "run", "bundle");
}
Aggregations