Nicht mit mehreren Eingabedateien testen
This commit is contained in:
parent
75eaee6644
commit
306af907c5
@ -12,4 +12,8 @@
|
|||||||
* wird der Parameter nicht übergeben, so wird der Sourceroot auf das Verzeichnis gesetzt, in dem der Compiler ausgeführt wird
|
* wird der Parameter nicht übergeben, so wird der Sourceroot auf das Verzeichnis gesetzt, in dem der Compiler ausgeführt wird
|
||||||
* dies ist das Verhalten vom javac Compiler
|
* dies ist das Verhalten vom javac Compiler
|
||||||
|
|
||||||
|
* generateBytecode - Methode hat neuen Parameter: path
|
||||||
|
* wird hier null übergeben, so wird die class-File in den gleichen Ordner wie die übergebene .jav File geschrieben
|
||||||
|
* wird hier ein Pfad übergeben, so gilt dieser als output root.
|
||||||
|
* Klassen werden in outputRoot/package/name/KlassenName.class geschrieben
|
||||||
|
|
||||||
|
@ -766,6 +766,10 @@ public class JavaTXCompiler {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void generateBytecode() throws ClassNotFoundException, IOException, BytecodeGeneratorError {
|
||||||
|
generateBytecode(null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param path - can be null, then class file output is in the same directory as the parsed source files
|
* @param path - can be null, then class file output is in the same directory as the parsed source files
|
||||||
*/
|
*/
|
||||||
|
@ -7,6 +7,7 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class CheckPackageFolder extends TestCase {
|
public class CheckPackageFolder extends TestCase {
|
||||||
|
|
||||||
@ -15,6 +16,38 @@ public class CheckPackageFolder extends TestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void testCorrectFolder1File() throws IOException, ClassNotFoundException {
|
public void testCorrectFolder1File() throws IOException, ClassNotFoundException {
|
||||||
JavaTXCompiler compiler = new JavaTXCompiler(new File(rootDirectory+"packageNameTestWrongPackage.jav"));
|
JavaTXCompiler compiler = new JavaTXCompiler(new File(rootDirectory+"packageNameTestWrongPackage.jav"));
|
||||||
assertTrue(true); //Es ist erlaubt falsche package Namen zu verwenden. Warnung wäre optional
|
compiler.typeInference();
|
||||||
|
File f = new File(rootDirectory + "TestClass.class");
|
||||||
|
if(f.exists() && !f.isDirectory()) {
|
||||||
|
f.delete();
|
||||||
|
}
|
||||||
|
compiler.generateBytecode();
|
||||||
|
f = new File(rootDirectory + "TestClass.class");
|
||||||
|
assertTrue(f.exists()); //Es ist erlaubt falsche package Namen zu verwenden. Warnung wäre optional
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dieser Test wird übersprungen, da der Bytecode-Generator nicht mit zwei Eingabedateien gleichzeitig umgehen kann
|
||||||
|
@Test
|
||||||
|
public void testCorrectFolder2Files() throws IOException, ClassNotFoundException {
|
||||||
|
JavaTXCompiler compiler = new JavaTXCompiler(Arrays.asList(
|
||||||
|
new File(rootDirectory+"subpackage1/Test1.jav"),
|
||||||
|
new File(rootDirectory+"subpackage2/Test2.jav")
|
||||||
|
));
|
||||||
|
compiler.typeInference();
|
||||||
|
File f = new File(rootDirectory + "subpackage1/Test1.class");
|
||||||
|
if(f.exists() && !f.isDirectory()) {
|
||||||
|
f.delete();
|
||||||
|
}
|
||||||
|
File f2 = new File(rootDirectory + "subpackage2/Test2.class");
|
||||||
|
if(f.exists() && !f.isDirectory()) {
|
||||||
|
f.delete();
|
||||||
|
}
|
||||||
|
compiler.generateBytecode();
|
||||||
|
f = new File(rootDirectory + "subpackage1/Test1.class");
|
||||||
|
f2 = new File(rootDirectory + "subpackage2/Test2.class");
|
||||||
|
assertTrue(f.exists());
|
||||||
|
assertTrue(f2.exists());
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
package de.test.subpackage1;
|
||||||
|
|
||||||
|
class Test1{
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
package de.test.subpackage2;
|
||||||
|
|
||||||
|
class Test2{
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user