aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/py
diff options
context:
space:
mode:
authorGravatar Laszlo Csomor <laszlocsomor@google.com>2018-02-06 09:30:16 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-06 09:32:07 -0800
commita5ff30ae5259558681ffcb6bc57baeb6f0b3e171 (patch)
treef59c10b0309e7576c1bd8e3501088f42ab07074c /src/test/py
parentac8eb42c3687906f6758cdaee23f7321b4be22ad (diff)
runfiles test: extract mock Java code to a file
Move the mock java file in //src/test/py/bazel:runfiles_test to an actual file in the source tree. This change makes the test more readable, and the file more easily discoverable. See https://github.com/bazelbuild/bazel/issues/4460 Change-Id: I94b033f63b218554b0e0e11814fde4c13bf7cca0 PiperOrigin-RevId: 184692391
Diffstat (limited to 'src/test/py')
-rw-r--r--src/test/py/bazel/runfiles_test.py46
-rw-r--r--src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock10
-rw-r--r--src/test/py/bazel/testdata/runfiles_test/foo/Foo.java25
3 files changed, 52 insertions, 29 deletions
diff --git a/src/test/py/bazel/runfiles_test.py b/src/test/py/bazel/runfiles_test.py
index 2f9f193170..ca3cc0b5b7 100644
--- a/src/test/py/bazel/runfiles_test.py
+++ b/src/test/py/bazel/runfiles_test.py
@@ -32,48 +32,36 @@ class RunfilesTest(test_base.TestBase):
"\n".join(stderr))
def testJavaRunfilesLibraryInBazelToolsRepo(self):
- self.ScratchFile("WORKSPACE", ["workspace(name = 'foo_ws')"])
- self.ScratchFile("foo/BUILD", [
- "java_binary(",
- " name = 'Foo',",
- " main_class = 'Foo',",
- " srcs = ['Foo.java'],",
- " deps = ['@bazel_tools//tools/runfiles:java-runfiles'],",
- " data = ['//foo/bar:hello.txt'],",
- ")"
- ])
- self.ScratchFile("foo/Foo.java", [
- "import com.google.devtools.build.runfiles.Runfiles;",
- ""
- "public class Foo {",
- " public static void main(String[] args) throws java.io.IOException {",
- " System.out.println(\"Hello Foo!\");",
- " Runfiles r = Runfiles.create();",
- " System.out.println(",
- " \"rloc=\" + r.rlocation(\"foo_ws/foo/bar/hello.txt\"));",
- " }",
- "}"
- ])
- self.ScratchFile("foo/bar/BUILD", ["exports_files(['hello.txt'])"])
- self.ScratchFile("foo/bar/hello.txt", ["world"])
+ for s, t in [
+ ("WORKSPACE.mock", "WORKSPACE"),
+ ("foo/BUILD.mock", "foo/BUILD"),
+ ("foo/Foo.java", "foo/Foo.java"),
+ ("foo/datadep/hello.txt", "foo/datadep/hello.txt"),
+ ]:
+ self.CopyFile(
+ self.Rlocation(
+ "io_bazel/src/test/py/bazel/testdata/runfiles_test/" + s), t)
exit_code, stdout, stderr = self.RunBazel(["info", "bazel-bin"])
self.AssertExitCode(exit_code, 0, stderr)
bazel_bin = stdout[0]
- exit_code, _, stderr = self.RunBazel(["build", "//foo:Foo"])
+ exit_code, _, stderr = self.RunBazel(["build", "//foo:runfiles-java"])
self.AssertExitCode(exit_code, 0, stderr)
- bin_path = os.path.join(bazel_bin, "foo/Foo" +
- (".exe" if test_base.TestBase.IsWindows() else ""))
+ if test_base.TestBase.IsWindows():
+ bin_path = os.path.join(bazel_bin, "foo/runfiles-java.exe")
+ else:
+ bin_path = os.path.join(bazel_bin, "foo/runfiles-java")
+
self.assertTrue(os.path.exists(bin_path))
exit_code, stdout, stderr = self.RunProgram([bin_path])
self.AssertExitCode(exit_code, 0, stderr)
if len(stdout) != 2:
self.fail("stdout: %s" % stdout)
- self.assertEqual(stdout[0], "Hello Foo!")
- six.assertRegex(self, stdout[1], "^rloc=.*/foo/bar/hello.txt")
+ self.assertEqual(stdout[0], "Hello Java Foo!")
+ six.assertRegex(self, stdout[1], "^rloc=.*/foo/datadep/hello.txt")
with open(stdout[1].split("=", 1)[1], "r") as f:
lines = [l.strip() for l in f.readlines()]
if len(lines) != 1:
diff --git a/src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock b/src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock
index 63d1d4e33a..618ea723b9 100644
--- a/src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock
+++ b/src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock
@@ -8,3 +8,13 @@ py_binary(
main = "runfiles.py",
deps = ["@bazel_tools//tools/runfiles:py-runfiles"],
)
+
+java_binary(
+ name = "runfiles-java",
+ srcs = ["Foo.java"],
+ data = [
+ "datadep/hello.txt",
+ ],
+ main_class = "Foo",
+ deps = ["@bazel_tools//tools/runfiles:java-runfiles"],
+)
diff --git a/src/test/py/bazel/testdata/runfiles_test/foo/Foo.java b/src/test/py/bazel/testdata/runfiles_test/foo/Foo.java
new file mode 100644
index 0000000000..0e9f5cfcd0
--- /dev/null
+++ b/src/test/py/bazel/testdata/runfiles_test/foo/Foo.java
@@ -0,0 +1,25 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import com.google.devtools.build.runfiles.Runfiles;
+import java.io.IOException;
+
+/** A mock Java binary only used in tests, to exercise the Java Runfiles library. */
+public class Foo {
+ public static void main(String[] args) throws IOException {
+ System.out.println("Hello Java Foo!");
+ Runfiles r = Runfiles.create();
+ System.out.println("rloc=" + r.rlocation("foo_ws/foo/datadep/hello.txt"));
+ }
+}