1 #!/bin/bash 1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0-only 2 # SPDX-License-Identifier: GPL-2.0-only 3 3 4 # udelay() test script 4 # udelay() test script 5 # 5 # 6 # Test is executed by writing and reading to / 6 # Test is executed by writing and reading to /sys/kernel/debug/udelay_test 7 # and exercises a variety of delays to ensure 7 # and exercises a variety of delays to ensure that udelay() is delaying 8 # at least as long as requested (as compared t 8 # at least as long as requested (as compared to ktime). 9 # 9 # 10 # Copyright (C) 2014 Google, Inc. 10 # Copyright (C) 2014 Google, Inc. 11 # 11 # 12 12 13 MODULE_NAME=udelay_test 13 MODULE_NAME=udelay_test 14 UDELAY_PATH=/sys/kernel/debug/udelay_test 14 UDELAY_PATH=/sys/kernel/debug/udelay_test 15 15 16 setup() 16 setup() 17 { 17 { 18 /sbin/modprobe -q $MODULE_NAME 18 /sbin/modprobe -q $MODULE_NAME 19 tmp_file=`mktemp` 19 tmp_file=`mktemp` 20 } 20 } 21 21 22 test_one() 22 test_one() 23 { 23 { 24 delay=$1 24 delay=$1 25 echo $delay > $UDELAY_PATH 25 echo $delay > $UDELAY_PATH 26 tee -a $tmp_file < $UDELAY_PATH 26 tee -a $tmp_file < $UDELAY_PATH 27 } 27 } 28 28 29 cleanup() 29 cleanup() 30 { 30 { 31 if [ -f $tmp_file ]; then 31 if [ -f $tmp_file ]; then 32 rm $tmp_file 32 rm $tmp_file 33 fi 33 fi 34 /sbin/modprobe -q -r $MODULE_NAME 34 /sbin/modprobe -q -r $MODULE_NAME 35 } 35 } 36 36 37 trap cleanup EXIT 37 trap cleanup EXIT 38 setup 38 setup 39 39 40 # Delay for a variety of times. 40 # Delay for a variety of times. 41 # 1..200, 200..500 (by 10), 500..2000 (by 100) 41 # 1..200, 200..500 (by 10), 500..2000 (by 100) 42 for (( delay = 1; delay < 200; delay += 1 )); 42 for (( delay = 1; delay < 200; delay += 1 )); do 43 test_one $delay 43 test_one $delay 44 done 44 done 45 for (( delay = 200; delay < 500; delay += 10 ) 45 for (( delay = 200; delay < 500; delay += 10 )); do 46 test_one $delay 46 test_one $delay 47 done 47 done 48 for (( delay = 500; delay <= 2000; delay += 10 48 for (( delay = 500; delay <= 2000; delay += 100 )); do 49 test_one $delay 49 test_one $delay 50 done 50 done 51 51 52 # Search for failures 52 # Search for failures 53 count=`grep -c FAIL $tmp_file` 53 count=`grep -c FAIL $tmp_file` 54 if [ $? -eq "0" ]; then 54 if [ $? -eq "0" ]; then 55 echo "ERROR: $count delays failed to d 55 echo "ERROR: $count delays failed to delay long enough" 56 retcode=1 56 retcode=1 57 fi 57 fi 58 58 59 exit $retcode 59 exit $retcode
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.