blob: c305521d789c825ba94a8b86de3a517cee2ff49d [file] [log] [blame]
#!/bin/bash -e
# Copyright 2018 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.
base=$(dirname "$(readlink -m "$0")")
log=$(mktemp)
echo "FORTIFY..."
# We run these tests under `script` because each FORTIFY failure, which these
# cause *a lot* of, will complain directly to /dev/tty. For hosts, these
# messages can easily drown out any other script output.
if ! script -q -e -c "${base}/fortify-runtime-tests" "${log}" >/dev/null; then
echo "${test} failed; see logs in ${log}."
if grep -q '!!! Timeout reached' "${log}"; then
echo "Looks like the test program timed out."
else
# Try to find and pretty-print the failure message(s).
# The /Failures/ part of the script can't be a simple address range: if
# we're printing _FORTIFY_SOURCE=1 errors, we might pick up the ":::
# _FORTIFY_SOURCE=2 :::" header twice.
sed -ne '/^:::/p' \
-e '/^Failure(s): /{ p; :again; n; p; /^\s/b again; }' \
"${log}"
fi
echo "FAIL"
exit 1
fi
rm -f "${log}"
echo "PASS"