summaryrefslogtreecommitdiffstats
path: root/tests/data_plane/vpp_lite_topo/run.sh
blob: 59bae1cd727fcd7f15e799f6b245a8ffa81bafe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env bash

TESTS_DIR=tests

function help
{
  echo "Run all ONE tests"
  echo
  echo This must be run with superuser privileges.
  echo "Usage:"
  echo " ./run.sh [vh]"
  echo
  echo "  -v : verbose output"
  echo "  -h : show help"
}

verbose=0

while [ $# -gt 0 ] ; do
  arg=$1
  shift

  if [ $arg == "-v" ]; then
    verbose=1
  elif [ $arg == "-h" ] ; then
    help
    exit 0
  fi
done

### begin script

failed_tcs=()
count=0
failed_num=0
passed_num=0

start_time=`date +%s`

# count tests
test_num=`ls -l $TESTS_DIR/test_* | wc -l`

echo
echo "Running VPP lite test suite."
echo

for test_case in $TESTS_DIR/test_*
do
  let "count=$count + 1"

  # run the test case
  base_name=`basename -a $test_case`
  printf "*** %d/%d : %-45s" $count $test_num $base_name

  if [ $verbose -ne 0 ] ; then
    $test_case
  else
    $test_case &> /dev/null
  fi
  rc=$?

  if [ $rc -ne 0 ] ; then
    printf "failed!\n"
    failed_tcs+=("$test_case")
    let "failed_num=$failed_num + 1"
  else
    printf "passed.\n"
    let "passed_num=$passed_num + 1"
  fi
  sleep 1
done

end_time=`date +%s`
runtime=$((end_time-start_time))

echo
echo "------------------------------------------------------"
echo "Runtime: " `date -u -d @${runtime} +"%M min %S sec"`
echo

if [ $failed_num -eq 0 ]; then
  echo "All tests have passed."
else
  echo "List of failed test cases:"
  for tc in "${failed_tcs[@]}"
  do
    echo "$tc"
  done
fi

echo "------------------------------------------------------"

### end script