0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 MODULE_NAME=udelay_test
0014 UDELAY_PATH=/sys/kernel/debug/udelay_test
0015
0016 setup()
0017 {
0018 /sbin/modprobe -q $MODULE_NAME
0019 tmp_file=`mktemp`
0020 }
0021
0022 test_one()
0023 {
0024 delay=$1
0025 echo $delay > $UDELAY_PATH
0026 tee -a $tmp_file < $UDELAY_PATH
0027 }
0028
0029 cleanup()
0030 {
0031 if [ -f $tmp_file ]; then
0032 rm $tmp_file
0033 fi
0034 /sbin/modprobe -q -r $MODULE_NAME
0035 }
0036
0037 trap cleanup EXIT
0038 setup
0039
0040
0041
0042 for (( delay = 1; delay < 200; delay += 1 )); do
0043 test_one $delay
0044 done
0045 for (( delay = 200; delay < 500; delay += 10 )); do
0046 test_one $delay
0047 done
0048 for (( delay = 500; delay <= 2000; delay += 100 )); do
0049 test_one $delay
0050 done
0051
0052
0053 count=`grep -c FAIL $tmp_file`
0054 if [ $? -eq "0" ]; then
0055 echo "ERROR: $count delays failed to delay long enough"
0056 retcode=1
0057 fi
0058
0059 exit $retcode