Re: [PATCH kvm-unit-tests v2 2/9] arch-run: provide errata from run env

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

 



On 06/06/2017 20:22, Andrew Jones wrote:
> Allow the run script environment to provide ERRATA_* variables
> to the unit tests. These variables will augment/override variables
> in any provided unit test environ (the file specified with $ENV)
> or trigger the creation of a temporary environ file, which contains
> them.
> 
> Now something like
> 
>  ERRATA_abcd01234567=y ./run_tests.sh
> 
> may be run in order to inform all unit tests that they may execute
> all subtests guarded by ERRATA_abcd01234567.
> 
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>

Reviewed-by: Laurent Vivier <lvivier@xxxxxxxxxx>

> ---
>  scripts/arch-run.bash | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash
> index fc95e263458f..09072ee46366 100644
> --- a/scripts/arch-run.bash
> +++ b/scripts/arch-run.bash
> @@ -158,5 +158,33 @@ search_qemu_binary ()
>  
>  initrd_create ()
>  {
> +	env_add_errata
>  	[ -f "$ENV" ] && INITRD="-initrd $ENV"
>  }
> +
> +env_add_errata ()
> +{
> +	local line errata
> +
> +	if [ -f "$ENV" ] && grep -q '^ERRATA_' <(env); then
> +		for line in $(grep '^ERRATA_' "$ENV"); do
> +			errata=${line%%=*}
> +			test -v $errata && continue
> +			eval export "$line"
> +		done
> +	fi
> +
> +	if grep -q '^ERRATA_' <(env); then
> +		export ENV_OLD="$ENV"
> +		export ENV=$(mktemp)
> +		trap_exit_push 'rm -f $ENV; [ "$ENV_OLD" ] && export ENV="$ENV_OLD" || unset ENV; unset ENV_OLD'
> +		[ -f "$ENV_OLD" ] && grep -v '^ERRATA_' "$ENV_OLD" > $ENV
> +		grep '^ERRATA_' <(env) >> $ENV
> +	fi
> +}
> +
> +trap_exit_push ()
> +{
> +	local old_exit=$(trap -p EXIT | sed "s/^[^']*'//;s/'[^']*$//")
> +	trap -- "$1; $old_exit" EXIT
> +}
> 




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux