Test both debugfs and sysfs error_state interfaces. v2: sysfs error_state not mandatory Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com> --- tests/ZZ_hangman | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/tests/ZZ_hangman b/tests/ZZ_hangman index 08c5514..4db3823 100755 --- a/tests/ZZ_hangman +++ b/tests/ZZ_hangman @@ -18,25 +18,49 @@ if [ ! -f i915_ring_stop ] ; then exit 77 fi -if cat i915_error_state | grep -v "no error state collected" > /dev/null ; then - echo "gpu hang dectected" - exit 1 -fi +function check_iface { + estate_fname=$1 + mandatory=$2 -# stop rings -echo 0xf > i915_ring_stop -echo "rings stopped" + echo checking ${estate_fname} -(cd $oldpath; $SOURCE_DIR/gem_exec_big) > /dev/null + if [ ! -f $estate_fname ] ; then + if [ $mandatory != 0 ] ; then + echo "'${estate_fname}' not found"; + exit 1; + else + echo "${estate_fname} not mandatory"; + return; + fi + fi -if cat i915_error_state | grep -v "no error state collected" > /dev/null ; then - echo "gpu hang correctly dectected" -else - echo "gpu hang not dectected" + if cat $estate_fname | grep -v "no error state collected" > /dev/null ; then + echo "gpu hang detected" exit 2 -fi + fi + + echo 0xf > i915_ring_stop + echo "rings stopped" + + (cd $oldpath; $SOURCE_DIR/gem_exec_big) > /dev/null + + if cat $estate_fname | grep -v "no error state collected" > /dev/null ; then + echo "gpu hang correctly detected" + else + echo "gpu hang not detected" + exit 3 + fi # clear error state -echo > i915_error_state + echo > $estate_fname + + if cat $estate_fname | grep -v "no error state collected" > /dev/null ; then + echo "gpu hang still present" + exit 4 + fi +} + +check_iface $i915_dfs_path/i915_error_state 1 +check_iface $i915_sfs_path/error_state 0 exit 0 -- 1.7.9.5