ao-bringup: Allow dfu_util to "fail" while flashing chaoskey
[fw/altos] / ao-bringup / test-easymini
index 17e0095526e3270e735eaccfc28f3445e42ac8aa..7850b5502edad62fe6ff443acf8e8488592cd0e9 100755 (executable)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
 
-VERSION=1.0
+VERSION=2.0
 PRODUCT=EasyMini
 BASE=`echo $PRODUCT | tr 'A-Z' 'a-z'`
 
@@ -8,56 +8,55 @@ echo "$PRODUCT-v$VERSION Test Program"
 echo "Copyright 2014 by Keith Packard.  Released under GPL v2"
 echo
 echo "Expectations:"
-echo "\t$PRODUCT v$VERSION powered from USB"
+echo -e "\t$PRODUCT v$VERSION powered from USB"
 echo
 
-ret=1
-ao-list | while read product serial dev; do
-    case "$product" in
-       "$PRODUCT-v$VERSION")
+found=0
+while [ $found -eq 0 ]; do
+    (ao-list; echo END END END END) | while read product serial dev; do
+       case "$product" in
+           "$PRODUCT-v$VERSION")
 
-           echo "Testing $product $serial $dev"
+               found=1
+               echo -e '\e[34m'Testing $product $serial $dev'\e[39m'
+               echo ""
+               
+               ./test-igniters "$dev" drogue main
+               echo ""
 
-           echo "Testing igniters. Both should flash"
-           ../ao-tools/ao-test-igniter/ao-test-igniter --tty="$dev" drogue main
+               echo "Testing baro sensor"
+               ../ao-tools/ao-test-baro/ao-test-baro --tty="$dev"
 
-           case $? in
-               0)
-                   ;;
-               *)
-                   echo "failed"
+               if [ $? -ne 0 ]; then
+                   echo -e '\e[31m'"$PRODUCT-$VERSION serial $serial failed"'\e[39m'
                    exit 1
-           esac
+               fi
+               echo""
 
-           echo "Testing baro sensor"
-           ../ao-tools/ao-test-baro/ao-test-baro --tty="$dev"
+               FLASHSIZE=1048576
 
-           case $? in
-               0)
-                   ;;
-               *)
-                   echo "failed"
-                   exit 1
-           esac
-
-           FLASHSIZE=1048576
-
-           echo "Testing flash"
-           ../ao-tools/ao-test-flash/ao-test-flash --tty="$dev" "$FLASHSIZE"
+               echo "Testing flash"
+               ../ao-tools/ao-test-flash/ao-test-flash --tty="$dev" "$FLASHSIZE"
 
-           case $? in
-               0)
-                   ;;
-               *)
-                   echo "failed"
+               if [ $? -ne 0 ]; then
+                   echo -e '\e[31m'"$PRODUCT-$VERSION serial $serial failed"'\e[39m'
                    exit 1
-           esac
-
-           echo "$PRODUCT-v$VERSION" serial "$serial" is ready to ship
-           ret=0
-           ;;
-       *)
-           echo "Skipping $product $serial $dev"
-           ;;
-    esac
+               fi
+
+               echo ""
+
+               echo -e '\e[32m'"$PRODUCT-v$VERSION" serial "$serial" is ready to ship'\e[39m'
+               exit 0
+               ;;
+           END)
+               exit 2
+               ;;
+       esac
+    done
+    result=$?
+    if [ $result -ne 2 ]; then
+       exit $result
+    fi
+    echo 'No device, sleeping...'
+    sleep 1
 done