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