43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
#!/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
|