111 lines
2.4 KiB
Bash
Executable File
111 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
setup()
|
|
{
|
|
export LTPROOT=${LTPROOT:-/opt/ltp}
|
|
export TMP="/tmp"
|
|
export PATH="${PATH}:${LTPROOT}/testcases/bin:${LTPROOT}/bin"
|
|
|
|
[ -d "$LTPROOT/testcases/bin" ] ||
|
|
{
|
|
echo "FATAL: LTP not installed correctly"
|
|
echo "INFO: Follow directions in INSTALL!"
|
|
exit 1
|
|
}
|
|
|
|
rm -rf ${TMP}/alltests*
|
|
}
|
|
|
|
usage()
|
|
{
|
|
cat <<-EOF >&2
|
|
|
|
usage: ${0##*/} [options]
|
|
|
|
options:
|
|
-f CMDFILES Execute user defined list of testcases
|
|
-h Help. Prints all available options.
|
|
-s PATTERN Only run test cases which match PATTERN.
|
|
|
|
example: ${0##*/} -f syscalls -s timerfd
|
|
|
|
|
|
EOF
|
|
exit 0
|
|
}
|
|
|
|
main()
|
|
{
|
|
local CMDFILES='syscalls'
|
|
local TAG_RESTRICT_STRING=
|
|
|
|
version_date=$(cat "$LTPROOT/Version")
|
|
|
|
echo "$version_date"
|
|
|
|
while getopts f:hs: arg
|
|
do case $arg in
|
|
f) # Execute user defined set of testcases.
|
|
CMDFILES=$OPTARG;;
|
|
h) usage;;
|
|
s) TAG_RESTRICT_STRING=$OPTARG;;
|
|
\?) usage;;
|
|
esac
|
|
done
|
|
|
|
echo "INFO: Test on files $CMDFILES"
|
|
|
|
[ -n "$CMDFILES" ] && \
|
|
{
|
|
#for scenfile in `echo "$CMDFILES" | tr ',' ' '`
|
|
for scenfile in `echo "$CMDFILES"`
|
|
do
|
|
[ -f "$scenfile" ] || scenfile="$LTPROOT/runtest/$scenfile"
|
|
cat "$scenfile" >> ${TMP}/alltests.tmp || \
|
|
{
|
|
echo "FATAL: unable to create command file"
|
|
rm -Rf "$TMP"
|
|
exit 1
|
|
}
|
|
done
|
|
}
|
|
|
|
# Skip the lines start with #
|
|
grep -v "^#" ${TMP}/alltests.tmp > ${TMP}/alltests
|
|
|
|
# If enabled, execute only test cases that match the PATTERN
|
|
if [ -n "$TAG_RESTRICT_STRING" ]
|
|
then
|
|
mv -f ${TMP}/alltests ${TMP}/alltests.orig
|
|
grep $TAG_RESTRICT_STRING ${TMP}/alltests.orig > ${TMP}/alltests
|
|
echo "INFO: Restricted to $TAG_RESTRICT_STRING"
|
|
fi
|
|
|
|
#grep -v "^#" "${TMP}/alltests" | while read -r line
|
|
while read -r line
|
|
do
|
|
# ignore empty lines
|
|
[ "x$line" = x ] && continue
|
|
|
|
line_array=($line)
|
|
name=${line_array[0]}
|
|
bin=${line_array[1]}
|
|
len=${#line_array[@]}
|
|
idx=2
|
|
args=()
|
|
|
|
echo "INFO: Test case: $name"
|
|
if [ $len -gt 2 ]
|
|
then
|
|
args=${line_array[@]:$idx:$((len - idx))}
|
|
fi
|
|
echo "INFO: ... Commands: $bin $args"
|
|
|
|
$LTPROOT/testcases/bin/$bin
|
|
done < "${TMP}/alltests"
|
|
}
|
|
|
|
setup
|
|
main "$@"
|
|
exit 0
|