41 lines
849 B
Bash
Executable File
41 lines
849 B
Bash
Executable File
#! /usr/bin/env bash
|
|
#
|
|
# This script imitates the behavior of the Linux "perf" command. Useful
|
|
# for testing purposes because this script produces consistent and
|
|
# predictable results.
|
|
#
|
|
# NOTE: if this script is in PATH, then it should not be named "perf", because
|
|
# we want to use the real perf command for some tests.
|
|
|
|
# Only "perf stat" is supported.
|
|
if [ "$1" != "stat" ]; then
|
|
exit 1
|
|
fi
|
|
shift
|
|
|
|
# Ignore all options except "-o".
|
|
while getopts "o:x:e:" arg; do
|
|
case $arg in
|
|
o)
|
|
fname=$OPTARG
|
|
;;
|
|
*) ;;
|
|
|
|
esac
|
|
done
|
|
|
|
shift $((OPTIND - 1))
|
|
|
|
# Use a hard-coded message so that we get predictable results
|
|
msg="1000 instructions"
|
|
|
|
# Write the message to a file (if specified), or stderr
|
|
if [ -n "$fname" ]; then
|
|
echo "$msg" >"$fname"
|
|
else
|
|
echo "$msg" >&2
|
|
fi
|
|
|
|
# Run the specified command
|
|
"$@"
|