Hi Lukasz, On 3 June 2014 03:54, Lukasz Majewski <l.majew...@samsung.com> wrote: > This commit adds test scripts for testing if any commit has introduced > regression to the DFU subsystem. > > It uses md5 to test if sent and received file is correct. > The test detailed description is available at README file. > > Signed-off-by: Lukasz Majewski <l.majew...@samsung.com> > --- > Changes for v2: > - Rename DESCRIPTION.TXT to README > - Introduction of COLOUR_* variables to hold code necessary to change > console color > - File to create initial setup - dfu_gadget_test_init.sh has been added > - Test files are now automatically generated with the above script
Looks good, but a few comments below. > --- > test/dfu/README | 27 ++++++++++++ > test/dfu/dfu_gadget_test.sh | 88 > ++++++++++++++++++++++++++++++++++++++ > test/dfu/dfu_gadget_test_init.sh | 34 +++++++++++++++ > 3 files changed, 149 insertions(+) > create mode 100644 test/dfu/README > create mode 100755 test/dfu/dfu_gadget_test.sh > create mode 100755 test/dfu/dfu_gadget_test_init.sh > > diff --git a/test/dfu/README b/test/dfu/README > new file mode 100644 > index 0000000..f8f5a43 > --- /dev/null > +++ b/test/dfu/README > @@ -0,0 +1,27 @@ > +DFU TEST CASE DESCRIPTION: > + > +The prerequisites for running this script are assured by > +dfu_gadget_test_init.sh script. > +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) > + > +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). > + > +Example usage: > +1. On the target: > + env default -a > + 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]. > + > +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. > diff --git a/test/dfu/dfu_gadget_test.sh b/test/dfu/dfu_gadget_test.sh > new file mode 100755 > index 0000000..8abd8e7 > --- /dev/null > +++ b/test/dfu/dfu_gadget_test.sh > @@ -0,0 +1,88 @@ > +#! /bin/bash > +set -e # any command return if not equal to zero > +clear > + > +COLOR_RED="\33[31m" > +COLOR_GREEN="\33[32m" > +COLOR_DEFAULT="\33[0m" Which side of the pond are you? :-) I think it should be COLOUR in U-Boot. > + > +DIR=./ > +SUFFIX=img > +RCV_DIR=rcv/ > +LOG_FILE=./log/log-`date +%d-%m-%Y_%H-%M-%S` > + > +./dfu_gadget_test_init.sh > + > +cleanup () { > + rm -rf $RCV_DIR > +} > + > +die () { > + printf " $COLOR_RED FAILED $COLOR_DEFAULT \n" > + cleanup > + exit 1 > +} > + > +calculate_md5sum () { > + MD5SUM=`md5sum $1` > + MD5SUM=`echo $MD5SUM | cut -d ' ' -f1` > + echo "md5sum:"$MD5SUM > +} > + > +dfu_test_file () { > + printf "$COLOR_GREEN > ========================================================================================= > $COLOR_DEFAULT\n" > + printf "File:$COLOR_GREEN %s $COLOR_DEFAULT\n" $1 > + > + dfu-util -D $1 -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? > + > + echo -n "TX: " > + calculate_md5sum $1 > + > + MD5_TX=$MD5SUM > + > + N_FILE=$DIR$RCV_DIR${1:2}"_rcv" > + > + dfu-util -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $? > + > + echo -n "RX: " > + calculate_md5sum $N_FILE > + MD5_RX=$MD5SUM > + > + if [ "$MD5_TX" == "$MD5_RX" ]; then > + printf " $COLOR_GREEN -------> OK $COLOR_DEFAULT \n" > + else > + printf " $COLOR_RED -------> FAILED $COLOR_DEFAULT \n" > + cleanup > + exit 1 > + fi > + > +} > + > +printf > "$COLOR_GREEN========================================================================================= > $COLOR_DEFAULT\n" > +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 > +touch $LOG_FILE > + > +if [ $# -eq 0 ] > +then > + printf " $COLOR_RED Please pass alt setting number!! > $COLOR_DEFAULT \n" > + exit 0 > +fi > + > +TARGET_ALT_SETTING=$1 > + > +if [ -n "$2" ] > +then > + dfu_test_file $2 Where is $2 mentioned? in your example usage? > +else > + for file in $DIR*.$SUFFIX > + do > + dfu_test_file $file > + done > +fi > + > +cleanup > + > +exit 0 > diff --git a/test/dfu/dfu_gadget_test_init.sh > b/test/dfu/dfu_gadget_test_init.sh > new file mode 100755 > index 0000000..ea2f715 > --- /dev/null > +++ b/test/dfu/dfu_gadget_test_init.sh Should this script be run by the main script in the default case? You could have a flag to force it to use existing files. > @@ -0,0 +1,34 @@ > +#! /bin/bash > +set -e # any command return if not equal to zero > +clear > + > +COLOR_RED="\33[31m" > +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" > + > +printf "Init script for generating data necessary for DFU test script" > + > +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" > + if [ ! -f $FILE ]; then > + dd if=/dev/urandom of="./dat_$size.img" bs=$size count=1 > /dev/null > 2>&1 || exit $? > + fi > +done > + > +printf "$COLOR_GREEN OK $COLOR_DEFAULT \n" > + > +exit 0 > -- > 1.7.10.4 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot