From 83a04e6309213d8cb813b298b71de62d4bb05d58 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Mon, 25 Feb 2019 09:59:53 +0100 Subject: [PATCH] move first test to gradle --- build.gradle | 5 +- src/main/resources/log4j2.xml | 13 +++ src/test/jastadd/errors/.gitignore | 1 + .../test/jastadd}/errors/Errors.expected | 0 .../test/jastadd}/errors/Errors.relast | 0 .../test/jastadd}/errors/Inheritance.expected | 0 .../test/jastadd}/errors/Inheritance.relast | 0 .../jastadd/relast/tests/errors/Errors.java | 95 +++++++++++++++++++ tests/errors/.gitignore | 1 - tests/errors/Makefile | 14 --- 10 files changed, 112 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/log4j2.xml create mode 100644 src/test/jastadd/errors/.gitignore rename {tests => src/test/jastadd}/errors/Errors.expected (100%) rename {tests => src/test/jastadd}/errors/Errors.relast (100%) rename {tests => src/test/jastadd}/errors/Inheritance.expected (100%) rename {tests => src/test/jastadd}/errors/Inheritance.relast (100%) create mode 100644 src/test/java/org/jastadd/relast/tests/errors/Errors.java delete mode 100644 tests/errors/.gitignore delete mode 100644 tests/errors/Makefile diff --git a/build.gradle b/build.gradle index ba5ae26..3151c06 100644 --- a/build.gradle +++ b/build.gradle @@ -22,8 +22,8 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.0' compile group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' -// compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0' -// compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0' + compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0' + compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0' } sourceSets { @@ -100,5 +100,6 @@ jastadd { test { + outputs.upToDateWhen { false } useJUnitPlatform() } \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..98cfd73 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="INFO"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> + </Console> + </Appenders> + <Loggers> + <Root level="info"> + <AppenderRef ref="Console"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/src/test/jastadd/errors/.gitignore b/src/test/jastadd/errors/.gitignore new file mode 100644 index 0000000..fa92975 --- /dev/null +++ b/src/test/jastadd/errors/.gitignore @@ -0,0 +1 @@ +*.out \ No newline at end of file diff --git a/tests/errors/Errors.expected b/src/test/jastadd/errors/Errors.expected similarity index 100% rename from tests/errors/Errors.expected rename to src/test/jastadd/errors/Errors.expected diff --git a/tests/errors/Errors.relast b/src/test/jastadd/errors/Errors.relast similarity index 100% rename from tests/errors/Errors.relast rename to src/test/jastadd/errors/Errors.relast diff --git a/tests/errors/Inheritance.expected b/src/test/jastadd/errors/Inheritance.expected similarity index 100% rename from tests/errors/Inheritance.expected rename to src/test/jastadd/errors/Inheritance.expected diff --git a/tests/errors/Inheritance.relast b/src/test/jastadd/errors/Inheritance.relast similarity index 100% rename from tests/errors/Inheritance.relast rename to src/test/jastadd/errors/Inheritance.relast diff --git a/src/test/java/org/jastadd/relast/tests/errors/Errors.java b/src/test/java/org/jastadd/relast/tests/errors/Errors.java new file mode 100644 index 0000000..67d005a --- /dev/null +++ b/src/test/java/org/jastadd/relast/tests/errors/Errors.java @@ -0,0 +1,95 @@ +package org.jastadd.relast.tests.errors; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jastadd.relast.compiler.Compiler; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Paths; + + +public class Errors { + + private static final Logger logger = LogManager.getLogger(Errors.class); + + static String readFile(String path, Charset encoding) + throws IOException { + byte[] encoded = Files.readAllBytes(Paths.get(path)); + return new String(encoded, encoding); + } + + static int exec(Class klass, String[] args, File err) throws IOException, + InterruptedException { + String javaHome = System.getProperty("java.home"); + String javaBin = javaHome + File.separator + "bin" + File.separator + "java"; + String classpath = System.getProperty("java.class.path"); + String className = klass.getName(); + + String[] newArgs = new String[args.length + 4]; + newArgs[0] = javaBin; + newArgs[1] = "-cp"; + newArgs[2] = classpath; + newArgs[3] = className; + System.arraycopy(args, 0, newArgs, 4, args.length); + + ProcessBuilder builder = new ProcessBuilder(newArgs); + builder.redirectError(err); + + Process process = builder.start(); + process.waitFor(); + return process.exitValue(); + } + + @Test + void test1() throws IOException { + + String inFile = "./src/test/jastadd/errors/Errors.relast"; + String outFile = "./src/test/jastadd/errors/Errors.out"; + String expectedFile = "./src/test/jastadd/errors/Errors.expected"; + + try { + System.out.println(System.getProperty("user.dir")); + int returnValue = exec(Compiler.class, new String[]{inFile}, new File(outFile)); + Assertions.assertEquals(1, returnValue, "Relast did not return with value 1"); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + String out = readFile(outFile, Charset.defaultCharset()); + String expected = readFile(expectedFile, Charset.defaultCharset()); + + Assertions.assertEquals(out, expected); + + logger.info("'relast Errors.relast' returned \n{}", out); + } + + @Test + void test2() throws IOException { + + String inFile = "./src/test/jastadd/errors/Inheritance.relast"; + String outFile = "./src/test/jastadd/errors/Inheritance.out"; + String expectedFile = "./src/test/jastadd/errors/Inheritance.expected"; + + try { + System.out.println(System.getProperty("user.dir")); + int returnValue = exec(Compiler.class, new String[]{inFile}, new File(outFile)); + Assertions.assertEquals(1, returnValue, "Relast did not return with value 1"); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + String out = readFile(outFile, Charset.defaultCharset()); + String expected = readFile(expectedFile, Charset.defaultCharset()); + + Assertions.assertEquals(out, expected); + + logger.info("'relast Inheritance.relast' returned \n{}", out); + } + + +} diff --git a/tests/errors/.gitignore b/tests/errors/.gitignore deleted file mode 100644 index e87afd9..0000000 --- a/tests/errors/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/*.out diff --git a/tests/errors/Makefile b/tests/errors/Makefile deleted file mode 100644 index 11d492d..0000000 --- a/tests/errors/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: build-jar test - -build-jar: - (cd ../../ && ./gradlew jar) -test: - java -jar ../../build/libs/relast.jar Errors.relast 2> Errors.out || true - diff Errors.out Errors.expected - - java -jar ../../build/libs/relast.jar Inheritance.relast 2> Inheritance.out || true - diff Inheritance.out Inheritance.expected - - @echo "#" - @echo "# ERROR TESTS OK" - @echo "#" -- GitLab