Re: [PATCH] check: add support for --start-after

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



On Thu, Sep 07, 2023 at 03:10:30PM -0700, Luis Chamberlain wrote:
> Often times one is running a new test baseline we want to continue to
> start testing where we left off if the last test was a crash. To do
> this the first thing that occurred to me was to use the check.time
> file as an expunge file but that doesn't work so well if you crashed
> as the file turns out empty.
> 
> So instead add super simple argument --start-after which let's you
> skip all tests until the test infrastructure has "seen" the test
> you want to skip. This does obviously work best if you are not using
> a random order, but that is rather implied.
> 
> Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
> ---
>  check | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/check b/check
> index 71b9fbd07522..1ecf07c1cb37 100755
> --- a/check
> +++ b/check
> @@ -18,6 +18,8 @@ showme=false
>  have_test_arg=false
>  randomize=false
>  exact_order=false
> +start_after=false
> +start_after_test=""
>  export here=`pwd`
>  xfile=""
>  subdir_xfile=""
> @@ -80,6 +82,7 @@ check options
>      -b			brief test summary
>      -R fmt[,fmt]	generate report in formats specified. Supported formats: xunit, xunit-quiet
>      --large-fs		optimise scratch device for large filesystems
> +    --start-after	only start testing after the test specified

This option conflicts with "-r" option.

>      -s section		run only specified section from config file
>      -S section		exclude the specified section from the config file
>      -L <n>		loop tests <n> times following a failure, measuring aggregate pass/fail metrics
> @@ -313,6 +316,11 @@ while [ $# -gt 0 ]; do
>  				<(sed "s/#.*$//" $xfile)
>  		fi
>  		;;
> +	--start-after)
> +		start_after=true
> +		start_after_test="$2"

Do we really need two variables at here?

> +		shift
> +		;;
>  	-s)	RUN_SECTION="$RUN_SECTION $2"; shift ;;
>  	-S)	EXCLUDE_SECTION="$EXCLUDE_SECTION $2"; shift ;;
>  	-l)	diff="diff" ;;
> @@ -591,6 +599,15 @@ _expunge_test()
>  {
>  	local TEST_ID="$1"
>  
> +	if $start_after; then
> +		if [[ "$start_after_test" == ${TEST_ID}* ]]; then
> +			start_after=false
> +		fi
> +		echo "       [skipped]"
> +		return 0
> +
> +	fi

I can't understand how you use the --start-after. I though you'd like to remove
all cases before the "start-after" from the running list. But when I saw here,
I'm a little confused.

Thanks,
Zorro

> +
>  	for f in "${exclude_tests[@]}"; do
>  		# $f may contain traling spaces and comments
>  		local id_regex="^${TEST_ID}\b"
> -- 
> 2.39.2
> 




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux