| #!/bin/bash -e |
| # Copyright 2019 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # This file is implemented similar to is_enabled_error.sh |
| |
| TEST_DIR="$(dirname "${BASH_SOURCE[0]}")" |
| TEST_CMD="$(cat "${TEST_DIR}/RO/test/static_if_error.o.cmd")" |
| TEST_ERROR_COUNT=0 |
| BAD_ERROR_MSG="This error should not be seen in the compiler output!" |
| |
| fail() { |
| echo "Fail" |
| echo "$1" |
| echo "$BUILD_OUTPUT" |
| TEST_ERROR_COUNT=$((TEST_ERROR_COUNT+1)) |
| } |
| |
| for test_macro in STATIC_IF STATIC_IF_NOT; do |
| for test_value in 0 1 2 A "5 + 5"; do |
| echo -n "Running TEST_MACRO=${test_macro} TEST_VALUE=${test_value}..." |
| TEST_CMD_COMPLETE=" |
| ${TEST_CMD} \"-DTEST_MACRO=${test_macro}\" \"-DTEST_VALUE=${test_value}\"" |
| echo "$TEST_CMD_COMPLETE" |
| if BUILD_OUTPUT="$(sh -c "$TEST_CMD_COMPLETE" 2>&1)"; then |
| fail "Compilation should not have succeeded." |
| continue |
| fi |
| |
| if grep -q "$BAD_ERROR_MSG" <<<"$BUILD_OUTPUT"; then |
| fail "TEST_MACRO was not defined." |
| continue |
| fi |
| done |
| done |
| |
| if [[ $TEST_ERROR_COUNT -eq 0 ]]; then |
| echo "Pass!" |
| else |
| echo "Fail! (${TEST_ERROR_COUNT} tests)" |
| fi |