#!/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. # # Integration tests for IDE build info generation. ASPECT=$1 BINARY_OUTPUT_GROUP=$2 BINARY_OUTPUT=$3 TEXT_OUTPUT_GROUP=$4 TEXT_OUTPUT=$5 RESOLVE_OUTPUT_GROUP=$6 # 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; } add_to_bazelrc "build --noshow_progress" function test_ide_build_file_generation() { mkdir -p com/google/example/simple cat > com/google/example/simple/Simple.java < com/google/example/complex/Complex.java < com/google/example/BUILD < com/google/example/simple/Simple.java < com/google/example/complex/Complex.java < com/google/example/BUILD < $TEST_log \ || fail "Expected success" SIMPLE_BUILD="${PRODUCT_NAME}-bin/com/google/example/simple.$BINARY_OUTPUT" [ -e $SIMPLE_BUILD ] || fail "$SIMPLE_BUILD not found" COMPLEX_BUILD="${PRODUCT_NAME}-bin/com/google/example/complex.$BINARY_OUTPUT" [ -e $COMPLEX_BUILD ] || fail "$COMPLEX_BUILD not found" expect_log '^Build artifacts:' expect_log "^>>>.*/com/google/example/complex.$BINARY_OUTPUT" expect_log "^>>>.*/com/google/example/simple.$BINARY_OUTPUT" # second build; test that up-to-date artifacts are output. bazel build //com/google/example:complex \ --aspects $ASPECT --output_groups "$BINARY_OUTPUT_GROUP" \ --experimental_show_artifacts 2> $TEST_log \ || fail "Expected success" expect_log '^Build artifacts:' expect_log "^>>>.*/com/google/example/complex.$BINARY_OUTPUT" expect_log "^>>>.*/com/google/example/simple.$BINARY_OUTPUT" } function test_ide_resolve_output_group() { mkdir -p com/google/example/simple cat > com/google/example/simple/Simple.java < com/google/example/complex/Complex.java < com/google/example/BUILD < com/google/example/Test.java < com/google/example/BUILD < com/google/example/simple/Simple.java < com/google/example/complex/Complex.java < com/google/example/BUILD <