make color output in run_test script optional
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Mon, 9 Feb 2015 12:24:46 +0000 (15:24 +0300)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Mon, 9 Feb 2015 12:24:46 +0000 (15:24 +0300)
cmake/templates/opencv_run_all_tests_unix.sh.in

index cb04594..7b946af 100644 (file)
@@ -1,11 +1,53 @@
 #!/bin/bash
 
+# Usage info
+
+usage()
+{
+cat << EOF
+usage: $0 [options]
+
+This script runs the OpenCV tests on linux device.
+
+OPTIONS:
+   -h           Show this message
+   -c           Color output
+EOF
+}
+
+# Parse options
+
+COLOR_OUTPUT=0
+while getopts “hc” OPTION
+do
+    case $OPTION in
+        h)
+            usage
+            exit 0
+            ;;
+        c)
+            COLOR_OUTPUT=1
+            ;;
+        ?)
+            usage
+            exit 1
+            ;;
+    esac
+done
+
 # Text style
 
-TEXT_RED="$(tput setaf 1)"
-TEXT_GREEN="$(tput setaf 2)"
-TEXT_CYAN="$(tput setaf 6)"
-TEXT_RESET="$(tput sgr0)"
+if [ $COLOR_OUTPUT -eq 1 ]; then
+    TEXT_RED="$(tput setaf 1)"
+    TEXT_GREEN="$(tput setaf 2)"
+    TEXT_CYAN="$(tput setaf 6)"
+    TEXT_RESET="$(tput sgr0)"
+else
+    TEXT_RED=""
+    TEXT_GREEN=""
+    TEXT_CYAN=""
+    TEXT_RESET=""
+fi
 
 # Test binaries and data paths
 
@@ -26,17 +68,18 @@ do
 
     cmd="$t --perf_min_samples=1 --perf_force_samples=1 --gtest_output=xml:\"$report\""
 
-    seg_reg="s/^/${TEXT_CYAN}[$test_name]${TEXT_RESET} /"                 # append test name
-    seg_reg="${seg_reg};s/\[==========\]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [==========]
-    seg_reg="${seg_reg};s/\[----------\]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [----------]
-    seg_reg="${seg_reg};s/\[ RUN      \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [ RUN      ]
-    seg_reg="${seg_reg};s/\[       OK \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [       OK ]
-    seg_reg="${seg_reg};s/\[  FAILED  \]/${TEXT_RED}&${TEXT_RESET}/g"     # red   for [  FAILED  ]
-    seg_reg="${seg_reg};s/\[  PASSED  \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [  PASSED  ]
+    seg_reg="s/^/${TEXT_CYAN}[$test_name]${TEXT_RESET} /"                     # append test name
+    if [ $COLOR_OUTPUT -eq 1 ]; then
+        seg_reg="${seg_reg};s/\[==========\]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [==========]
+        seg_reg="${seg_reg};s/\[----------\]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [----------]
+        seg_reg="${seg_reg};s/\[ RUN      \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [ RUN      ]
+        seg_reg="${seg_reg};s/\[       OK \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [       OK ]
+        seg_reg="${seg_reg};s/\[  FAILED  \]/${TEXT_RED}&${TEXT_RESET}/g"     # red   for [  FAILED  ]
+        seg_reg="${seg_reg};s/\[  PASSED  \]/${TEXT_GREEN}&${TEXT_RESET}/g"   # green for [  PASSED  ]
+    fi
 
     echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RUN : $cmd"
-    eval "$cmd" | sed -r "$seg_reg"
-
+    $cmd | sed -r "$seg_reg"
     ret=${PIPESTATUS[0]}
     echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RETURN_CODE : $ret"