#!/bin/bash # # 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. # # Test lightweight spawn stats generation in Bazel # set -eu # 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; } function set_up() { cat > BUILD <&1 | tee ${TEST_log} | sed -n '/process/,$p' | grep "Build complete" || fail "Expected \"process\" to be followed by \"Build completed\"" } # Single execution of Bazel function statistics_single() { flags=$1 # flags to pass to Bazel expect=$2 # string to expect echo "Starting single run for $flags $expect" &> $TEST_log output=`bazel build :foo $flags 2>&1 | tee ${TEST_log} | grep " process" | tr -d '\r'` if ! [[ $output =~ ${expect} ]]; then fail "bazel ${flags}: Want |${expect}|, got |${output}| " fi echo "Done $flags $expect" &> $TEST_log } function test_local() { statistics_single "--spawn_strategy=local" ": 1 local" } function test_local_sandbox() { if [[ "$PLATFORM" == "linux" ]]; then statistics_single "--spawn_strategy=linux-sandbox" ": 1 linux-sandbox" fi } # We are correctly resetting the counts function test_repeat() { flags="--spawn_strategy=local" statistics_single $flags ": 1 local" bazel clean $flags statistics_single $flags ": 1 local" } # Locally cached results are not yet displayed function test_localcache() { flags="--spawn_strategy=local" # We are correctly resetting the counts statistics_single $flags ": 1 local" statistics_single $flags "0 processes." } run_suite "bazel statistics tests"