1 #!/bin/bash 2 3 # udelay() test script 4 # 5 # Test is executed by writing and reading to /sys/kernel/debug/udelay_test 6 # and exercises a variety of delays to ensure that udelay() is delaying 7 # at least as long as requested (as compared to ktime). 8 # 9 # Copyright (C) 2014 Google, Inc. 10 # 11 # This software is licensed under the terms of the GNU General Public 12 # License version 2, as published by the Free Software Foundation, and 13 # may be copied, distributed, and modified under those terms. 14 # 15 # This program is distributed in the hope that it will be useful, 16 # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 # GNU General Public License for more details. 19 20 MODULE_NAME=udelay_test 21 UDELAY_PATH=/sys/kernel/debug/udelay_test 22 23 setup() 24 { 25 /sbin/modprobe -q $MODULE_NAME 26 tmp_file=`mktemp` 27 } 28 29 test_one() 30 { 31 delay=$1 32 echo $delay > $UDELAY_PATH 33 tee -a $tmp_file < $UDELAY_PATH 34 } 35 36 cleanup() 37 { 38 if [ -f $tmp_file ]; then 39 rm $tmp_file 40 fi 41 /sbin/modprobe -q -r $MODULE_NAME 42 } 43 44 trap cleanup EXIT 45 setup 46 47 # Delay for a variety of times. 48 # 1..200, 200..500 (by 10), 500..2000 (by 100) 49 for (( delay = 1; delay < 200; delay += 1 )); do 50 test_one $delay 51 done 52 for (( delay = 200; delay < 500; delay += 10 )); do 53 test_one $delay 54 done 55 for (( delay = 500; delay <= 2000; delay += 100 )); do 56 test_one $delay 57 done 58 59 # Search for failures 60 count=`grep -c FAIL $tmp_file` 61 if [ $? -eq "0" ]; then 62 echo "ERROR: $count delays failed to delay long enough" 63 retcode=1 64 fi 65 66 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.