[Mesa-dev] [PATCH 4/4] glsl/tests/optimization-test: correctly manage srcdir/pwd and co

Eric Engestrom eric.engestrom at imgtec.com
Fri Feb 24 16:13:28 UTC 2017


On Thursday, 2017-02-23 16:43:10 +0000, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> At the moment things are completely bonkers (as can be seen from last
> commit). Regardless if we run the test as part of "make check" or
> standalone the most of the paths are wrong.
> 
> Untangle things by issuing "cd `dirname "$0`" and working from there.
> Otherwise it's nearly impossible to consider all the permutations one
> can use while running outside of "make check"
> 
> Clearly document the variables and the intended behaviour.
> 
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> We really want to cut down all the crazy design here. Dylan ?
> 
> sh script which executes a python one, with the latter creating a bunch
> of sh ones and hardcoding binary location. Then call the generated sh
> scripts, to create the tested OP files. Now compare the expected vs the
> tested via another python script which decodes [in to a temporary file]
> and calls "diff" to compare them.
> ---
>  src/compiler/glsl/tests/optimization-test | 22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/src/compiler/glsl/tests/optimization-test b/src/compiler/glsl/tests/optimization-test
> index d84b83cfaa..e851e13bfb 100755
> --- a/src/compiler/glsl/tests/optimization-test
> +++ b/src/compiler/glsl/tests/optimization-test
> @@ -1,10 +1,18 @@
>  #!/usr/bin/env bash
>  
> -if [ ! -z "$srcdir" ]; then
> -   compare_ir=`pwd`/tests/compare_ir
> -else
> -   compare_ir=./compare_ir
> +# The srcdir variable must point to the location where the Makefile.am or
> +# Makefile.glsl.am in particular is. Even if we execute this test manually.
> +
> +if [ -z "$srcdir" ]; then
> +   srcdir=./../../
> +
> +    # In the manual invokation case, we must CD otherwise we cannot manage all
> +    # the permutations of our scripts which calls a script to create a script
> +    # then execute the script design.
> +    cd `dirname "$0"`
> +    
>  fi
> +compare_ir=$srcdir/glsl/tests/compare_ir

Like I said in the other email, I think if someone wants to run the
checks manually, they can be expected to set $srcdir correctly.
Bailing out when it's unset would be good enough IMHO.

>  
>  if [ -z "$PYTHON2" ]; then
>      PYTHON2=python2
> @@ -20,10 +28,13 @@ total=0
>  pass=0
>  has_tests=0
>  
> +# Store our location before we start diving into subdirectories.
> +ORIGDIR=`pwd`

How about pushd/popd instead?

>  echo "======       Generating tests      ======"
> -for dir in tests/*/; do
> +for dir in $srcdir/glsl/tests/*/; do
>      if [ -e "${dir}create_test_cases.py" ]; then
>          cd $dir;
> +        echo found

Guessing this line can go? :)

>          $PYTHON2 create_test_cases.py
>          if [ "x$?" = x0 ]; then
>              has_tests=1
> @@ -32,6 +43,7 @@ for dir in tests/*/; do
>      fi
>      echo "$dir"
>  done
> +cd "$ORIGDIR"
>  
>  if [ "x$has_tests" = x0 ]; then
>      echo "Could not generate any tests."
> -- 
> 2.11.0
> 


More information about the mesa-dev mailing list