Browse code

Add "passed" and "failed" functions

Add two generic "passed" and "failed" functions to the unittest
helper. Also keep a count of passed and failed tests. Later changes
will use these functions to ensure they exit with a correct return
code.

Change-Id: I8574dcb1447b04fcda3d72df0bf8605cf7488d3c

Ian Wienand authored on 2015/04/17 11:55:38
Showing 1 changed files
... ...
@@ -14,8 +14,30 @@
14 14
 
15 15
 # we always start with no errors
16 16
 ERROR=0
17
+PASS=0
17 18
 FAILED_FUNCS=""
18 19
 
20
+function passed {
21
+    local lineno=$(caller 0 | awk '{print $1}')
22
+    local function=$(caller 0 | awk '{print $2}')
23
+    local msg="$1"
24
+    if [ -z "$msg" ]; then
25
+        msg="OK"
26
+    fi
27
+    PASS=$((PASS+1))
28
+    echo $function:L$lineno $msg
29
+}
30
+
31
+function failed {
32
+    local lineno=$(caller 0 | awk '{print $1}')
33
+    local function=$(caller 0 | awk '{print $2}')
34
+    local msg="$1"
35
+    FAILED_FUNCS+="$function:L$lineno\n"
36
+    echo "ERROR: $function:L$lineno!"
37
+    echo "   $msg"
38
+    ERROR=$((ERROR+1))
39
+}
40
+
19 41
 function assert_equal {
20 42
     local lineno=`caller 0 | awk '{print $1}'`
21 43
     local function=`caller 0 | awk '{print $2}'`
... ...
@@ -24,16 +46,20 @@ function assert_equal {
24 24
         FAILED_FUNCS+="$function:L$lineno\n"
25 25
         echo "ERROR: $1 != $2 in $function:L$lineno!"
26 26
         echo "  $msg"
27
-        ERROR=1
27
+        ERROR=$((ERROR+1))
28 28
     else
29
+        PASS=$((PASS+1))
29 30
         echo "$function:L$lineno - ok"
30 31
     fi
31 32
 }
32 33
 
33 34
 function report_results {
34
-    if [[ $ERROR -eq 1 ]]; then
35
-        echo "Tests FAILED"
36
-        echo $FAILED_FUNCS
35
+    echo "$PASS Tests PASSED"
36
+    if [[ $ERROR -gt 1 ]]; then
37
+        echo
38
+        echo "The following $ERROR tests FAILED"
39
+        echo -e "$FAILED_FUNCS"
40
+        echo "---"
37 41
         exit 1
38 42
     fi
39 43
 }