From 9bb64f03b39940ae5ed4bc89a4dc3fd4627f8e65 Mon Sep 17 00:00:00 2001 From: Peter Ebden Date: Mon, 9 Jan 2017 09:08:13 +0000 Subject: [PATCH] In-repo test on src_dir, also fix --- test/java_rules/BUILD | 14 ++++++++++++++ .../src/build/please/java/test/SrcDirLib.java | 7 +++++++ .../test/build/please/java/test/SrcDirTest.java | 11 +++++++++++ .../src/build/please/compile/JavaCompiler.java | 8 +++++--- 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 test/java_rules/BUILD create mode 100644 test/java_rules/src/build/please/java/test/SrcDirLib.java create mode 100644 test/java_rules/test/build/please/java/test/SrcDirTest.java diff --git a/test/java_rules/BUILD b/test/java_rules/BUILD new file mode 100644 index 0000000000..779869f743 --- /dev/null +++ b/test/java_rules/BUILD @@ -0,0 +1,14 @@ +# Test for java_library rules using src_dir +java_library( + name = 'src_dir_lib', + src_dir = 'src', +) + +java_test( + name = 'src_dir_test', + srcs = ['test/build/please/java/test/SrcDirTest.java'], + deps = [ + ':src_dir_lib', + '//third_party/java:junit', + ], +) diff --git a/test/java_rules/src/build/please/java/test/SrcDirLib.java b/test/java_rules/src/build/please/java/test/SrcDirLib.java new file mode 100644 index 0000000000..6f59d4aa42 --- /dev/null +++ b/test/java_rules/src/build/please/java/test/SrcDirLib.java @@ -0,0 +1,7 @@ +package build.please.java.test; + +public class SrcDirLib { + public static int WhatDoYouGetWhenYouMultiply(int a, int b) { + return a == 6 && b == 9 ? 42 : a * b; + } +} diff --git a/test/java_rules/test/build/please/java/test/SrcDirTest.java b/test/java_rules/test/build/please/java/test/SrcDirTest.java new file mode 100644 index 0000000000..94f3c287e7 --- /dev/null +++ b/test/java_rules/test/build/please/java/test/SrcDirTest.java @@ -0,0 +1,11 @@ +package build.please.java.test; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +public class SrcDirTest { + @Test + public void TestTheAnswer() { + assertEquals(42, SrcDirLib.WhatDoYouGetWhenYouMultiply(6, 9)); + } +} diff --git a/tools/javac_worker/src/build/please/compile/JavaCompiler.java b/tools/javac_worker/src/build/please/compile/JavaCompiler.java index 8d9c0bc28c..3899c5a97c 100644 --- a/tools/javac_worker/src/build/please/compile/JavaCompiler.java +++ b/tools/javac_worker/src/build/please/compile/JavaCompiler.java @@ -16,7 +16,7 @@ import javax.tools.ToolProvider; import build.please.worker.WorkerProto.BuildRequest; -import build.please.worker.WorkerProto.BuildResponse;; +import build.please.worker.WorkerProto.BuildResponse; public class JavaCompiler { /** @@ -69,7 +69,7 @@ private void readStdin(byte[] b) throws IOException { /** * build handles building a single build rule. */ - public BuildResponse build(BuildRequest request) { + public BuildResponse build(BuildRequest request) throws IOException { try { return reallyBuild(request); } catch (Exception ex) { @@ -101,7 +101,7 @@ private BuildResponse reallyBuild(BuildRequest request) throws IOException { for (String src : request.getSrcsList()) { srcs.add(src.startsWith("/") ? src : request.getTempDir() + "/" + src); } - Iterable compilationUnits = fileManager.getJavaFileObjectsFromStrings(srcs); + Iterable compilationUnits; ArrayList opts = new ArrayList(); opts.addAll(Arrays.asList( "-d", tmpDir, @@ -114,6 +114,8 @@ private BuildResponse reallyBuild(BuildRequest request) throws IOException { FileFinder finder = new FileFinder(".java"); Files.walkFileTree(new File(request.getTempDir() + "/" + request.getSrcs(0)).toPath(), finder); compilationUnits = fileManager.getJavaFileObjectsFromStrings(finder.getFiles()); + } else { + compilationUnits = fileManager.getJavaFileObjectsFromStrings(srcs); } // Find any .jar files and add them to the classpath FileFinder finder = new FileFinder(".jar");