hs-test: add tests repeat option
[vpp.git] / extras / hs-test / test
1 #!/usr/bin/env bash
2
3 source vars
4
5 args=
6 single_test=0
7 persist_set=0
8 unconfigure_set=0
9 debug_set=0
10 vppsrc=
11 ginkgo_args=
12 parallel=
13
14 for i in "$@"
15 do
16 case "${i}" in
17     --persist=*)
18         persist="${i#*=}"
19         if [ $persist = "true" ]; then
20             args="$args -persist"
21             persist_set=1
22         fi
23         ;;
24     --debug=*)
25         debug="${i#*=}"
26         if [ $debug = "true" ]; then
27             args="$args -debug"
28             debug_set=1
29         fi
30         ;;
31     --verbose=*)
32         verbose="${i#*=}"
33         if [ $verbose = "true" ]; then
34             args="$args -verbose"
35         fi
36         ;;
37     --unconfigure=*)
38         unconfigure="${i#*=}"
39         if [ $unconfigure = "true" ]; then
40             args="$args -unconfigure"
41             unconfigure_set=1
42         fi
43         ;;
44     --cpus=*)
45         args="$args -cpus ${i#*=}"
46         ;;
47     --vppsrc=*)
48         args="$args -vppsrc ${i#*=}"
49         ;;
50     --test=*)
51         tc_name="${i#*=}"
52         if [ $tc_name != "all" ]; then
53             single_test=1
54             ginkgo_args="$ginkgo_args --focus $tc_name -vv"
55             args="$args -verbose"
56         else
57             ginkgo_args="$ginkgo_args -v"
58         fi
59         ;;
60     --parallel=*)
61         ginkgo_args="$ginkgo_args -procs=${i#*=}"
62         ;;
63     --repeat=*)
64         ginkgo_args="$ginkgo_args --repeat=${i#*=}"
65         ;;
66 esac
67 done
68
69 if [ $single_test -eq 0 ] && [ $persist_set -eq 1 ]; then
70     echo "persist flag is not supported while running all tests!"
71     exit 1
72 fi
73
74 if [ $unconfigure_set -eq 1 ] && [ $single_test -eq 0 ]; then
75     echo "a single test has to be specified when unconfigure is set"
76     exit 1
77 fi
78
79 if [ $persist_set -eq 1 ] && [ $unconfigure_set -eq 1 ]; then
80     echo "setting persist flag and unconfigure flag is not allowed"
81     exit 1
82 fi
83
84 if [ $single_test -eq 0 ] && [ $debug_set -eq 1 ]; then
85     echo "VPP debug flag is not supperted while running all tests!"
86     exit 1
87 fi
88
89 sudo -E go run github.com/onsi/ginkgo/v2/ginkgo --trace $ginkgo_args -- $args