Skip to content

Commit

Permalink
Windows: no error if python is not found on PATH
Browse files Browse the repository at this point in the history
Fixes #6463

Closes #6466.

Change-Id: I51f8c5e48657f10377345aa7bacab6e05dbed471
PiperOrigin-RevId: 218305465
  • Loading branch information
laszlocsomor authored and Copybara-Service committed Oct 23, 2018
1 parent 12987e8 commit 2fda17d
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/main/cpp/blaze_util_windows.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand All @@ -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() {
Expand Down
6 changes: 6 additions & 0 deletions src/test/py/bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
36 changes: 36 additions & 0 deletions src/test/py/bazel/first_time_use_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 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 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()

0 comments on commit 2fda17d

Please sign in to comment.