diff options
author | Laszlo Csomor <laszlocsomor@google.com> | 2018-02-06 09:30:16 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-06 09:32:07 -0800 |
commit | a5ff30ae5259558681ffcb6bc57baeb6f0b3e171 (patch) | |
tree | f59c10b0309e7576c1bd8e3501088f42ab07074c /src/test/py | |
parent | ac8eb42c3687906f6758cdaee23f7321b4be22ad (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.py | 46 | ||||
-rw-r--r-- | src/test/py/bazel/testdata/runfiles_test/foo/BUILD.mock | 10 | ||||
-rw-r--r-- | src/test/py/bazel/testdata/runfiles_test/foo/Foo.java | 25 |
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")); + } +} |