[Intel-gfx] [PATCH i-g-t v2] tests: Clean up shell scripts
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Mon Feb 6 10:25:19 UTC 2017
Convert all scripts to use /bin/sh shebang and fix all shellcheck
reported problems.
v2: Include tests/Makefile.sources (Petri)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Cc: Petri Latvala <petri.latvala at intel.com>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Cc: Jani Nikula <jani.nikula at intel.com>
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
---
tests/Makefile.sources | 1 -
tests/check_drm_clients | 15 +++++++++----
tests/ddx_intel_after_fbdev | 42 ++++++++++++++++++-------------------
tests/debugfs_emon_crash | 16 +++++++++-----
tests/debugfs_wedged | 18 ++++++++++------
tests/drm_getopt.sh | 20 ++++++++++--------
tests/drm_lib.sh | 51 +++++++++++++++++++++++----------------------
tests/drv_debugfs_reader | 17 ++++++++++-----
tests/igt_command_line.sh | 26 +++++++++++------------
tests/sysfs_l3_parity | 30 ++++++++++++++++----------
tests/test_rte_check | 6 ------
tests/tools_test | 17 +++++++++------
12 files changed, 147 insertions(+), 112 deletions(-)
delete mode 100755 tests/test_rte_check
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 6e07d93..dcc80c5 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -242,7 +242,6 @@ TESTS_scripts = \
debugfs_emon_crash \
drv_debugfs_reader \
sysfs_l3_parity \
- test_rte_check \
tools_test \
$(NULL)
diff --git a/tests/check_drm_clients b/tests/check_drm_clients
index 2a891b8..25c03b1 100755
--- a/tests/check_drm_clients
+++ b/tests/check_drm_clients
@@ -1,6 +1,13 @@
-#!/bin/bash
+#!/bin/sh
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
+
+exit "$IGT_EXIT_SUCCESS"
-exit $IGT_EXIT_SUCCESS
diff --git a/tests/ddx_intel_after_fbdev b/tests/ddx_intel_after_fbdev
index f068209..2ca5ce0 100755
--- a/tests/ddx_intel_after_fbdev
+++ b/tests/ddx_intel_after_fbdev
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Testcase: Load Intel DDX after fbdev was loaded
#
@@ -9,7 +9,7 @@ whoami | grep -q root || {
}
# no other X session should be running
-find /tmp/ -name .X*lock 2>/dev/null | grep -q X && {
+find /tmp/ -name ".X*lock" 2>/dev/null | grep -q X && {
echo "ERROR: X session already running"
exit 1
}
@@ -19,14 +19,14 @@ TMPDIR=$(mktemp -d /tmp/igt.XXXX) || {
exit 1
}
-cat > $TMPDIR/xorg.conf.fbdev << EOF
+cat > "$TMPDIR/xorg.conf.fbdev" << EOF
Section "Device"
Driver "fbdev"
Identifier "Device[fbdev]"
EndSection
EOF
-cat > $TMPDIR/xorg.conf.intel << EOF
+cat > "$TMPDIR/xorg.conf.intel" << EOF
Section "Device"
Driver "intel"
Identifier "Device[intel]"
@@ -34,40 +34,40 @@ EndSection
EOF
# log before fbdev
-dmesg -c > $TMPDIR/dmesg.1.before.fbdev
-cp /var/log/Xorg.0.log $TMPDIR/Xorg.0.log.1.before.fbdev
+dmesg -c > "$TMPDIR/dmesg.1.before.fbdev"
+cp /var/log/Xorg.0.log "$TMPDIR/Xorg.0.log.1.before.fbdev"
# run fbdev
-xinit -- /usr/bin/X -config $TMPDIR/xorg.conf.fbdev &
+xinit -- /usr/bin/X -config "$TMPDIR/xorg.conf.fbdev" &
sleep 5
-if [ -f `which intel_reg` ]; then
-`which intel_reg` dump > $TMPDIR/intel_reg_dump.1.fbdev
+if [ -f "$(which intel_reg)" ]; then
+ intel_reg dump > "$TMPDIR/intel_reg_dump.1.fbdev"
fi
killall X
# log after fbdev & before intel
-dmesg -c > $TMPDIR/dmesg.2.after.fbdev.before.intel
-cp /var/log/Xorg.0.log $TMPDIR/Xorg.0.log.2.after.fbdev.before.intel
+dmesg -c > "$TMPDIR/dmesg.2.after.fbdev.before.intel"
+cp /var/log/Xorg.0.log "$TMPDIR/Xorg.0.log.2.after.fbdev.before.intel"
sleep 5
# run intel
-xinit -- /usr/bin/X -config $TMPDIR/xorg.conf.intel &
-sleep 5
-if [ -f `which intel_reg` ]; then
-`which intel_reg` dump > $TMPDIR/intel_reg_dump.2.intel
+xinit -- /usr/bin/X -config "$TMPDIR/xorg.conf.intel" &
+sleep 5
+if [ -f "$(which intel_reg)" ]; then
+ intel_reg dump > "$TMPDIR/intel_reg_dump.2.intel"
fi
killall X
# log after intel
-dmesg -c > $TMPDIR/dmesg.3.after.intel
-cp /var/log/Xorg.0.log $TMPDIR/Xorg.0.log.3.after.intel
+dmesg -c > "$TMPDIR/dmesg.3.after.intel"
+cp /var/log/Xorg.0.log "$TMPDIR/Xorg.0.log.3.after.intel"
-cp $0 $TMPDIR/
+cp "$0" "$TMPDIR/"
-tar czf $TMPDIR.tar.gz $TMPDIR/*
-if [ -f $TMPDIR.tar.gz ]; then
- echo $TMPDIR.tar.gz contains this script, all configs and logs generated on this tests
+tar czf "$TMPDIR.tar.gz" "$TMPDIR/"
+if [ -f "$TMPDIR.tar.gz" ]; then
+ echo "'$TMPDIR.tar.gz' contains this script, all configs and logs generated on this tests"
fi
exit 0
diff --git a/tests/debugfs_emon_crash b/tests/debugfs_emon_crash
index 1dbfcb2..11b1c44 100755
--- a/tests/debugfs_emon_crash
+++ b/tests/debugfs_emon_crash
@@ -1,16 +1,22 @@
-#!/bin/bash
+#!/bin/sh
#
# This check if we can crash the kernel with segmentation-fault
# by reading /sys/kernel/debug/dri/0/i915_emon_status too quickly
#
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
for z in $(seq 1 1000); do
- cat $i915_dfs_path/i915_emon_status > /dev/null 2&>1
+ cat "$i915_dfs_path/i915_emon_status" > /dev/null 2>&1
done
# If we got here, we haven't crashed
+exit "$IGT_EXIT_SUCCESS"
-exit $IGT_EXIT_SUCCESS
diff --git a/tests/debugfs_wedged b/tests/debugfs_wedged
index f15ac46..26b40de 100755
--- a/tests/debugfs_wedged
+++ b/tests/debugfs_wedged
@@ -1,10 +1,16 @@
-#!/bin/bash
+#!/bin/sh
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
# Testcase: wedge the hw to check the error_state reading
-#
+#
# Unfortunately wedged is permanent, so this test is not run by default
-echo 1 > ${i915_dfs_path}/i915_wedged
-cat $i915_dfs_path/i915_error_state > /dev/null 2>&1
+echo 1 > "${i915_dfs_path}/i915_wedged"
+cat "$i915_dfs_path/i915_error_state" > /dev/null 2>&1
diff --git a/tests/drm_getopt.sh b/tests/drm_getopt.sh
index a94a759..10f367c 100755
--- a/tests/drm_getopt.sh
+++ b/tests/drm_getopt.sh
@@ -1,3 +1,4 @@
+#!/bin/sh
# This is required for check/distcheck target as it has to --list-subtests
# for each test. Source it if you add a new test in form of a (shell) script.
@@ -9,30 +10,31 @@ IGT_EXIT_SUCCESS=0
IGT_EXIT_INVALID=79
IGT_EXIT_FAILURE=99
-# hacked-up long option parsing
-for arg in $@ ; do
- case $arg in
+PROG=$(basename "$THIS_SCRIPT")
+
+for arg do
+ case "$arg" in
--list-subtests)
- exit $IGT_EXIT_INVALID
+ exit "$IGT_EXIT_INVALID"
;;
--run-subtest)
- exit $IGT_EXIT_INVALID
+ exit "$IGT_EXIT_INVALID"
;;
--debug)
IGT_LOG_LEVEL=debug
;;
--help-description)
- echo $IGT_TEST_DESCRIPTION
- exit $IGT_EXIT_SUCCESS
+ echo "$IGT_TEST_DESCRIPTION"
+ exit "$IGT_EXIT_SUCCESS"
;;
--help)
- echo "Usage: `basename $0` [OPTIONS]"
+ echo "Usage: $PROG [OPTIONS]"
echo " --list-subtests"
echo " --run-subtest <pattern>"
echo " --debug"
echo " --help-description"
echo " --help"
- exit $IGT_EXIT_SUCCESS
+ exit "$IGT_EXIT_SUCCESS"
;;
esac
done
diff --git a/tests/drm_lib.sh b/tests/drm_lib.sh
index af104ad..2aa073d 100755
--- a/tests/drm_lib.sh
+++ b/tests/drm_lib.sh
@@ -1,23 +1,22 @@
-#!/bin/bash
+#!/bin/sh
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_getopt.sh
+. "$SOURCE_DIR/drm_getopt.sh"
-NAME=$(basename "$0")
+NAME=$(basename "$THIS_SCRIPT")
dynamic_debug=
hda_dynamic_debug_enable() {
if [ -e "$dynamic_debug" ]; then
- echo -n "module snd_hda_intel +pf" > $dynamic_debug
- echo -n "module snd_hda_core +pf" > $dynamic_debug
+ echo "module snd_hda_intel +pf" > "$dynamic_debug"
+ echo "module snd_hda_core +pf" > "$dynamic_debug"
fi
}
hda_dynamic_debug_disable() {
if [ -e "$dynamic_debug" ]; then
- echo -n "module snd_hda_core =_" > $dynamic_debug
- echo -n "module snd_hda_intel =_" > $dynamic_debug
+ echo "module snd_hda_core =_" > "$dynamic_debug"
+ echo "module snd_hda_intel =_" > "$dynamic_debug"
fi
}
@@ -31,7 +30,9 @@ KERN_INFO="<6>"
KERN_DEBUG="<7>"
kmsg() {
- echo "$@" > /dev/kmsg
+ if [ -w "/dev/kmsg" ]; then
+ echo "$@" > /dev/kmsg
+ fi
}
finish() {
@@ -46,16 +47,16 @@ kmsg "${KERN_INFO}[IGT] $NAME: executing"
skip() {
echo "$@"
- exit $IGT_EXIT_SKIP
+ exit "$IGT_EXIT_SKIP"
}
die() {
echo "$@"
- exit $IGT_EXIT_FAILURE
+ exit "$IGT_EXIT_FAILURE"
}
do_or_die() {
- $@ > /dev/null 2>&1 || (echo "FAIL: $@ ($?)" && exit $IGT_EXIT_FAILURE)
+ "$@" > /dev/null 2>&1 || ( echo "FAIL: $* ($?)" && exit "$IGT_EXIT_FAILURE" )
}
if [ -d /sys/kernel/debug ]; then
@@ -66,47 +67,47 @@ else
skip "debugfs not found"
fi
-dynamic_debug=$debugfs_path/dynamic_debug/control
+dynamic_debug="$debugfs_path/dynamic_debug/control"
if [ ! -e "$dynamic_debug" ]; then
echo "WARNING: dynamic debug control not available"
fi
-if [ ! -d $debugfs_path/dri ]; then
+if [ ! -d "$debugfs_path/dri" ]; then
skip "dri debugfs not found"
fi
-i915_dfs_path=x
-for minor in `seq 0 16`; do
- if [ -f $debugfs_path/dri/$minor/i915_error_state ] ; then
- i915_dfs_path=$debugfs_path/dri/$minor
+i915_dfs_path=
+for minor in $(seq 0 16); do
+ if [ -f "$debugfs_path/dri/$minor/i915_error_state" ] ; then
+ i915_dfs_path="$debugfs_path/dri/$minor"
break
fi
done
-if [ $i915_dfs_path = "x" ] ; then
- skip " i915 debugfs path not found."
+if [ -z "$i915_dfs_path" ] ; then
+ skip "i915 debugfs path not found."
fi
# read everything we can
-if [ `cat $i915_dfs_path/clients | wc -l` -gt "2" ] ; then
+if [ "$(wc -l "$i915_dfs_path/clients")" -gt 2 ] ; then
[ -n "$DRM_LIB_ALLOW_NO_MASTER" ] || \
die "ERROR: other drm clients running"
fi
-whoami | grep -q root || ( echo ERROR: not running as root; exit $IGT_EXIT_FAILURE )
+whoami | grep -q root || ( echo "ERROR: not running as root"; exit "$IGT_EXIT_FAILURE" )
i915_sfs_path=
if [ -d /sys/class/drm ] ; then
sysfs_path=/sys/class/drm
- if [ -f $sysfs_path/card$minor/error ] ; then
+ if [ -f "$sysfs_path/card$minor/error" ] ; then
i915_sfs_path="$sysfs_path/card$minor"
fi
fi
# sysfs may not exist as the 'error' is a new interface in 3.11
-function drmtest_skip_on_simulation()
+drmtest_skip_on_simulation()
{
- [ -n "$INTEL_SIMULATION" ] && exit $IGT_EXIT_SKIP
+ [ -n "$INTEL_SIMULATION" ] && exit "$IGT_EXIT_SKIP"
}
drmtest_skip_on_simulation
diff --git a/tests/drv_debugfs_reader b/tests/drv_debugfs_reader
index 6ea4e64..58d02de 100755
--- a/tests/drv_debugfs_reader
+++ b/tests/drv_debugfs_reader
@@ -1,9 +1,16 @@
-#!/bin/bash
+#!/bin/sh
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
# read everything we can
-cat $i915_dfs_path/* > /dev/null 2>&1
+cat "$i915_dfs_path"/* > /dev/null 2>&1
+
+exit "$IGT_EXIT_SUCCESS"
-exit $IGT_EXIT_SUCCESS
diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh
index a20e44c..bab3a77 100755
--- a/tests/igt_command_line.sh
+++ b/tests/igt_command_line.sh
@@ -26,11 +26,11 @@
#
if [ -z "$top_builddir" ]; then
- top_builddir="$(dirname $0)"
+ top_builddir=$(dirname "$0")
fi
# allow to run this script from top directory
-TESTLIST=`cat $top_builddir/test-list.txt`
+TESTLIST=$(cat "$top_builddir/test-list.txt")
if [ $? -ne 0 ]; then
# distcheck requires this hack
TESTLIST=$(cat test-list.txt)
@@ -51,7 +51,7 @@ for test in $TESTLIST; do
fi
# top_builddir is empty for distcheck
- test=$top_builddir/$test
+ test="$top_builddir/$test"
# distcheck requires this hack
if [ ! -x "$test" ]; then
@@ -62,29 +62,29 @@ for test in $TESTLIST; do
# check invalid option handling
echo " Checking invalid option handling..."
- ./$test --invalid-option 2> /dev/null && fail $test
+ "./$test" --invalid-option 2> /dev/null && fail "$test"
# check valid options succeed
echo " Checking valid option handling..."
- ./$test --help > /dev/null || fail $test
+ "./$test" --help > /dev/null || fail "$test"
# check --list-subtests works correctly
echo " Checking subtest enumeration..."
- LIST=`./$test --list-subtests`
+ LIST=$("./$test" --list-subtests)
RET=$?
- if [ $RET -ne 0 -a $RET -ne 79 ]; then
- fail $test
+ if [ "$RET" -ne 0 -a $RET -ne 79 ]; then
+ fail "$test"
fi
- if [ $RET -eq 79 -a -n "$LIST" ]; then
- fail $test
+ if [ "$RET" -eq 79 -a -n "$LIST" ]; then
+ fail "$test"
fi
- if [ $RET -eq 0 -a -z "$LIST" ]; then
- fail $test
+ if [ "$RET" -eq 0 -a -z "$LIST" ]; then
+ fail "$test"
fi
# check invalid subtest handling
echo " Checking invalid subtest handling..."
- ./$test --run-subtest invalid-subtest > /dev/null 2>&1 && fail $test
+ "./$test" --run-subtest invalid-subtest > /dev/null 2>&1 && fail "$test"
done
diff --git a/tests/sysfs_l3_parity b/tests/sysfs_l3_parity
index d5f3284..37a03f1 100755
--- a/tests/sysfs_l3_parity
+++ b/tests/sysfs_l3_parity
@@ -1,22 +1,30 @@
-#!/bin/bash
+#!/bin/sh
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
-$SOURCE_DIR/../tools/intel_l3_parity -r 0 -b 0 -s 0 -e || exit $?
+"$SOURCE_DIR/../tools/intel_l3_parity" -r 0 -b 0 -s 0 -e || exit $?
#Check that we can remap a row
-$SOURCE_DIR/../tools/intel_l3_parity -r 0 -b 0 -s 0 -d
-disabled=`$SOURCE_DIR/../tools/intel_l3_parity -l | grep -c 'Row 0, Bank 0, Subbank 0 is disabled'`
-if [ "$disabled" != "1" ] ; then
+"$SOURCE_DIR/../tools/intel_l3_parity" -r 0 -b 0 -s 0 -d
+disabled=$("$SOURCE_DIR/../tools/intel_l3_parity" -l | grep -c 'Row 0, Bank 0, Subbank 0 is disabled')
+if [ "$disabled" != 1 ] ; then
echo "Fail"
- exit $IGT_EXIT_FAILURE
+ exit "$IGT_EXIT_FAILURE"
fi
-$SOURCE_DIR/../tools/intel_l3_parity -r 0 -b 0 -s 0 -e
+"$SOURCE_DIR/../tools/intel_l3_parity" -r 0 -b 0 -s 0 -e
+
#Check that we can clear remaps
-if [ `$SOURCE_DIR/../tools/intel_l3_parity -l | wc -l` != 1 ] ; then
+can_clear=$("$SOURCE_DIR/../tools/intel_l3_parity" -l | wc -l)
+if [ "$can_clear" != 1 ] ; then
echo "Fail 2"
- exit $IGT_EXIT_FAILURE
+ exit "$IGT_EXIT_FAILURE"
fi
diff --git a/tests/test_rte_check b/tests/test_rte_check
deleted file mode 100755
index 2a891b8..0000000
--- a/tests/test_rte_check
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
-
-exit $IGT_EXIT_SUCCESS
diff --git a/tests/tools_test b/tests/tools_test
index a27fb87..dd10531 100755
--- a/tests/tools_test
+++ b/tests/tools_test
@@ -1,16 +1,21 @@
-#!/bin/bash
+#!/bin/sh
# Test some of the most critical tools we have accidentally broken before.
# TODO: Possibly make tests parse output
-SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
-. $SOURCE_DIR/drm_lib.sh
+if [ -n "$BASH_SOURCE" ]; then
+ THIS_SCRIPT=$BASH_SOURCE
+else
+ THIS_SCRIPT=$0
+fi
+
+SOURCE_DIR=$(dirname "$THIS_SCRIPT")
+. "$SOURCE_DIR/drm_lib.sh"
# ARB_MODE has existed for many gens
-PATH=$SOURCE_DIR/../tools:$PATH
+PATH="$SOURCE_DIR/../tools:$PATH"
do_or_die "intel_reg read 0x4030"
do_or_die "intel_reg dump"
# TODO: Add more tests
-exit $IGT_EXIT_SUCCESS
-
+exit "$IGT_EXIT_SUCCESS"
--
2.7.4
More information about the Intel-gfx
mailing list