On 07/25/2018 11:23 PM, Omar Sandoval wrote:
> On Tue, Jul 17, 2018 at 03:27:50PM +0200, Hannes Reinecke wrote:
>> Adding an option '--outdir' to store results in a different
>> director so as not to clutter the git repository itself.
>>
>> Signed-off-by: Hannes Reinecke <[email protected]>
>> ---
>>  check | 14 ++++++++++----
>>  1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/check b/check
>> index a635531..42d07f8 100755
>> --- a/check
>> +++ b/check
>> @@ -334,7 +334,7 @@ _call_test() {
>>      fi
>>  
>>      trap _cleanup EXIT
>> -    if ! TMPDIR="$(mktemp --tmpdir -p "$PWD/results" -d 
>> "tmpdir.${TEST_NAME//\//.}.XXX")"; then
>> +    if ! TMPDIR="$(mktemp --tmpdir -p "$RESULTS_DIR" -d 
>> "tmpdir.${TEST_NAME//\//.}.XXX")"; then
>>              return
>>      fi
>>  
>> @@ -415,7 +415,7 @@ _run_test() {
>>                      return 0
>>              fi
>>  
>> -            RESULTS_DIR="results/nodev"
>> +            RESULTS_DIR="${OUT_DIR}/results/nodev"
>>              _call_test test
>>      else
>>              if [[ ${#TEST_DEVS[@]} -eq 0 ]]; then
>> @@ -434,7 +434,7 @@ _run_test() {
>>                              _output_notrun "$TEST_NAME => $(basename 
>> "$TEST_DEV")"
>>                              continue
>>                      fi
>> -                    RESULTS_DIR="results/$(basename "$TEST_DEV")"
>> +                    RESULTS_DIR="${OUT_DIR}/results/$(basename "$TEST_DEV")"
>>                      if ! _call_test test_device; then
>>                              ret=1
>>                      fi
>> @@ -567,6 +567,7 @@ Test runs:
>>                       tests to run
>>  
>>  Miscellaneous:
>> +  -o, --outdir=OUTDIR    write results into the specified directory
>>    -h, --help             display this help message and exit"
>>  
>>      case "$1" in
>> @@ -581,12 +582,13 @@ Miscellaneous:
>>      esac
>>  }
>>  
>> -if ! TEMP=$(getopt -o 'dq::x:h' --long 'quick::,exclude:,help' -n "$0" -- 
>> "$@"); then
>> +if ! TEMP=$(getopt -o 'dq::o:x:h' --long 'quick::,exclude:,outdir:,help' -n 
>> "$0" -- "$@"); then
>>      exit 1
>>  fi
>>  
>>  eval set -- "$TEMP"
>>  unset TEMP
>> +OUT_DIR="."
> 
> This doesn't allow setting it from the config file. How about this?
> 
> diff --git a/check b/check
> index 5f4461f..5e99415 100755
> --- a/check
> +++ b/check
> @@ -313,7 +313,7 @@ _call_test() {
>       local test_func="$1"
>       local seqres="${RESULTS_DIR}/${TEST_NAME}"
>       # shellcheck disable=SC2034
> -     FULL="$PWD/${seqres}.full"
> +     FULL="${seqres}.full"
>       declare -A TEST_DEV_QUEUE_SAVED
>  
>       _read_last_test_run
> @@ -334,7 +334,7 @@ _call_test() {
>       fi
>  
>       trap _cleanup EXIT
> -     if ! TMPDIR="$(mktemp --tmpdir -p "$PWD/results" -d 
> "tmpdir.${TEST_NAME//\//.}.XXX")"; then
> +     if ! TMPDIR="$(mktemp --tmpdir -p "$OUTPUT" -d 
> "tmpdir.${TEST_NAME//\//.}.XXX")"; then
>               return
>       fi
>  
> @@ -415,7 +415,7 @@ _run_test() {
>                       return 0
>               fi
>  
> -             RESULTS_DIR="results/nodev"
> +             RESULTS_DIR="$OUTPUT/nodev"
>               _call_test test
>       else
>               if [[ ${#TEST_DEVS[@]} -eq 0 ]]; then
> @@ -434,7 +434,7 @@ _run_test() {
>                               _output_notrun "$TEST_NAME => $(basename 
> "$TEST_DEV")"
>                               continue
>                       fi
> -                     RESULTS_DIR="results/$(basename "$TEST_DEV")"
> +                     RESULTS_DIR="$OUTPUT/$(basename "$TEST_DEV")"
>                       if ! _call_test test_device; then
>                               ret=1
>                       fi
> @@ -559,6 +559,9 @@ Test runs:
>    -d, --device-only   only run tests which use a test device from the
>                        TEST_DEVS config setting
>  
> +  -o, --output=DIR    output results to the given directory (the default is
> +                      ./results)
> +
>    -q, --quick=SECONDS         do a quick run (only run quick tests and limit 
> the
>                        runtime of longer tests to the given timeout,
>                        defaulting to 30 seconds)
> @@ -581,7 +584,7 @@ Miscellaneous:
>       esac
>  }
>  
> -if ! TEMP=$(getopt -o 'dq::x:h' --long 'quick::,exclude:,help' -n "$0" -- 
> "$@"); then
> +if ! TEMP=$(getopt -o 'do:q::x:h' --long 'quick::,exclude:,output:,help' -n 
> "$0" -- "$@"); then
>       exit 1
>  fi
>  
> @@ -596,6 +599,7 @@ fi
>  # Default configuration.
>  : "${DEVICE_ONLY:=0}"
>  : "${QUICK_RUN:=0}"
> +: "${OUTPUT:=results}"
>  if [[ -v EXCLUDE ]] && ! declare -p EXCLUDE | grep -q '^declare -a'; then
>       # If EXCLUDE was not defined as an array, convert it to one.
>       # shellcheck disable=SC2190,SC2206
> @@ -617,6 +621,10 @@ while true; do
>                       DEVICE_ONLY=1
>                       shift
>                       ;;
> +             '-o'|'--output')
> +                     OUTPUT="$2"
> +                     shift 2
> +                     ;;
>               '-q'|'--quick')
>                       QUICK_RUN=1
>                       # Use the timeout specified on the command line, from
> @@ -659,4 +667,7 @@ for filter in "${TEMP_EXCLUDE[@]}"; do
>  done
>  unset TEMP_EXCLUDE
>  
> +mkdir -p "$OUTPUT"
> +OUTPUT="$(realpath "$OUTPUT")"
> +
>  _check "$@"
> 
Yep, should work as well.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Teamlead Storage & Networking
[email protected]                                   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

Reply via email to