[U-Boot] [PATCH] test: dfu: script enhancements
Lukasz Majewski
l.majewski at samsung.com
Thu Jun 12 11:51:26 CEST 2014
Hi Stephen,
> From: Stephen Warren <swarren at nvidia.com>
>
> Various misc enhancements to dfu_gadget_test.sh:
>
> * After every write (download), perform a write to a different file
> with different data. This ensures that the DFU buffer's content is
> replaced, so that if the read (upload) succeeds, we know that the
> correct data was actually read from the storage device, rather than
> simply being left over in the DFU buffer. This requires two alt
> setting names to be passed to the script, and a dummy data file to
> be generated by dfu_gadget_test_init.sh.
>
> * Fix the assumption that dfu_gadget_test.sh is run from the directory
> that contains it, by cd'ing to that directory before invoking
> ./dfu_gadget_test_init.sh.
>
> * Use $DIR$RCV_DIR consistently, rather than using plain $RCV_DIR in
> some places.
>
> * Add 959, 961 test file sizes, to be consistent with having one
> more than and one less than all the other "round" sizes 64, 128, and
> 4096.
>
> * Remove references to $BKP_DIR from dfu_gadget_test_init.sh, since it
> isn't used.
>
Thanks for enhancements Stephen - a lot of issues addressed.
However, I'm a bit puzzled, since this patch applies on top of patch
which wasn't accepted (yet) to mainline.
If Simon who had a minor comments agrees, I would opt for adding the
initial commit with this script to ML:
http://patchwork.ozlabs.org/patch/355283/
And on top apply this one.
Afterwards other comments would be addressed as well.
I would like to avoid sending many patches for base code which is still
floating on the ML.
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---
> test/dfu/README | 31 +++++++++++++++++--------------
> test/dfu/dfu_gadget_test.sh | 13 +++++++++----
> test/dfu/dfu_gadget_test_init.sh | 9 +++------
> 3 files changed, 29 insertions(+), 24 deletions(-)
>
> diff --git a/test/dfu/README b/test/dfu/README
> index f8f5a430807b..c817ad1ffeb6 100644
> --- a/test/dfu/README
> +++ b/test/dfu/README
> @@ -1,27 +1,30 @@
> DFU TEST CASE DESCRIPTION:
>
> The prerequisites for running this script are assured by
> -dfu_gadget_test_init.sh script.
> +dfu_gadget_test_init.sh, which is automatically invoked by
> dfu_gadget_test.sh. In this file user is able to generate their own
> set of test files by altering the default set of TEST_FILES_SIZES
> variable
> -Moreover, on a target device the "dfu_alt_info" env variable should
> be extended -to have "dfu_test.bin fat 0 6;" \ entry ([1]). For
> reference please consult the -config file for TRATS/TRATS2 devices
> (./include/configs/trats{2}.h) +On the target device, environment
> variable "dfu_alt_info" must contain at +least:
>
> -One can use fat, ext4 or any other supported file system, which can
> be -created in a convenient way with exporting partitions via UMS
> (ums 0 mmc 0) -and using standard tools on host (like mkfs.ext4).
> + dfu_test.bin fat 0 6;dfudummy.bin fat 0 6
> +
> +Depending on your device, you may need to replace "fat" with
> +"ext4", and "6" with the relevant partition number. For reference
> please +consult the config file for TRATS/TRATS2 devices
> +(../../include/configs/trats{2}.h)
> +
> +One can use fat, ext4 or any other supported file system supported
> by U-Boot. +These can be created by exporting storage devices via UMS
> (ums 0 mmc 0) and +using standard tools on host (like mkfs.ext4).
>
> Example usage:
> 1. On the target:
> - env default -a
> + setenv dfu_alt_info dfu_test.bin fat 0 6\;dfudummy.bin fat 0 6
> dfu 0 mmc 0
> 2. On the host:
> - ./dfu_gadget_test.sh 11
> -
> -where 11 is the mumber of alt setting corresponding to entry [1].
> + test/dfu/dfu_gadget_test.sh dfu_test.bin dfudummy.bin
>
> -The number of the alt setting entry can be obtained with dfu-util -l
> command. -In its output one should look for the
> 'name="dfu_test1.bin"' and corresponding -alt=11.
> +... where dfu_test.bin and dfudummy.bin are the names of the alt
> settings from +$dfu_alt_info.
> diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh
> index 8abd8e7de727..a33a71e47cfa 100755
> --- a/test/dfu/dfu_gadget_test.sh
> +++ b/test/dfu/dfu_gadget_test.sh
> @@ -1,4 +1,5 @@
> #! /bin/bash
> +
> set -e # any command return if not equal to zero
> clear
>
> @@ -11,10 +12,11 @@ SUFFIX=img
> RCV_DIR=rcv/
> LOG_FILE=./log/log-`date +%d-%m-%Y_%H-%M-%S`
>
> +cd `dirname $0`
> ./dfu_gadget_test_init.sh
>
> cleanup () {
> - rm -rf $RCV_DIR
> + rm -rf $DIR$RCV_DIR
> }
>
> die () {
> @@ -40,6 +42,8 @@ dfu_test_file () {
>
> MD5_TX=$MD5SUM
>
> + dfu-util -D ${DIR}/dfudummy.bin -a $TARGET_ALT_SETTING_B >>
> $LOG_FILE 2>&1 || die $? +
> N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
>
> dfu-util -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 ||
> die $? @@ -62,7 +66,7 @@ printf
> "$COLOR_GREEN============================================================
> echo "DFU EP0 transmission test program" echo "Trouble shoot ->
> disable DBG (even the KERN_DEBUG) in the UDC driver" echo "@ ->
> TRATS2 # dfu 0 mmc 0" -mkdir -p $RCV_DIR
> +mkdir -p $DIR$RCV_DIR
> touch $LOG_FILE
>
> if [ $# -eq 0 ]
> @@ -72,10 +76,11 @@ then
> fi
>
> TARGET_ALT_SETTING=$1
> +TARGET_ALT_SETTING_B=$2
>
> -if [ -n "$2" ]
> +if [ -n "$3" ]
> then
> - dfu_test_file $2
> + dfu_test_file $3
> else
> for file in $DIR*.$SUFFIX
> do
> diff --git a/test/dfu/dfu_gadget_test_init.sh
> b/test/dfu/dfu_gadget_test_init.sh index ea2f715b8834..1f3634f065f5
> 100755 --- a/test/dfu/dfu_gadget_test_init.sh
> +++ b/test/dfu/dfu_gadget_test_init.sh
> @@ -1,4 +1,5 @@
> #! /bin/bash
> +
> set -e # any command return if not equal to zero
> clear
>
> @@ -7,9 +8,8 @@ COLOR_GREEN="\33[32m"
> COLOR_DEFAULT="\33[0m"
>
> LOG_DIR="./log"
> -BKP_DIR="./bkp"
>
> -TEST_FILES_SIZES="127 128 129 8M 4095 4096 4097 63 64 65 960"
> +TEST_FILES_SIZES="63 64 65 127 128 129 4095 4096 4097 959 960 961 8M"
>
> printf "Init script for generating data necessary for DFU test
> script"
> @@ -17,10 +17,6 @@ if [ ! -d $LOG_DIR ]; then
> `mkdir $LOG_DIR`
> fi
>
> -if [ ! -d $BKP_DIR ]; then
> - `mkdir $BKP_DIR`
> -fi
> -
> for size in $TEST_FILES_SIZES
> do
> FILE="./dat_$size.img"
> @@ -28,6 +24,7 @@ do
> dd if=/dev/urandom of="./dat_$size.img" bs=$size count=1
> > /dev/null 2>&1 || exit $? fi
> done
> +dd if=/dev/urandom of="./dfudummy.bin" bs=1024 count=1 > /dev/null
> 2>&1 || exit $?
> printf "$COLOR_GREEN OK $COLOR_DEFAULT \n"
>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list