* [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure
@ 2014-07-29 13:45 Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
` (4 more replies)
0 siblings, 5 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-07-29 13:45 UTC (permalink / raw)
To: u-boot
New test for UMS regressions catching has been added.
Moreover some DFU enhancements have been included as well.
Lukasz Majewski (3):
test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test
files
test: dfu: cosmetic: Add missing license information to DFU test
scripts
test: ums: Add script for testing UMS gadget operation
test/dfu/dfu_gadget_test.sh | 10 +++
test/dfu/dfu_gadget_test_init.sh | 16 ++++-
test/ums/README | 17 +++++
test/ums/ums_gadget_test.sh | 130 +++++++++++++++++++++++++++++++++++++++
4 files changed, 172 insertions(+), 1 deletion(-)
create mode 100644 test/ums/README
create mode 100755 test/ums/ums_gadget_test.sh
--
2.0.0.rc2
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
@ 2014-07-29 13:45 ` Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
` (3 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-07-29 13:45 UTC (permalink / raw)
To: u-boot
It is now possible to pass to the dfu_gadget_test_init.sh script the sizes
of files to be generated.
This feature is required by UMS tests which reuse this code.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
test/dfu/dfu_gadget_test_init.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 2163a68..0d5c6c0 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -9,7 +9,11 @@ COLOUR_DEFAULT="\33[0m"
LOG_DIR="./log"
-TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+if [ $# -eq 0 ]; then
+ TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+else
+ TEST_FILES_SIZES=$@
+fi
printf "Init script for generating data necessary for DFU test script"
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
@ 2014-07-29 13:45 ` Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
` (2 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-07-29 13:45 UTC (permalink / raw)
To: u-boot
By mistake I've forgotten to add the SPDX license tags for the DFU testing
scripts.
This commit fixes that and also provides some other relevant information.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
test/dfu/dfu_gadget_test.sh | 10 ++++++++++
test/dfu/dfu_gadget_test_init.sh | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh
index 4133155..2f5b7db 100755
--- a/test/dfu/dfu_gadget_test.sh
+++ b/test/dfu/dfu_gadget_test.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# DFU operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 0d5c6c0..640628e 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# Script for test files generation
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
@ 2014-07-29 13:45 ` Lukasz Majewski
2014-07-29 16:45 ` Stephen Warren
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
4 siblings, 1 reply; 17+ messages in thread
From: Lukasz Majewski @ 2014-07-29 13:45 UTC (permalink / raw)
To: u-boot
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@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@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
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation
2014-07-29 13:45 ` [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
@ 2014-07-29 16:45 ` Stephen Warren
2014-07-30 11:44 ` Lukasz Majewski
0 siblings, 1 reply; 17+ messages in thread
From: Stephen Warren @ 2014-07-29 16:45 UTC (permalink / raw)
To: u-boot
On 07/29/2014 07:45 AM, Lukasz Majewski wrote:
> 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.
Patches 1 and 2,
Acked-by: Stephen Warren <swarren@nvidia.com>
For this patch, I wonder whether:
a) Should it do some raw dd tests too, for partitions/devices without a
filesystem? Perhaps we should have separate scripts (for each of DFU and
UMS) for filesystem and raw testing. So, this could be addressed later.
b) Should this script (optionally?) create the filesystem itself, so the
test is completely self-contained. Otherwise, the user has to manually
run e.g. parted and mk*fs themselves, by which time they've already
tested UMS a fair bit without this script.
c) Do we really need the "Y" parameters (filesystem type) to the script?
"mount" will automatically try all known filesystem types on my Linux
host at least, and it would make it simpler to run the script if you
simply dropped the "-t" option to "mount".
> diff --git a/test/ums/README b/test/ums/README
> +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
can you s/X/PARTNUM/ s/Y/fstype/ here. That'd make the example command a
bit more explanatory even without the paragraph below that explains what
X and Y are, and also make it easier to correlate the description with
the command.
> +
> +... 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.
Perhaps this should say:
'mmc part' or 'part list' commands.
> +The optional [test_file] parameter is for specifying the exact test file
> +to use.
> \ No newline at end of file
That's probably not right.
> diff --git a/test/ums/ums_gadget_test.sh b/test/ums/ums_gadget_test.sh
> +../dfu/dfu_gadget_test_init.sh 33M 97M
I'm just curious what's special about those two sizes.
> +ums_test_file () {
> + 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
I'm not sure any of those "sync"s are necessary; "mount" should sync as
part of its own operation.
> + MD5_TX=$MD5SUM
> + sleep 1
Why do we need to sleep?
> +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
I think here, we should assign all positional arguments to named
variables rather than using $1/... later on; something like:
PART_NUM=$1; shift
FSTYPE=$1; shift
MNT_DIR=$1; shift
TEST_FILES=$@
For MNT_DIR, can we simply create a temporary directory (e.g.
/mnt/tmp-ums-test-$$) so the user doesn't have to pass in the name? The
script requires root after all.
> +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 ' ')
May as well use `` or $() consistently for those two lines.
This seems slightly dangerous; what if my system has been plugged in for
a long time and I've plugged in some other USB storage device since.
Better to take the device name on the command-line, or perhaps to take
the USB VID/PID on the command-line, then scan sysfs for a USB device
with matching VID/PID, and find out what device node is hosted by it.
> \ No newline at end of file
Probably should fix that too.
Can you add a trap handler so that if the user CTRL-C's the script, the
disk is unmounted, the mount directory is removed (if you make the
script create one internally), and any temporary files are deleted.
Right now, cleanup only runs if the script successfully runs to the end.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation
2014-07-29 16:45 ` Stephen Warren
@ 2014-07-30 11:44 ` Lukasz Majewski
0 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-07-30 11:44 UTC (permalink / raw)
To: u-boot
Hi Stephen,
> On 07/29/2014 07:45 AM, Lukasz Majewski wrote:
> > 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.
>
> Patches 1 and 2,
> Acked-by: Stephen Warren <swarren@nvidia.com>
>
> For this patch, I wonder whether:
>
> a) Should it do some raw dd tests too, for partitions/devices without
> a filesystem? Perhaps we should have separate scripts (for each of
> DFU and UMS) for filesystem and raw testing. So, this could be
> addressed later.
I think that we should prepare separate scripts. One script per tested
functionality.
>
> b) Should this script (optionally?) create the filesystem itself, so
> the test is completely self-contained. Otherwise, the user has to
> manually run e.g. parted and mk*fs themselves, by which time they've
> already tested UMS a fair bit without this script.
The test should be extended to accept an additional flat - e.g.
--create_fs.
As you pointed out, this could save some time.
>
> c) Do we really need the "Y" parameters (filesystem type) to the
> script? "mount" will automatically try all known filesystem types on
> my Linux host at least, and it would make it simpler to run the
> script if you simply dropped the "-t" option to "mount".
I agree. The Y parameter will be removed and we will allow mount to do
the job.
>
> > diff --git a/test/ums/README b/test/ums/README
>
> > +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
>
> can you s/X/PARTNUM/ s/Y/fstype/ here. That'd make the example
> command a bit more explanatory even without the paragraph below that
> explains what X and Y are, and also make it easier to correlate the
> description with the command.
Ok, I will do that.
>
> > +
> > +... 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.
>
> Perhaps this should say:
> 'mmc part' or 'part list' commands.
Ok.
>
> > +The optional [test_file] parameter is for specifying the exact
> > test file +to use.
> > \ No newline at end of file
>
> That's probably not right.
Ok.
>
> > diff --git a/test/ums/ums_gadget_test.sh
> > b/test/ums/ums_gadget_test.sh
>
> > +../dfu/dfu_gadget_test_init.sh 33M 97M
>
> I'm just curious what's special about those two sizes.
Nothing special. I just wanted to have sufficiently large files to test
UMS capabilities (since I assume, that DFU will not transfer so large
files very often).
With UMS it is not so important to test the corner cases values (as we
did with DFU tests), but to check how well transfers of large files is
performed.
>
> > +ums_test_file () {
>
> > + 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
>
> I'm not sure any of those "sync"s are necessary; "mount" should sync
> as part of its own operation.
Yes, I agree. mount/umount do the sync as well. I will fix this.
>
> > + MD5_TX=$MD5SUM
> > + sleep 1
>
> Why do we need to sleep?
On my linux box there were some problems without this delay (probably
caused by time needed for plugging in USB device).
Maybe on your setup it will work smoothly.
>
> > +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
>
> I think here, we should assign all positional arguments to named
> variables rather than using $1/... later on; something like:
>
> PART_NUM=$1; shift
> FSTYPE=$1; shift
> MNT_DIR=$1; shift
> TEST_FILES=$@
>
Ok.
> For MNT_DIR, can we simply create a temporary directory (e.g.
> /mnt/tmp-ums-test-$$) so the user doesn't have to pass in the name?
> The script requires root after all.
Ok.
>
> > +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 ' ')
>
> May as well use `` or $() consistently for those two lines.
According to the reply written below, we will not need this code.
>
> This seems slightly dangerous; what if my system has been plugged in
> for a long time and I've plugged in some other USB storage device
> since. Better to take the device name on the command-line, or perhaps
> to take the USB VID/PID on the command-line, then scan sysfs for a
> USB device with matching VID/PID, and find out what device node is
> hosted by it.
Your proposition is more reliable. I think that the idProduct/idVendor
shall be passed to the script.
>
> > \ No newline at end of file
>
> Probably should fix that too.
Ok.
>
> Can you add a trap handler so that if the user CTRL-C's the script,
> the disk is unmounted, the mount directory is removed (if you make
> the script create one internally), and any temporary files are
> deleted. Right now, cleanup only runs if the script successfully runs
> to the end.
Good idea. I will add this to v2.
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
` (2 preceding siblings ...)
2014-07-29 13:45 ` [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
@ 2014-08-14 12:41 ` Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
` (2 more replies)
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
4 siblings, 3 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-14 12:41 UTC (permalink / raw)
To: u-boot
New test for UMS regressions catching has been added.
Moreover some DFU enhancements have been included as well.
Lukasz Majewski (3):
test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test
files
test: dfu: cosmetic: Add missing license information to DFU test
scripts
test: ums: Add script for testing UMS gadget operation
test/dfu/dfu_gadget_test.sh | 10 +++
test/dfu/dfu_gadget_test_init.sh | 16 +++-
test/ums/README | 26 ++++++
test/ums/ums_gadget_test.sh | 169 +++++++++++++++++++++++++++++++++++++++
4 files changed, 220 insertions(+), 1 deletion(-)
create mode 100644 test/ums/README
create mode 100755 test/ums/ums_gadget_test.sh
--
2.0.0.rc2
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v2 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
@ 2014-08-14 12:41 ` Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-14 12:41 UTC (permalink / raw)
To: u-boot
It is now possible to pass to the dfu_gadget_test_init.sh script the sizes
of files to be generated.
This feature is required by UMS tests which reuse this code.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---
Changes for v2:
- None
---
test/dfu/dfu_gadget_test_init.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 2163a68..0d5c6c0 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -9,7 +9,11 @@ COLOUR_DEFAULT="\33[0m"
LOG_DIR="./log"
-TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+if [ $# -eq 0 ]; then
+ TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+else
+ TEST_FILES_SIZES=$@
+fi
printf "Init script for generating data necessary for DFU test script"
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v2 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
@ 2014-08-14 12:41 ` Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-14 12:41 UTC (permalink / raw)
To: u-boot
By mistake I've forgotten to add the SPDX license tags for the DFU testing
scripts.
This commit fixes that and also provides some other relevant information.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---
Changes for v2:
- None
---
test/dfu/dfu_gadget_test.sh | 10 ++++++++++
test/dfu/dfu_gadget_test_init.sh | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh
index 4133155..2f5b7db 100755
--- a/test/dfu/dfu_gadget_test.sh
+++ b/test/dfu/dfu_gadget_test.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# DFU operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 0d5c6c0..640628e 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# Script for test files generation
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
@ 2014-08-14 12:41 ` Lukasz Majewski
2014-08-15 17:06 ` Stephen Warren
2 siblings, 1 reply; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-14 12:41 UTC (permalink / raw)
To: u-boot
This commit adds new test for UMS USB gadget to u-boot mainline tree.
It is similar in operation to the one already available in test/dfu
directory.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
Changes for v2:
- Add -f switch for optional FS creation on target UMS partition
- Remove need for passing FS type to script
- Remove syncs
- Use named variables instead of $1, $2, $3 ... etc
- Create temporary mount directory at /mnt/tmp-ums-test/
- Use target device's VID/PID to find exact mount device (/dev/sdX)
- Add support for Ctrl+C tap
- Rewrite README entry
---
test/ums/README | 26 +++++++
test/ums/ums_gadget_test.sh | 169 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 195 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..84906be
--- /dev/null
+++ b/test/ums/README
@@ -0,0 +1,26 @@
+UMS test script.
+
+ums_gadget_test.sh
+==================
+
+Example usage:
+1. On the target:
+ create UMS exportable partitions (with e.g. gpt write)
+ ums 0 mmc 0
+2. On the host:
+ sudo test/ums/ums_gadget_test.sh VID PID PART_NUM [-f FILE_SYSTEM] [test_file]
+ e.g. sudo test/ums/ums_gadget_test.sh 04e8 6601 6 -f vfat ./dat_14M.img
+
+... where:
+ VID - UMS device USB Vendor ID
+ PID - UMS device USB Product ID
+ PART_NUM - is the partition number on which UMS operates
+
+Information about available partitions on the target one can read with using
+the 'mmc part' or 'part list' commands.
+
+The [-f FILE_SYSTEM] optional switch allows for formatting target partition to
+FILE_SYSTEM.
+
+The last, optional [test_file] parameter is for specifying the exact test file
+to use.
diff --git a/test/ums/ums_gadget_test.sh b/test/ums/ums_gadget_test.sh
new file mode 100755
index 0000000..2cfa208
--- /dev/null
+++ b/test/ums/ums_gadget_test.sh
@@ -0,0 +1,169 @@
+#! /bin/bash
+
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# UMS operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
+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 $MNT_DIR
+}
+
+control_c()
+# run if user hits control-c
+{
+ echo -en "\n*** CTRL+C ***\n"
+ umount $MNT_DIR
+ cleanup
+ exit 0
+}
+
+# trap keyboard interrupt (control-c)
+trap control_c SIGINT
+
+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 /dev/$MEM_DEV $MNT_DIR
+ if [ -f $MNT_DIR/dat_* ]; then
+ rm $MNT_DIR/dat_*
+ fi
+
+ cp ./$1 $MNT_DIR
+ umount $MNT_DIR
+
+
+ echo -n "TX: "
+ calculate_md5sum $1
+
+ MD5_TX=$MD5SUM
+ sleep 1
+ N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
+
+ mount /dev/$MEM_DEV $MNT_DIR
+ cp $MNT_DIR/$1 $N_FILE || die $?
+ rm $MNT_DIR/$1
+ 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 VID PID PART_NUM [-f ext4] [test_file]"
+ die
+fi
+
+MNT_DIR="/mnt/tmp-ums-test"
+
+VID=$1; shift
+PID=$1; shift
+PART_NUM=$1; shift
+
+if [ "$1" == "-f" ]; then
+ shift
+ FS_TO_FORMAT=$1; shift
+fi
+
+TEST_FILE=$1
+
+idVendor=`find /sys -type f -name "idVendor" -exec grep -w $VID {} \;`
+idProduct=`find /sys -type f -name "idProduct" -exec grep -w $PID {} \;`
+if [ -z "$idVendor" ] || [ -z "$idProduct" ]; then
+ echo "Device $VID:$PID not connected!"
+ exit 0
+fi
+
+USB_DEV=`find /sys -type f -name "idProduct" -exec grep -l $PID {} \;`
+USB_DEV=`dirname $USB_DEV`
+
+MEM_DEV=`find $USB_DEV -name "sd[a-z]" | awk -F/ '{print $(NF)}' -`
+if [ -z $MEM_DEV ]; then
+ echo "Connect target"
+ echo "e.g. ums 0 mmc 0"
+ die
+fi
+
+mkdir -p $RCV_DIR
+if [ ! -d $MNT_DIR ]; then
+ mkdir -p $MNT_DIR
+fi
+
+MEM_DEV=$MEM_DEV$PART_NUM
+
+if [ -n "$FS_TO_FORMAT" ]; then
+ echo -n "Formatting partition /dev/$MEM_DEV to $FS_TO_FORMAT"
+ mkfs -t $FS_TO_FORMAT /dev/$MEM_DEV > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ printf " $COLOUR_GREEN DONE $COLOUR_DEFAULT \n"
+ else
+ die
+ fi
+fi
+
+printf "Mount: /dev/$MEM_DEV \n"
+
+if [ -n "$TEST_FILE" ]; then
+ if [ ! -e $TEST_FILE ]; then
+ echo "No file: $TEST_FILE"
+ die
+ fi
+ ums_test_file $TEST_FILE
+else
+ for file in $DIR*.$SUFFIX
+ do
+ ums_test_file $file
+ done
+fi
+
+cleanup
+
+exit 0
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation
2014-08-14 12:41 ` [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
@ 2014-08-15 17:06 ` Stephen Warren
0 siblings, 0 replies; 17+ messages in thread
From: Stephen Warren @ 2014-08-15 17:06 UTC (permalink / raw)
To: u-boot
On 08/14/2014 06:41 AM, Lukasz Majewski wrote:
> This commit adds new test for UMS USB gadget to u-boot mainline tree.
> It is similar in operation to the one already available in test/dfu
> directory.
This looks good, although I have a few small comments...
> diff --git a/test/ums/README b/test/ums/README
> +Example usage:
> +1. On the target:
> + create UMS exportable partitions (with e.g. gpt write)
I'd like to avoid that requirement. Perhaps the script can operate on
raw devices without a partition table too. Can we enhance the script so
that if the user specifies - as the partition ID, then $PART_NUM gets
set to '' and hence the whole device is used?
If you do that, I'd like to add the following to the line I quoted above:
, or specify a partition ID of - to use the entire device.
You might want to insert an extra step in the documentation here:
Create a filesystem on the partition or device, or pass the -f option to
the test script.
> diff --git a/test/ums/ums_gadget_test.sh b/test/ums/ums_gadget_test.sh
> +idVendor=`find /sys -type f -name "idVendor" -exec grep -w $VID {} \;`
> +idProduct=`find /sys -type f -name "idProduct" -exec grep -w $PID {} \;`
> +if [ -z "$idVendor" ] || [ -z "$idProduct" ]; then
> + echo "Device $VID:$PID not connected!"
> + exit 0
> +fi
That ensures that the given VID/PID exist somewhere, but not necessarily
even on the same USB device.
> +USB_DEV=`find /sys -type f -name "idProduct" -exec grep -l $PID {} \;`
> +USB_DEV=`dirname $USB_DEV`
... and that simply finds a USB device with a matching PID, but ignores
the VID.
This might work better:
#!/bin/bash
VID=0955
PID=701a
for f in `find /sys -type f -name idProduct`; do
d=`dirname ${f}`
if [ `cat ${d}/idVendor` != "${VID}" ]; then
continue
fi
if [ `cat ${d}/idProduct` != "${PID}" ]; then
continue
fi
USB_DEV=${d}
break
done
if [ -z "${USB_DEV}" ]; then
echo "Connect target"
echo "e.g. ums 0 mmc 0"
exit 1
fi
echo ${USB_DEV}
> +MEM_DEV=`find $USB_DEV -name "sd[a-z]" | awk -F/ '{print $(NF)}' -`
"-type d" might be a good idea there.
That's probably OK, although it worries me slightly to rely on the
naming convention of the device. If the code above doesn't work for some
people, perhaps we could find a file named "dev", and extract the device
major/minor from it. However, we'd need some complex logic to
distinguish between the many files named "dev"; in ${USB_DEV}/ itself,
the various partitions on the device, and the scsi_generic and "bsg"
(whatever that is) devices. So, it's probably not worth changing that now.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
` (3 preceding siblings ...)
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
@ 2014-08-18 10:12 ` Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
` (2 more replies)
4 siblings, 3 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-18 10:12 UTC (permalink / raw)
To: u-boot
New test for UMS regressions catching has been added.
Moreover some DFU enhancements have been included as well.
Lukasz Majewski (3):
test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test
files
test: dfu: cosmetic: Add missing license information to DFU test
scripts
test: ums: Add script for testing UMS gadget operation
test/dfu/dfu_gadget_test.sh | 10 +++
test/dfu/dfu_gadget_test_init.sh | 16 +++-
test/ums/README | 30 +++++++
test/ums/ums_gadget_test.sh | 175 +++++++++++++++++++++++++++++++++++++++
4 files changed, 230 insertions(+), 1 deletion(-)
create mode 100644 test/ums/README
create mode 100755 test/ums/ums_gadget_test.sh
--
2.0.0.rc2
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
@ 2014-08-18 10:12 ` Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-18 10:12 UTC (permalink / raw)
To: u-boot
It is now possible to pass to the dfu_gadget_test_init.sh script the sizes
of files to be generated.
This feature is required by UMS tests which reuse this code.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---
Changes for v2:
- None
Changes for v3:
- None
---
test/dfu/dfu_gadget_test_init.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 2163a68..0d5c6c0 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -9,7 +9,11 @@ COLOUR_DEFAULT="\33[0m"
LOG_DIR="./log"
-TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+if [ $# -eq 0 ]; then
+ TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 1048575 1048576 8M"
+else
+ TEST_FILES_SIZES=$@
+fi
printf "Init script for generating data necessary for DFU test script"
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
@ 2014-08-18 10:12 ` Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-18 10:12 UTC (permalink / raw)
To: u-boot
By mistake I've forgotten to add the SPDX license tags for the DFU testing
scripts.
This commit fixes that and also provides some other relevant information.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---
Changes for v2:
- None
Changes for v3:
- None
---
test/dfu/dfu_gadget_test.sh | 10 ++++++++++
test/dfu/dfu_gadget_test_init.sh | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh
index 4133155..2f5b7db 100755
--- a/test/dfu/dfu_gadget_test.sh
+++ b/test/dfu/dfu_gadget_test.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# DFU operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
diff --git a/test/dfu/dfu_gadget_test_init.sh b/test/dfu/dfu_gadget_test_init.sh
index 0d5c6c0..640628e 100755
--- a/test/dfu/dfu_gadget_test_init.sh
+++ b/test/dfu/dfu_gadget_test_init.sh
@@ -1,5 +1,15 @@
#! /bin/bash
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# Script fixes, enhancements and testing:
+# Stephen Warren <swarren@nvidia.com>
+#
+# Script for test files generation
+#
+# SPDX-License-Identifier: GPL-2.0+
+
set -e # any command return if not equal to zero
clear
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
@ 2014-08-18 10:12 ` Lukasz Majewski
2014-08-18 16:26 ` Stephen Warren
2 siblings, 1 reply; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-18 10:12 UTC (permalink / raw)
To: u-boot
This commit adds new test for UMS USB gadget to u-boot mainline tree.
It is similar in operation to the one already available in test/dfu
directory.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
Changes for v2:
- Add -f switch for optional FS creation on target UMS partition
- Remove need for passing FS type to script
- Remove syncs
- Use named variables instead of $1, $2, $3 ... etc
- Create temporary mount directory at /mnt/tmp-ums-test/
- Use target device's VID/PID to find exact mount device (/dev/sdX)
- Add support for Ctrl+C tap
- Rewrite README entry
Changes for v3:
- Allow PART_NUM to be "-", which gives access to the whole device
- Rewrite VID/PID sysfs matching code
- Update documentation for PART_NUM
- Add -type d switch for memory device matching
---
test/ums/README | 30 ++++++++
test/ums/ums_gadget_test.sh | 175 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 205 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..69aa6b7
--- /dev/null
+++ b/test/ums/README
@@ -0,0 +1,30 @@
+UMS test script.
+
+ums_gadget_test.sh
+==================
+
+Example usage:
+1. On the target:
+ create UMS exportable partitions (with e.g. gpt write), or specify a
+ partition number (PART_NUM) as "-" to use the entire device
+ ums 0 mmc 0
+2. On the host:
+ sudo test/ums/ums_gadget_test.sh VID PID PART_NUM [-f FILE_SYSTEM] [test_file]
+ e.g. sudo test/ums/ums_gadget_test.sh 04e8 6601 6 -f vfat ./dat_14M.img
+
+... where:
+ VID - UMS device USB Vendor ID
+ PID - UMS device USB Product ID
+ PART_NUM - is the partition number on which UMS operates or "-" to use the
+ whole device
+
+Information about available partitions on the target one can read with using
+the 'mmc part' or 'part list' commands.
+
+The partition num (PART_NUM) can be specified as '-' for using the whole device.
+
+The [-f FILE_SYSTEM] optional switch allows for formatting target partition to
+FILE_SYSTEM.
+
+The last, optional [test_file] parameter is for specifying the exact test file
+to use.
diff --git a/test/ums/ums_gadget_test.sh b/test/ums/ums_gadget_test.sh
new file mode 100755
index 0000000..56d4616
--- /dev/null
+++ b/test/ums/ums_gadget_test.sh
@@ -0,0 +1,175 @@
+#! /bin/bash
+
+# Copyright (C) 2014 Samsung Electronics
+# Lukasz Majewski <l.majewski@samsung.com>
+#
+# UMS operation test script
+#
+# SPDX-License-Identifier: GPL-2.0+
+
+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 $MNT_DIR
+}
+
+control_c()
+# run if user hits control-c
+{
+ echo -en "\n*** CTRL+C ***\n"
+ umount $MNT_DIR
+ cleanup
+ exit 0
+}
+
+# trap keyboard interrupt (control-c)
+trap control_c SIGINT
+
+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 /dev/$MEM_DEV $MNT_DIR
+ if [ -f $MNT_DIR/dat_* ]; then
+ rm $MNT_DIR/dat_*
+ fi
+
+ cp ./$1 $MNT_DIR
+ umount $MNT_DIR
+
+
+ echo -n "TX: "
+ calculate_md5sum $1
+
+ MD5_TX=$MD5SUM
+ sleep 1
+ N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
+
+ mount /dev/$MEM_DEV $MNT_DIR
+ cp $MNT_DIR/$1 $N_FILE || die $?
+ rm $MNT_DIR/$1
+ 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 VID PID PART_NUM [-f ext4] [test_file]"
+ die
+fi
+
+MNT_DIR="/mnt/tmp-ums-test"
+
+VID=$1; shift
+PID=$1; shift
+PART_NUM=$1; shift
+
+if [ "$1" == "-f" ]; then
+ shift
+ FS_TO_FORMAT=$1; shift
+fi
+
+TEST_FILE=$1
+
+for f in `find /sys -type f -name idProduct`; do
+ d=`dirname ${f}`
+ if [ `cat ${d}/idVendor` != "${VID}" ]; then
+ continue
+ fi
+ if [ `cat ${d}/idProduct` != "${PID}" ]; then
+ continue
+ fi
+ USB_DEV=${d}
+ break
+done
+
+if [ -z "${USB_DEV}" ]; then
+ echo "Connect target"
+ echo "e.g. ums 0 mmc 0"
+ exit 1
+fi
+
+MEM_DEV=`find $USB_DEV -type d -name "sd[a-z]" | awk -F/ '{print $(NF)}' -`
+
+mkdir -p $RCV_DIR
+if [ ! -d $MNT_DIR ]; then
+ mkdir -p $MNT_DIR
+fi
+
+if [ "$PART_NUM" == "-" ]; then
+ PART_NUM=""
+fi
+MEM_DEV=$MEM_DEV$PART_NUM
+
+if [ -n "$FS_TO_FORMAT" ]; then
+ echo -n "Formatting partition /dev/$MEM_DEV to $FS_TO_FORMAT"
+ mkfs -t $FS_TO_FORMAT /dev/$MEM_DEV > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ printf " $COLOUR_GREEN DONE $COLOUR_DEFAULT \n"
+ else
+ die
+ fi
+fi
+
+printf "Mount: /dev/$MEM_DEV \n"
+
+if [ -n "$TEST_FILE" ]; then
+ if [ ! -e $TEST_FILE ]; then
+ echo "No file: $TEST_FILE"
+ die
+ fi
+ ums_test_file $TEST_FILE
+else
+ for file in $DIR*.$SUFFIX
+ do
+ ums_test_file $file
+ done
+fi
+
+cleanup
+
+exit 0
--
2.0.0.rc2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation
2014-08-18 10:12 ` [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
@ 2014-08-18 16:26 ` Stephen Warren
2014-08-19 9:09 ` Lukasz Majewski
0 siblings, 1 reply; 17+ messages in thread
From: Stephen Warren @ 2014-08-18 16:26 UTC (permalink / raw)
To: u-boot
On 08/18/2014 04:12 AM, Lukasz Majewski wrote:
> This commit adds new test for UMS USB gadget to u-boot mainline tree.
> It is similar in operation to the one already available in test/dfu
> directory.
Acked-by: Stephen Warren <swarren@nvidia.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation
2014-08-18 16:26 ` Stephen Warren
@ 2014-08-19 9:09 ` Lukasz Majewski
0 siblings, 0 replies; 17+ messages in thread
From: Lukasz Majewski @ 2014-08-19 9:09 UTC (permalink / raw)
To: u-boot
Hi Stephen,
> On 08/18/2014 04:12 AM, Lukasz Majewski wrote:
> > This commit adds new test for UMS USB gadget to u-boot mainline
> > tree. It is similar in operation to the one already available in
> > test/dfu directory.
>
> Acked-by: Stephen Warren <swarren@nvidia.com>
>
Applied to u-boot-dfu.
Thanks!
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-08-19 9:09 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-29 13:45 [U-Boot] [PATCH 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
2014-07-29 13:45 ` [U-Boot] [PATCH 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2014-07-29 16:45 ` Stephen Warren
2014-07-30 11:44 ` Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
2014-08-14 12:41 ` [U-Boot] [PATCH v2 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2014-08-15 17:06 ` Stephen Warren
2014-08-18 10:12 ` [U-Boot] [PATCH v3 0/3] test: Extending USB gadget tests infrastructure Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 1/3] test: dfu: Extend dfu_gadget_test_init.sh to accept sizes of test files Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 2/3] test: dfu: cosmetic: Add missing license information to DFU test scripts Lukasz Majewski
2014-08-18 10:12 ` [U-Boot] [PATCH v3 3/3] test: ums: Add script for testing UMS gadget operation Lukasz Majewski
2014-08-18 16:26 ` Stephen Warren
2014-08-19 9:09 ` Lukasz Majewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox