|  | #!/bin/bash | 
|  | # Copyright 2018 The Fuchsia Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | # Automated tests for //tools/devshell/lib/style.sh | 
|  | # | 
|  | # Usage: style-tests | 
|  | # | 
|  | #   Returns: Error status if actual output does not match expected. | 
|  |  | 
|  | TEST_NAME="$(basename "${BASH_SOURCE[0]}")" | 
|  | TESTS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" | 
|  |  | 
|  | verbose() { | 
|  | echo | 
|  | echo "=======================================================" | 
|  | echo | 
|  | echo "$@" | 
|  | echo | 
|  | "$@" | 
|  | echo | 
|  | } | 
|  |  | 
|  | test_main() { | 
|  | local expected_out="${TESTS_DIR}/expected/${TEST_NAME}.out" | 
|  | local expected_err="${TESTS_DIR}/expected/${TEST_NAME}.err" | 
|  | local capture_dir=$(mktemp -d) | 
|  | local actual_out="${capture_dir}/${TEST_NAME}.out" | 
|  | local actual_err="${capture_dir}/${TEST_NAME}.err" | 
|  | ${TESTS_DIR}/style-test-visually 1> "${actual_out}" 2> "${actual_err}" | 
|  |  | 
|  | local status=0 | 
|  | verbose diff "${expected_out}" "${actual_out}" || status=$? | 
|  | verbose diff "${expected_err}" "${actual_err}" || status=$? | 
|  |  | 
|  | return $status | 
|  | } | 
|  |  | 
|  | test_main "$@" || return $? |