|  | #!/bin/bash | 
|  | # | 
|  | # Copyright 2017 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. | 
|  | # | 
|  |  | 
|  | # Load the test setup defined in the parent directory | 
|  | CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | 
|  | source "${CURRENT_DIR}/../integration_test_setup.sh" \ | 
|  | || { echo "integration_test_setup.sh not found!" >&2; exit 1; } | 
|  |  | 
|  | set -eu | 
|  |  | 
|  | function test_python_binary_empty_files_in_runfiles_are_regular_files() { | 
|  | mkdir -p test/mypackage | 
|  | cat > test/BUILD <<'EOF' | 
|  | py_test( | 
|  | name = "a", | 
|  | srcs = [ | 
|  | "a.py", | 
|  | "mypackage/b.py", | 
|  | ], | 
|  | main = "a.py" | 
|  | ) | 
|  | EOF | 
|  | cat >test/a.py <<'EOF' | 
|  | import os.path | 
|  | import sys | 
|  |  | 
|  | print "This is my name: %s" % __file__ | 
|  | print "This is my working directory: %s" % os.getcwd() | 
|  | os.chdir(os.path.dirname(__file__)) | 
|  | print "This is my new working directory: %s" % os.getcwd() | 
|  |  | 
|  | file_to_check = "mypackage/__init__.py" | 
|  |  | 
|  | if not os.path.exists(file_to_check): | 
|  | print "mypackage/__init__.py does not exist" | 
|  | sys.exit(1) | 
|  |  | 
|  | if os.path.islink(file_to_check): | 
|  | print "mypackage/__init__.py is a symlink, expected a regular file" | 
|  | sys.exit(1) | 
|  |  | 
|  | if not os.path.isfile(file_to_check): | 
|  | print "mypackage/__init__.py is not a regular file" | 
|  | sys.exit(1) | 
|  |  | 
|  | print "OK" | 
|  | EOF | 
|  | touch test/mypackage/b.py | 
|  |  | 
|  | bazel test --test_output=streamed //test:a &> $TEST_log || fail "test failed" | 
|  | } | 
|  |  | 
|  | run_suite "Tests for the Python rules" |