From 89387d27184bc56b9df12fcb8e0e121eaacb1f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Pl=C3=BCmicke?= Date: Mon, 6 Aug 2018 10:03:03 +0200 Subject: [PATCH] new file: ../../test/bytecode/MergeTest.java new file: ../../test/bytecode/javFiles/Merge.jav --- test/bytecode/MergeTest.java | 39 ++++++++++++++++++++++++++++++++ test/bytecode/javFiles/Merge.jav | 17 ++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 test/bytecode/MergeTest.java create mode 100644 test/bytecode/javFiles/Merge.jav diff --git a/test/bytecode/MergeTest.java b/test/bytecode/MergeTest.java new file mode 100644 index 00000000..c4da52ce --- /dev/null +++ b/test/bytecode/MergeTest.java @@ -0,0 +1,39 @@ +package bytecode; + +import static org.junit.Assert.assertEquals; + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import org.junit.Test; + +import de.dhbwstuttgart.core.JavaTXCompiler; + +public class MergeTest { + private static String path; + private static File fileToTest; + private static JavaTXCompiler compiler; + private static ClassLoader loader; + private static Class classToTest; + private static String pathToClassFile; + private static Object instanceOfClass; + + @Test + public void generateBC() throws Exception { + path = System.getProperty("user.dir")+"/test/bytecode/javFiles/Merge.jav"; + fileToTest = new File(path); + compiler = new JavaTXCompiler(fileToTest); + compiler.generateBytecode(System.getProperty("user.dir")+"/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; + loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); + classToTest = loader.loadClass("Merge"); + //instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); + + //Method m = classToTest.getDeclaredMethod("m"); + //Object result = m.invoke(instanceOfClass); + + //assertEquals(result.getClass(), loader.loadClass("Apply")); + } +} diff --git a/test/bytecode/javFiles/Merge.jav b/test/bytecode/javFiles/Merge.jav new file mode 100644 index 00000000..0c50b443 --- /dev/null +++ b/test/bytecode/javFiles/Merge.jav @@ -0,0 +1,17 @@ +import java.util.List; +import java.lang.Integer; +import java.util.Collection; + +class Merge { + +merge(a, b) { + a.addAll(b); + return a; + } + + sort(in){ + var firstHalf = in.subList(1,2); + var secondHalf = in.subList(1,2); + return merge(sort(firstHalf), sort(secondHalf)); + } +} \ No newline at end of file