mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
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
1 changed files with 24 additions and 1 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue