diff options
| author | Frederic Lecaille <flecaille@haproxy.com> | 2018-12-13 22:15:05 +0100 |
|---|---|---|
| committer | Willy Tarreau <w@1wt.eu> | 2018-12-14 06:50:45 +0100 |
| commit | d4f36e3eaa727d11b7976149da8d8a41f695f8b3 (patch) | |
| tree | d2e79cbc003d5b92f52641b8ded5071822502389 /scripts | |
| parent | 44d59146a6c00c73f3095eed820f5f792fca4ac1 (diff) | |
| download | haproxy-d4f36e3eaa727d11b7976149da8d8a41f695f8b3.tar.gz | |
REGTEST: Reg testing improvements.
Add a new target to the Makefile named "reg-tests-help" to have an idea
about how to run the reg tests from haproxy Makefile.
Handle list of levels and lists of level range passed to make with LEVEL variable.
New supported syntax:
LEVEL=1,4 make reg-tests
LEVEL=1-2,5-6 make reg-tests
Add two new levels 5 and 6. 5 is for broken script, 6 for experimental scripts.
Signed-off-by: Frédéric Lécaille <flecaille@haproxy.com>
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/run-regtests.sh | 91 |
1 files changed, 81 insertions, 10 deletions
diff --git a/scripts/run-regtests.sh b/scripts/run-regtests.sh index 3034e3630..3ed38062a 100755 --- a/scripts/run-regtests.sh +++ b/scripts/run-regtests.sh @@ -40,10 +40,85 @@ if [ "$1" = "--help" ]; then Configure environment variables to set the haproxy and varnishtest binaries to use setenv HAPROXY_PROGRAM /usr/local/sbin/haproxy setenv VARNISHTEST_PROGRAM /usr/local/bin/varnishtest + or + export HAPROXY_PROGRAM=/usr/local/sbin/haproxy + export VARNISHTEST_PROGRAM=/usr/local/bin/varnishtest EOF return fi +add_range_to_test_list() +{ + level0="*.vtc" + level1="h*.vtc" + level2="s*.vtc" + level3="l*.vtc" + level4="b*.vtc" + level5="k*.vtc" + level6="e*.vtc" + + new_range=$(echo $1 | tr '-' ' ') + non_digit=$(echo $new_range | grep '[^0-9 ]') + if [ -n "$non_digit" ] ; then + return + fi + if [ "$new_range" = "$1" ] ; then + if [ $1 -gt 6 ] ; then + return + fi + eval echo '$'level$1 + return + fi + if [ -z "$new_range" ] ; then + return + fi + list= + for l in $(seq $new_range) ; do + if [ -n "l" ] ; then + if [ -z "$list" ] ; then + list="$(eval echo '$'level${l})" + else + list="$list $(eval echo '$'level${l})" + fi + fi + done + + echo $list +} + + +build_test_list() +{ + # Remove any spacing character + LEVEL="$(echo $LEVEL | tr -d ' ')" + # Replave any comma character by a space character + LEVEL="$(echo $LEVEL | tr ',' ' ')" + list= + for range in $LEVEL ; do + if [ -z "$list" ] ; then + list=$(add_range_to_test_list $range) + else + list="$list $(add_range_to_test_list $range)" + fi + done + + echo $list +} + +build_find_expr() +{ + expr= + for i in $@; do + if [ -z "$expr" ] ; then + expr="-name \"$i\"" + else + expr="$expr -o -name \"$i\"" + fi + done + + echo $expr +} + _startswith() { _str="$1" _sub="$2" @@ -53,18 +128,14 @@ _startswith() { _findtests() { set -f LEVEL=${LEVEL:-0}; - EXPR='*.vtc' - if [ $LEVEL = 1 ] ; then - EXPR='h*.vtc'; - elif [ $LEVEL = 2 ] ; then - EXPR='s*.vtc'; - elif [ $LEVEL = 3 ] ; then - EXPR='l*.vtc'; - elif [ $LEVEL = 4 ] ; then - EXPR='b*.vtc'; + list=$(build_test_list "$LEVEL") + if [ -z "$list" ] ; then + echo "Invalid level specification '"$LEVEL"' or no file was found." + exit 1 fi + EXPR=$(build_find_expr $list) - for i in $( find "$1" -name "$EXPR" ); do + for i in $( find "$1" $(eval echo $EXPR) ); do skiptest= require_version="$(sed -ne 's/^#REQUIRE_VERSION=//p' "$i")" require_version_below="$(sed -ne 's/^#REQUIRE_VERSION_BELOW=//p' "$i")" |
