Commit 8ec99569 authored by Andrew Jones's avatar Andrew Jones Committed by Radim Krčmář
Browse files

arch-run: provide errata from run env



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's avatarAndrew Jones <drjones@redhat.com>
Reviewed-by: default avatarLaurent Vivier <lvivier@redhat.com>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
parent 4da0bc9a
......@@ -158,6 +158,34 @@ search_qemu_binary ()
initrd_create ()
{
env_add_errata
unset INITRD
[ -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
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment