summaryrefslogtreecommitdiff
path: root/bin
diff options
authorSylvain Pineau <sylvain.pineau@canonical.com>2017-01-31 18:43:14 +0100
committerSylvain Pineau <sylvain.pineau@canonical.com>2017-01-31 18:43:14 +0100
commit3fc505c5e6e2fa06ee3be0af07e99e6dad237025 (patch)
tree60f991fa25897c83de71706efa3fd52d1485f6db /bin
parentec2d0fe7cce712f5c0327240daf545505b37d382 (diff)
Import plainbox-provider-checkbox_0.34.0~rc2.orig.tar.gzupstream-0.34.0_rc2patched-0.34.0_rc2-1
Diffstat (limited to 'bin')
-rwxr-xr-xbin/disk_stats_test60
1 files changed, 31 insertions, 29 deletions
diff --git a/bin/disk_stats_test b/bin/disk_stats_test
index 851dff7..3c88a6c 100755
--- a/bin/disk_stats_test
+++ b/bin/disk_stats_test
@@ -4,11 +4,21 @@
#and is properly represented. Defaults to sda if not passed a disk at run time
DISK="sda"
+STATUS=0
check_return_code() {
if [ "${1}" -ne "0" ]; then
echo "ERROR: retval ${1} : ${2}" >&2
- exit ${1}
+ if [[ $STATUS -eq 0 ]]; then
+ STATUS=${1}
+ fi
+ if [ $# -gt 2 ]; then
+ shift
+ shift
+ for item in "$@"; do
+ echo "output: "$item
+ done
+ fi
fi
}
@@ -16,53 +26,45 @@ if [[ "$1" != '' ]]; then
DISK="$1"
fi
-#Get some baseline stats for use later
-echo "Getting baseline stats"
-PROC_STAT_BEGIN=`grep -m 1 $DISK /proc/diskstats`
-SYS_STAT_BEGIN=`cat /sys/block/$DISK/stat`
-
-#Generate some disk activity using hdparm -t
-echo "Generating some disk activity"
-hdparm -t "/dev/$DISK" 2&> /dev/null
-
-#Sleep 5 to let the stats files catch up
-sleep 5
-
#Check /proc/partitions, exit with fail if disk isn't found
-echo "Checking /proc/partitions"
-grep -q $DISK /proc/partitions
+grep -w -q $DISK /proc/partitions
check_return_code $? "Disk $DISK not found in /proc/partitions"
#Next, check /proc/diskstats
-echo "Checking /proc/diskstats"
-grep -q -m 1 $DISK /proc/diskstats
+grep -w -q -m 1 $DISK /proc/diskstats
check_return_code $? "Disk $DISK not found in /proc/diskstats"
#Verify the disk shows up in /sys/block/
-echo "Checking /sys/block"
-ls /sys/block | grep -q $DISK
+ls /sys/block | grep -w -q $DISK
check_return_code $? "Disk $DISK not found in /sys/block"
#Verify there are stats in /sys/block/$DISK/stat
-echo "Checking /sys/block/$DISK/stat"
[[ -s "/sys/block/$DISK/stat" ]]
check_return_code $? "stat is either empty or nonexistant in /sys/block/$DISK/"
+#Get some baseline stats for use later
+PROC_STAT_BEGIN=`grep -w -m 1 $DISK /proc/diskstats`
+SYS_STAT_BEGIN=`cat /sys/block/$DISK/stat`
+
+#Generate some disk activity using hdparm -t
+hdparm -t "/dev/$DISK" 2&> /dev/null
+
#Sleep 5 to let the stats files catch up
sleep 5
#Make sure the stats have changed:
-echo "Getting ending stats"
-PROC_STAT_END=`grep -m 1 $DISK /proc/diskstats`
+PROC_STAT_END=`grep -w -m 1 $DISK /proc/diskstats`
SYS_STAT_END=`cat /sys/block/$DISK/stat`
-echo "Checking /proc/diskstats for changes"
[[ "$PROC_STAT_BEGIN" != "$PROC_STAT_END" ]]
-check_return_code $? "Stats in /proc/diskstats did not change"
+check_return_code $? "Stats in /proc/diskstats did not change" \
+ "$PROC_STAT_BEGIN" "$PROC_STAT_END"
-echo "Checking /sys/block/$DISK/stat for changes"
-[[ "$SYS_STAT_BEGIN" != "$SYS_STAT_END" ]]
-check_return_code $? "Stats in /sys/block/$DISK/stat did not change"
+check_return_code $? "Stats in /sys/block/$DISK/stat did not change" \
+ "$SYS_STAT_BEGIN" "$SYS_STAT_END"
+
+if [[ $STATUS -eq 0 ]]; then
+ echo "PASS: Finished testing stats for $DISK"
+fi
-echo "PASS: Finished testing stats for $DISK"
-exit 0
+exit $STATUS