mir3c/squashfs-root/usr/sbin/disk_speedtest.sh

36 lines
865 B
Bash
Executable File

#!/bin/sh
# simple device speed test script @xiaomi
fail_log() {
echo "Error:" "$1"
[ -f "$mountpoint"/.1.bin ] && rm -f "$mountpoint"/.1.bin
exit 1
}
drive="$1"
timeout="$2"
[ -z "$timeout" ] && timeout=5
[ -z "$drive" ] && fail_log "Input test drive"
[ -e "$drive" ] || fail_log "Device not found"
mount | grep -q "$drive" || fail_log "USB device mount failed"
mountpoint=`cat /proc/mounts | grep "$drive" | head -n 1 | cut -d " " -f 2`
echo 3 > /proc/sys/vm/drop_caches
date1=`date +%s`
dd if=/dev/zero of="$mountpoint"/1.bin bs=4096 count=2k &> /dev/null
sync
echo 3 > /proc/sys/vm/drop_caches
md5=`md5sum "$mountpoint"/1.bin | cut -d " " -f 1`
[ "$md5" = "96995b58d4cbf6aaa9041b4f00c7f6ae" ] || fail_log "md5 sum failed"
date2=`date +%s`
[ "$(($date2-$date1))" -gt "$timeout" ] && fail_log "usb too slow"
rm -f "$mountpoint"/1.bin
sync
echo "PASS"