From c5263645025425472f345cd6fb91ef6ca4b7cf95 Mon Sep 17 00:00:00 2001 From: Lukas Czerner Date: Thu, 11 Jul 2013 10:37:58 +0000 Subject: [PATCH] xfstests: Refactor code for obtaining test list Put the code for obtaining the list of test into one place which makes things more readable. It will also allow us to re-init the list in the future if we need it. Signed-off-by: Lukas Czerner Reviewed-by: Chandra Seetharaman Signed-off-by: Rich Johnston --- check | 100 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 46 deletions(-) diff --git a/check b/check index 76e3a77f..d18d640c 100755 --- a/check +++ b/check @@ -151,43 +151,69 @@ _timestamp() echo -n " [$now]" } -# Process command arguments first. -while [ $# -gt 0 ]; do - case "$1" in - -\? | -h | --help) usage ;; - - -nfs) FSTYP=nfs ;; +_prepare_test_list() +{ + unset list + # Tests specified on the command line + if [ -s $tmp.arglist ]; then + cat $tmp.arglist > $tmp.list + else + touch $tmp.list + fi - -g) group=$2 ; shift ; - group_list=$(get_group_list $group) - if [ -z "$group_list" ]; then - echo "Group \"$group\" is empty or not defined?" - exit 1 + # Specified groups to include + for group in $GROUP_LIST; do + list=$(get_group_list $group) + if [ -z "$list" ]; then + echo "Group \"$group\" is empty or not defined?" + exit 1 fi - [ ! -s $tmp.list ] && touch $tmp.list - for t in $group_list; do + for t in $list; do grep -s "^$t\$" $tmp.list >/dev/null || \ echo "$t" >>$tmp.list done + done - ;; + if ! $have_test_arg && [ -z "$GROUP_LIST" ]; then + # no test numbers, do everything + get_all_tests + fi - -x) xgroup=$2 ; shift ; + # Specified groups to exclude + for xgroup in $XGROUP_LIST; do + list=$(get_group_list $xgroup) + if [ -z "$list" ]; then + echo "Group \"$xgroup\" is empty or not defined?" + exit 1 + fi - # Note: behaviour is dependent on command line ordering of - # -g and -x parameters. If there are no preceding -g commands, - # this works on all tests, otherwise just the tests specified by - # the early -g inclusions. - [ ! -s $tmp.list ] && get_all_tests + trim_test_list $list + done - group_list=$(get_group_list $xgroup) - if [ -z "$group_list" ]; then - echo "Group \"$xgroup\" is empty or not defined?" - exit 1 - fi + # sort the list of tests into numeric order + list=`sort -n $tmp.list | uniq` + rm -f $tmp.list $tmp.tmp $tmp.grep + + if $randomize + then + list=`echo $list | awk -f randomize.awk` + fi +} + +# Process command arguments first. +while [ $# -gt 0 ]; do + case "$1" in + -\? | -h | --help) usage ;; - trim_test_list $group_list + -nfs) FSTYP=nfs ;; + + -g) group=$2 ; shift ; + GROUP_LIST="$GROUP_LIST $group" + ;; + + -x) xgroup=$2 ; shift ; + XGROUP_LIST="$XGROUP_LIST $xgroup" ;; -X) xfile=$2; shift ; @@ -239,7 +265,7 @@ if $have_test_arg; then if egrep "^$test_name" $group_file >/dev/null ; then # in group file ... OK - echo $SRC_DIR/$1 >>$tmp.list + echo $SRC_DIR/$1 >>$tmp.arglist else # oops echo "$1 - unknown test, ignored" @@ -251,25 +277,7 @@ if $have_test_arg; then done fi -if [ -s $tmp.list ]; then - # found some valid test numbers ... this is good - : -elif $have_test_arg; then - # had test numbers, but none in group file ... do nothing - touch $tmp.list -else - # no test numbers, do everything - get_all_tests -fi - -# sort the list of tests into numeric order -list=`sort -n $tmp.list` -rm -f $tmp.list $tmp.tmp $tmp.grep - -if $randomize -then - list=`echo $list | awk -f randomize.awk` -fi +_prepare_test_list # we need common/rc if ! . ./common/rc -- 2.39.5