From 043b19f7b651c165f52e771c640e997942107f6d Mon Sep 17 00:00:00 2001 From: Laszlo Csomor Date: Mon, 22 Oct 2018 16:07:52 +0200 Subject: [PATCH 1/2] Windows: no error if python is not found on PATH Fixes https://github.com/bazelbuild/bazel/issues/6463 Change-Id: I4f09d51231bef319e8c8c10fb356fa8ebab2c2c7 --- src/main/cpp/blaze_util_windows.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/cpp/blaze_util_windows.cc b/src/main/cpp/blaze_util_windows.cc index 3f3f8bfbb935e1..8d57784d3f8ff0 100644 --- a/src/main/cpp/blaze_util_windows.cc +++ b/src/main/cpp/blaze_util_windows.cc @@ -1437,7 +1437,6 @@ static string GetBinaryFromPath(const string& binary_name) { start = end + 1; } while (true); - BAZEL_LOG(ERROR) << binary_name.c_str() << " not found on PATH"; return string(); } @@ -1447,7 +1446,11 @@ static string LocateBash() { return msys_bash; } - return GetBinaryFromPath("bash.exe"); + string result = GetBinaryFromPath("bash.exe"); + if (result.empty()) { + BAZEL_LOG(ERROR) << "bash.exe not found on PATH"; + } + return result; } void DetectBashOrDie() { From 8f8a2894ee8fed984f5a330c9967bee97d751047 Mon Sep 17 00:00:00 2001 From: Laszlo Csomor Date: Mon, 22 Oct 2018 16:13:22 +0200 Subject: [PATCH 2/2] issue #6463: add a regression test Change-Id: I51f8c5e48657f10377345aa7bacab6e05dbed471 --- src/test/py/bazel/BUILD | 6 ++++ src/test/py/bazel/first_time_use_test.py | 37 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/test/py/bazel/first_time_use_test.py diff --git a/src/test/py/bazel/BUILD b/src/test/py/bazel/BUILD index 1116e039c247ff..d5f59d680c4530 100644 --- a/src/test/py/bazel/BUILD +++ b/src/test/py/bazel/BUILD @@ -166,6 +166,12 @@ py_test( }), ) +py_test( + name = "first_time_use_test", + srcs = ["first_time_use_test.py"], + deps = [":test_base"], +) + py_test( name = "query_test", size = "medium", diff --git a/src/test/py/bazel/first_time_use_test.py b/src/test/py/bazel/first_time_use_test.py new file mode 100644 index 00000000000000..5fc2033ad8e6e8 --- /dev/null +++ b/src/test/py/bazel/first_time_use_test.py @@ -0,0 +1,37 @@ +# 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 os +import unittest + +from src.test.py.bazel import test_base + + +class FirstTimeUseTest(test_base.TestBase): + + def _FailWithOutput(self, output): + self.fail('FAIL:\n | %s\n---' % '\n | '.join(output)) + + def testNoPythonRequirement(self): + """Regression test for https://github.com/bazelbuild/bazel/issues/6463""" + self.ScratchFile('WORKSPACE') + exit_code, stdout, stderr = self.RunBazel(['info', 'release']) + self.AssertExitCode(exit_code, 0, stderr) + for line in stdout + stderr: + if 'python' in line and 'not found on PATH' in line: + self._FailWithOutput(stdout + stderr) + + +if __name__ == '__main__': + unittest.main()