[igt-dev] [PATCH i-g-t v2 1/4] run-tests.sh: allow to run without sudo

Jani Nikula jani.nikula at linux.intel.com
Fri Apr 20 11:00:30 UTC 2018


On Wed, 14 Mar 2018, Lucas De Marchi <lucas.demarchi at intel.com> wrote:
> If the script is already running as root, it doens't need to be
> executed through sudo. This also moves the calls to exec piglit to a
> common function.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  scripts/run-tests.sh | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh
> index a98e06ce..1c3f2805 100755
> --- a/scripts/run-tests.sh
> +++ b/scripts/run-tests.sh
> @@ -44,6 +44,21 @@ function download_piglit {
>  	git clone git://anongit.freedesktop.org/piglit "$ROOT/piglit"
>  }
>  
> +function run_piglit # as-root <args>
> +{
> +	local need_root=$1
> +	shift
> +	local sudo
> +
> +	export IGT_TEST_ROOT IGT_CONFIG_PATH
> +
> +	if [ "$need_root" -ne 0 -a "$EUID" -ne 0 ]; then
> +		sudo="sudo --preserve-env=IGT_TEST_ROOT,IGT_CONFIG_PATH"
> +	fi

sudo: option '--preserve-env' doesn't allow an argument

$ sudo --version
Sudo version 1.8.19p1

BR,
Jani.

> +
> +	$sudo $PIGLIT "$@"
> +}
> +
>  function print_help {
>  	echo "Usage: run-tests.sh [options]"
>  	echo "Available options:"
> @@ -111,18 +126,18 @@ if [ ! -x "$PIGLIT" ]; then
>  fi
>  
>  if [ "x$LIST_TESTS" != "x" ]; then
> -	IGT_TEST_ROOT="$IGT_TEST_ROOT" IGT_CONFIG_PATH="$IGT_CONFIG_PATH" "$PIGLIT" print-cmd --format "{name}" igt
> +	run_piglit 0 print-cmd --format "{name}" igt
>  	exit
>  fi
>  
>  if [ "x$RESUME" != "x" ]; then
> -	sudo IGT_TEST_ROOT="$IGT_TEST_ROOT" IGT_CONFIG_PATH="$IGT_CONFIG_PATH" "$PIGLIT" resume "$RESULTS" $NORETRY
> +	run_piglit 1 resume "$RESULTS" $NORETRY
>  else
>  	mkdir -p "$RESULTS"
> -	sudo IGT_TEST_ROOT="$IGT_TEST_ROOT" IGT_CONFIG_PATH="$IGT_CONFIG_PATH" "$PIGLIT" run igt --ignore-missing -o "$RESULTS" -s $VERBOSE $EXCLUDE $FILTER
> +	run_piglit 1 run igt --ignore-missing -o "$RESULTS" -s $VERBOSE $EXCLUDE $FILTER
>  fi
>  
>  if [ "$SUMMARY" == "html" ]; then
> -	"$PIGLIT" summary html --overwrite "$RESULTS/html" "$RESULTS"
> +	run_piglit 0 summary html --overwrite "$RESULTS/html" "$RESULTS"
>  	echo "HTML summary has been written to $RESULTS/html/index.html"
>  fi

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the igt-dev mailing list