Re: [PATCH] blktests: Add '--outdir' to store results in a different directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <hare@xxxxxxxx>
>> ---
>>  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
hare@xxxxxxx			               +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)



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux