8296645: org.openjdk.bench.javax.tools.Javac leaves class files in current directory
Reviewed-by: redestad, jpai
This commit is contained in:
parent
b27a61e624
commit
bd51b7ea43
@ -29,13 +29,19 @@ import org.openjdk.jmh.annotations.OutputTimeUnit;
|
||||
import org.openjdk.jmh.annotations.Scope;
|
||||
import org.openjdk.jmh.annotations.Setup;
|
||||
import org.openjdk.jmh.annotations.State;
|
||||
import org.openjdk.jmh.annotations.TearDown;
|
||||
|
||||
import javax.tools.JavaCompiler;
|
||||
import javax.tools.SimpleJavaFileObject;
|
||||
import javax.tools.StandardJavaFileManager;
|
||||
import javax.tools.StandardLocation;
|
||||
import javax.tools.ToolProvider;
|
||||
import java.io.IOException;
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@ -46,18 +52,35 @@ public class Javac {
|
||||
private List<JavaSourceFromString> compilationUnits;
|
||||
private JavaCompiler compiler;
|
||||
private StandardJavaFileManager fileManager;
|
||||
private File classOutputDir;
|
||||
|
||||
@Setup
|
||||
public void prepare() {
|
||||
public void prepare() throws IOException {
|
||||
String helloWorld = "class Apan { \n" + " public static void main(String args[]) {\n"
|
||||
+ " System.out.println(\"hej apa\");\n" + " }\n" + "}\n";
|
||||
|
||||
compiler = ToolProvider.getSystemJavaCompiler();
|
||||
|
||||
fileManager = compiler.getStandardFileManager(null, null, null);
|
||||
classOutputDir = Files.createTempDirectory(Javac.class.getName()).toFile();
|
||||
fileManager.setLocation(StandardLocation.CLASS_OUTPUT, Collections.singleton(classOutputDir));
|
||||
|
||||
compilationUnits = new ArrayList<>();
|
||||
compilationUnits.add(new JavaSourceFromString("Apan", helloWorld));
|
||||
}
|
||||
|
||||
@TearDown
|
||||
public void tearDown() {
|
||||
for (File f : classOutputDir.listFiles()) {
|
||||
if (f.isFile()) {
|
||||
f.delete();
|
||||
} else {
|
||||
throw new IllegalStateException("Unexpected non-file: " + f);
|
||||
}
|
||||
}
|
||||
classOutputDir.delete();
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public Boolean testCompile() throws Exception {
|
||||
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, null, null, compilationUnits);
|
||||
|
Loading…
x
Reference in New Issue
Block a user