]> git.karo-electronics.de Git - karo-tx-uboot.git/blob - test/dfu/dfu_gadget_test.sh
Merge branch 'master' of git://git.denx.de/u-boot-blackfin
[karo-tx-uboot.git] / test / dfu / dfu_gadget_test.sh
1 #! /bin/bash
2
3 set -e # any command return if not equal to zero
4 clear
5
6 COLOUR_RED="\33[31m"
7 COLOUR_GREEN="\33[32m"
8 COLOUR_DEFAULT="\33[0m"
9
10 DIR=./
11 SUFFIX=img
12 RCV_DIR=rcv/
13 LOG_FILE=./log/log-`date +%d-%m-%Y_%H-%M-%S`
14
15 cd `dirname $0`
16 ./dfu_gadget_test_init.sh
17
18 cleanup () {
19     rm -rf $DIR$RCV_DIR
20 }
21
22 die () {
23         printf "   $COLOUR_RED FAILED $COLOUR_DEFAULT \n"
24         cleanup
25         exit 1
26 }
27
28 calculate_md5sum () {
29     MD5SUM=`md5sum $1`
30     MD5SUM=`echo $MD5SUM | cut -d ' ' -f1`
31     echo "md5sum:"$MD5SUM
32 }
33
34 dfu_test_file () {
35     printf "$COLOUR_GREEN ========================================================================================= $COLOUR_DEFAULT\n"
36     printf "File:$COLOUR_GREEN %s $COLOUR_DEFAULT\n" $1
37
38     dfu-util -D $1 -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $?
39
40     echo -n "TX: "
41     calculate_md5sum $1
42
43     MD5_TX=$MD5SUM
44
45     dfu-util -D ${DIR}/dfudummy.bin -a $TARGET_ALT_SETTING_B >> $LOG_FILE 2>&1 || die $?
46
47     N_FILE=$DIR$RCV_DIR${1:2}"_rcv"
48
49     dfu-util -U $N_FILE -a $TARGET_ALT_SETTING >> $LOG_FILE 2>&1 || die $?
50
51     echo -n "RX: "
52     calculate_md5sum $N_FILE
53     MD5_RX=$MD5SUM
54
55     if [ "$MD5_TX" == "$MD5_RX" ]; then
56         printf "   $COLOUR_GREEN -------> OK $COLOUR_DEFAULT \n"
57     else
58         printf "   $COLOUR_RED -------> FAILED $COLOUR_DEFAULT \n"
59         cleanup
60         exit 1
61     fi
62
63 }
64
65 printf "$COLOUR_GREEN========================================================================================= $COLOUR_DEFAULT\n"
66 echo "DFU EP0 transmission test program"
67 echo "Trouble shoot -> disable DBG (even the KERN_DEBUG) in the UDC driver"
68 echo "@ -> TRATS2 # dfu 0 mmc 0"
69 cleanup
70 mkdir -p $DIR$RCV_DIR
71 touch $LOG_FILE
72
73 if [ $# -eq 0 ]
74 then
75         printf "   $COLOUR_RED Please pass alt setting number!!  $COLOUR_DEFAULT \n"
76         exit 0
77 fi
78
79 TARGET_ALT_SETTING=$1
80 TARGET_ALT_SETTING_B=$2
81
82 if [ -n "$3" ]
83 then
84         dfu_test_file $3
85 else
86         for file in $DIR*.$SUFFIX
87         do
88             dfu_test_file $file
89         done
90 fi
91
92 cleanup
93
94 exit 0