Blame gmon/tst-gmon-gprof.sh

Packit Service 82fcde
#!/bin/sh
Packit Service 82fcde
# Check the output of gprof against a carfully crafted binary.
Packit Service 82fcde
# Copyright (C) 2017-2018 Free Software Foundation, Inc.
Packit Service 82fcde
# This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
# The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
# modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
# License as published by the Free Software Foundation; either
Packit Service 82fcde
# version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
# The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
# Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
# You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
# License along with the GNU C Library; if not, see
Packit Service 82fcde
# <http://www.gnu.org/licenses/>.
Packit Service 82fcde
Packit Service 82fcde
LC_ALL=C
Packit Service 82fcde
export LC_ALL
Packit Service 82fcde
set -e
Packit Service 82fcde
exec 2>&1
Packit Service 82fcde
Packit Service 82fcde
GPROF="$1"
Packit Service 82fcde
program="$2"
Packit Service 82fcde
data="$3"
Packit Service 82fcde
Packit Service 82fcde
actual=$(mktemp)
Packit Service 82fcde
expected=$(mktemp)
Packit Service 82fcde
expected_dot=$(mktemp)
Packit Service 82fcde
cleanup () {
Packit Service 82fcde
    rm -f "$actual"
Packit Service 82fcde
    rm -f "$expected"
Packit Service 82fcde
    rm -f "$expected_dot"
Packit Service 82fcde
}
Packit Service 82fcde
trap cleanup 0
Packit Service 82fcde
Packit Service 82fcde
cat > "$expected" <
Packit Service 82fcde
f1 2000
Packit Service 82fcde
f2 1000
Packit Service 82fcde
EOF
Packit Service 82fcde
Packit Service 82fcde
# Special version for powerpc with function descriptors.
Packit Service 82fcde
cat > "$expected_dot" <
Packit Service 82fcde
.f1 2000
Packit Service 82fcde
.f2 1000
Packit Service 82fcde
EOF
Packit Service 82fcde
Packit Service 82fcde
"$GPROF" -C "$program" "$data" \
Packit Service 82fcde
    | awk -F  '[(): ]' '/executions/{print $5, $8}' \
Packit Service 82fcde
    | sort > "$actual"
Packit Service 82fcde
Packit Service 82fcde
if cmp -s "$actual" "$expected_dot" \
Packit Service 82fcde
   || diff -u --label expected "$expected" --label actual "$actual" ; then
Packit Service 82fcde
    echo "PASS"
Packit Service 82fcde
else
Packit Service 82fcde
    echo "FAIL"
Packit Service 82fcde
    exit 1
Packit Service 82fcde
fi