#!/bin/bash # # Copyright 2016 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. # # Tests compiling using an external Linaro toolchain on a Linux machine # # 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; } if ! [ "${PLATFORM-}" = "linux" -a "${MACHINE_TYPE}" = "x86_64" ]; then echo "Skipping test: linaro toolchain is not supported on this platform" exit 0 fi # Run in a temporary directory! mkdir -p "${TEST_TMPDIR}/TEMP_TEMP_TEMP" cd "${TEST_TMPDIR}/TEMP_TEMP_TEMP" # Copy the project package here # We must use -L here; the files may be symlinks into the source tree, which we # could inadvertantly modify below. cp -rL ${testdata_path}/bazel_toolchain_test_data/* . # Rename WORKSPACE.linaro file to WORKSPACE # (Did not include the file WORKSPACE in the test because source tree under # directories that contain this file is not parsed) mv WORKSPACE.linaro WORKSPACE # Rename BUILD.linaro files for i in $(find . -name BUILD.linaro); do mv "$i" "$(dirname "$i")/BUILD" done # Make sure that the wrapper scripts have the execution permission chmod +x tools/arm_compiler/linaro_linux_gcc/arm-linux-gnueabihf-* bazel clean --expunge bazel build --crosstool_top=//tools/arm_compiler:toolchain --cpu=armeabi-v7a \ --spawn_strategy=standalone hello || fail "Should build" # Assert that output binary exists test -f ./bazel-bin/hello || fail "output not found" # Assert that output has the right machine architecture file ./bazel-bin/hello | grep -q "ARM" || fail "expect ARM machine architecture" file ./bazel-bin/hello | grep -q "x86-64" && fail "expect ARM machine architecture" echo "PASS"