Add tests and fix for package name override.

This commit is contained in:
A Pottinger
2019-10-13 14:37:15 -07:00
parent d57b4ac61b
commit 1fc326383e
5 changed files with 65 additions and 11 deletions

View File

@@ -88,8 +88,12 @@ public class ParserTests {
}
static void expectGood(final String id, boolean ignoreWhitespace) {
expectGood(id, ignoreWhitespace, Optional.empty());
}
static void expectGood(final String id, boolean ignoreWhitespace, Optional<String> packageName) {
try {
final String program = preprocess(id, res(id + ".pde"));
final String program = preprocess(id, res(id + ".pde"), packageName);
boolean successful = compile(id, program);
if (successful) {
System.err.println("----------------------------");
@@ -368,6 +372,11 @@ public class ParserTests {
expectGood("typeinference");
}
@Test
public void testPackage() {
expectGood("packageTest", true, Optional.of("test.subtest"));
}
private static boolean compile(String id, String program) {
// Create compilable AST to get syntax problems
CompilationUnit compilableCU = JdtCompilerUtil.makeAST(

View File

@@ -5,6 +5,8 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.util.Optional;
import processing.app.Preferences;
import processing.app.SketchException;
import processing.mode.java.preproc.PdePreprocessor;
@@ -37,13 +39,23 @@ public class ProcessingTestUtil {
static String preprocess(final String name, final File resource)
throws SketchException {
return preprocess(name, resource, Optional.empty());
}
static String preprocess(final String name, final File resource, Optional<String> optionalPackage)
throws SketchException {
final String program = read(resource);
final StringWriter out = new StringWriter();
PdePreprocessor preprocessor = PdePreprocessor.builderFor(name)
.setTabSize(4)
.setIsTesting(true)
.build();
PdePreprocessor.PdePreprocessorBuilder builder = PdePreprocessor.builderFor(name);
builder.setTabSize(4);
builder.setIsTesting(true);
if (optionalPackage.isPresent()) {
builder.setDestinationPackage(optionalPackage.get());
}
PdePreprocessor preprocessor = builder.build();
PreprocessorResult result = preprocessor.write(out, program);

View File

@@ -0,0 +1,33 @@
package test.subtest;
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;
import java.util.*;
import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class packageTest extends PApplet {
public void setup() {
List<String> test = new ArrayList<>();
noLoop();
}
static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "packageTest" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}