#!/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. # # An end-to-end test that Bazel's experimental UI produces reasonable output. # Load test environment source $(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/testenv.sh \ || { echo "testenv.sh not found!" >&2; exit 1; } create_and_cd_client put_bazel_on_path write_default_bazelrc #### SETUP ############################################################# set -e function set_up() { mkdir -p pkg cat > pkg/true.sh < pkg/BUILD <$TEST_log || fail "bazel test failed" # some progress indicator is shown expect_log '\[[0-9,]* / [0-9,]*\]' # something is written in green expect_log $'\x1b\[32m' # curses are used to delete at least one line expect_log $'\x1b\[1A\x1b\[K' } function test_line_wrapping() { bazel test --curses=yes --color=yes --terminal_columns=5 pkg:true 2>$TEST_log || fail "bazel test failed" # curses are used to delete at least one line expect_log $'\x1b\[1A\x1b\[K' # something is written in green expect_log $'\x1b\[32m' # lines are wrapped, hence at least one line should end with backslash expect_log '\\'$'\r''$' } function test_noline_wrapping_color_nocurses() { bazel test --curses=no --color=yes --terminal_columns=5 pkg:true 2>$TEST_log || fail "bazel test failed" # something is written in green expect_log $'\x1b\[32m' # no lines are deleted expect_not_log $'\x1b\[K' # as no line wrapping occurs, no backlsash should be before a carriage return expect_not_log '\\'$'\r' } run_suite "Basic integration tests for the standard UI"