[U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation
Lukasz Majewski
l.majewski at samsung.com
Tue Jul 29 15:45:44 CEST 2014
This commit adds new test for UMS USB gadget to u-boot mainline tree.
It it similar in operation to the one already available in test/dfu
directory.
Signed-off-by: Lukasz Majewski <l.majewski at samsung.com>
---
test/ums/README | 17 ++++++
test/ums/ums_gadget_test.sh | 130 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 147 insertions(+)
create mode 100644 test/ums/README
create mode 100755 test/ums/ums_gadget_test.sh
diff --git a/test/ums/README b/test/ums/README
new file mode 100644
index 0000000..cb7b27d
--- /dev/null
+++ b/test/ums/README
@@ -0,0 +1,17 @@
+UMS test script.
+
+Example usage:
+1. On the target:
+ create UMS exportable partition with a proper file system created on
+ it (e.g. EXT4, FAT).
+ ums 0 mmc 0
+2. On the host:
+ sudo test/ums/ums_gadget_test.sh X Y dir [test_file]
+ e.g. sudo test/ums/ums_gadget_test.sh 1 vfat /mnt ./dat_14M.img
+
+... where X is the partition number on which UMS operates and the Y is
+the file system. The 'dir' parameter is the mount directory on the HOST.
+Information about available partitions one can read from target via the
+'mmc part' command.
+The optional [test_file] parameter is for specifying the exact test file
+to use.
\ No newline at end of file
diff --git a/test/ums/ums_gadget_test.sh b/test/ums/ums_gadget_test.sh
new file mode 100755
index 0000000..a304c1c
--- /dev/null
+++ b/test/ums/ums_gadget_test.sh
@@ -0,0 +1,130 @@
+#! /bin/bash
+
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski at samsung.com>
+#
+# UMS operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
+set -e # any command return not equal to zero
+clear
+
+COLOUR_RED="\33[31m"
+COLOUR_GREEN="\33[32m"
+COLOUR_DEFAULT="\33[0m"
+
+DIR=./
+SUFFIX=img
+RCV_DIR=rcv/
+LOG_FILE=./log/log-`date +%d-%m-%Y_%H-%M-%S`
+
+cd `dirname $0`
+../dfu/dfu_gadget_test_init.sh 33M 97M
+
+cleanup () {
+ rm -rf $RCV_DIR
+}
+
+die () {
+ printf " $COLOUR_RED FAILED $COLOUR_DEFAULT \n"
+ cleanup
+ exit 1
+}
+
+calculate_md5sum () {
+ MD5SUM=`md5sum $1`
+ MD5SUM=`echo $MD5SUM | cut -d ' ' -f1`
+ echo "md5sum:"$MD5SUM
+}
+
+ums_test_file () {
+ printf "$COLOUR_GREEN========================================================================================= $COLOUR_DEFAULT\n"
+ printf "File:$COLOUR_GREEN %s $COLOUR_DEFAULT\n" $1
+
+ mount -t $2 /dev/$MEM_DEV $MNT_DIR
+ if [ -f $MNT_DIR/dat_* ]; then
+ rm $MNT_DIR/dat_*
+ fi
+ sync
+
+ cp ./$1 $MNT_DIR
+ sync
+ umount $MNT_DIR
+
+
+ echo -n "TX: "
+ calculate_md5sum $1
+
+ MD5_TX=$MD5SUM
+ sleep 1
+ N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
+
+ mount -t $2 /dev/$MEM_DEV $MNT_DIR
+ cp $MNT_DIR/$1 $N_FILE || die $?
+ sync
+ rm $MNT_DIR/$1
+ sync
+ umount $MNT_DIR
+
+ echo -n "RX: "
+ calculate_md5sum $N_FILE
+ MD5_RX=$MD5SUM
+
+ if [ "$MD5_TX" == "$MD5_RX" ]; then
+ printf " $COLOUR_GREEN -------> OK $COLOUR_DEFAULT \n"
+ else
+ printf " $COLOUR_RED -------> FAILED $COLOUR_DEFAULT \n"
+ cleanup
+ exit 1
+ fi
+}
+
+printf "$COLOUR_GREEN========================================================================================= $COLOUR_DEFAULT\n"
+echo "U-boot UMS test program"
+
+if [ $EUID -ne 0 ]; then
+ echo "You must be root to do this." 1>&2
+ exit 100
+fi
+
+if [ $# -lt 3 ]; then
+ echo "Wrong number of arguments"
+ echo "Example:"
+ echo "sudo ./ums_gadget_test.sh 1 vfat /mnt [test_file]"
+ die
+fi
+
+MNT_DIR=$3
+
+mkdir -p $RCV_DIR
+
+MEM_DEV=`dmesg | tail -n 10 | grep -E " sd[a-z]:" - | cut -d ':' -f 1`
+MEM_DEV=$(echo $MEM_DEV | cut -d ']' -f2 | tr -d ' ')
+
+if [ -z $MEM_DEV ]; then
+ echo "Connect target"
+ echo "e.g. ums 0 mmc 0"
+ die
+fi
+
+MEM_DEV=$MEM_DEV$1
+
+printf "Mount: /dev/$MEM_DEV FS: %s\n" $2
+
+if [ -n "$4" ]; then
+ if [ ! -e $4 ]; then
+ echo "No file: $4"
+ die
+ fi
+ ums_test_file $4 $2
+else
+ for file in $DIR*.$SUFFIX
+ do
+ ums_test_file $file $2
+ done
+fi
+
+cleanup
+
+exit 0
\ No newline at end of file
--
2.0.0.rc2
More information about the U-Boot
mailing list