Re: [Mesa-dev] [PATCH] glx/tests: Fix bash-specific code in dispatch-index-check

2017-02-27 Thread Aaron Watry
On Sun, Feb 26, 2017 at 7:51 AM, Eric Engestrom  wrote:

> On Friday, 2017-02-24 22:03:36 -0600, Aaron Watry wrote:
> > Using <<< for variable redirection is bash-specific behavior.
> > Ubuntu redirects sh -> dash, so this was erroring out.
> >
> > Also, the initial error that led me to this was that srcdir is null when
> running make check
> > so I just copied something similar to what the optimization-test script
> does.
> > ---
> >  src/glx/tests/dispatch-index-check | 21 ++---
> >  1 file changed, 14 insertions(+), 7 deletions(-)
> >
> > diff --git a/src/glx/tests/dispatch-index-check
> b/src/glx/tests/dispatch-index-check
> > index 78464b8..ee1b9ee 100755
> > --- a/src/glx/tests/dispatch-index-check
> > +++ b/src/glx/tests/dispatch-index-check
> > @@ -1,24 +1,31 @@
> >  #!/bin/sh
> >
> > +if [ -z "$srcdir" ]; then
> > +   scriptdir=`dirname "$0"`
> > +else
> > +   scriptdir=$srcdir
> > +fi
> > +
> > +
> >  # extract enum definition
> >  dispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
> > -  "$srcdir"/../g_glxglvnddispatchindices.h)
> > +  "$scriptdir"/../g_glxglvnddispatchindices.h)
>
> No need to create a new var that just copies the old one :)
>
>
Fair enough.  I just didn't want this script to screw up anything in the
future that sourced this script in by modifying externally declared
variables that we knew about.


> >
> >  # extract values inside of enum
> > -dispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
> > +dispatch_list=$(printf "$dispatch_list" | sed '1d;$d')
>
> Never use a variable you have no control over as the format string for
> printf! Use `printf '%s' "$var"` instead.
>

Yeah, that's my bad. I basically did a SO search for ways to de-bashify the
'<<<' operator, and one of the first results used printf $var.  In
retrospect, your version is much more appropriate.

I'm generally a bash guy, so just declaring the scripts as actually being
bash scripts works for me as well.  Make check works again for me, and I
agree with Vinson that it'd be nice to translate this to pure sh, but for
now, this at least works.


>
> I just pushed a1e5e55989 ("check: mark two tests are requiring bash")
> which fixes this by simply asking for bash in the shebang, which was
> what my original patch did, and was changed just before pushing because
> of a review comment that turned out to be wrong :)
>
> Cheers,
>   Eric
>
> >
> >  # remove indentation
> > -dispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
> > +dispatch_list=$(printf "$dispatch_list" | sed 's/^\s\+//')
> >
> >  # extract function names
> > -dispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
> > +dispatch_list=$(printf "$dispatch_list" | sed 's/DI_//;s/,//')
> >
> >  # same for commented functions, we want to keep them sorted too
> > -dispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<<
> "$dispatch_list")
> > +dispatch_list=$(printf "$dispatch_list" | sed 's#// ##;s/ implemented
> by [a-z]\+//')
> >
> >  # remove LAST_INDEX, as it will not be in alphabetical order
> > -dispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
> > +dispatch_list=$(printf "$dispatch_list" | sed '/LAST_INDEX/d')
> >
> > -sorted=$(LC_ALL=C sort <<< "$dispatch_list")
> > +sorted=$(LC_ALL=C printf "$dispatch_list" | sort)
> >
> >  test "$dispatch_list" = "$sorted"
> > --
> > 2.9.3
> >
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] glx/tests: Fix bash-specific code in dispatch-index-check

2017-02-26 Thread Emil Velikov
On 26 February 2017 at 13:51, Eric Engestrom  wrote:
> On Friday, 2017-02-24 22:03:36 -0600, Aaron Watry wrote:
>> Using <<< for variable redirection is bash-specific behavior.
>> Ubuntu redirects sh -> dash, so this was erroring out.
>>
>> Also, the initial error that led me to this was that srcdir is null when 
>> running make check
>> so I just copied something similar to what the optimization-test script does.
>> ---
>>  src/glx/tests/dispatch-index-check | 21 ++---
>>  1 file changed, 14 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/glx/tests/dispatch-index-check 
>> b/src/glx/tests/dispatch-index-check
>> index 78464b8..ee1b9ee 100755
>> --- a/src/glx/tests/dispatch-index-check
>> +++ b/src/glx/tests/dispatch-index-check
>> @@ -1,24 +1,31 @@
>>  #!/bin/sh
>>
>> +if [ -z "$srcdir" ]; then
>> +   scriptdir=`dirname "$0"`
>> +else
>> +   scriptdir=$srcdir
>> +fi
>> +
>> +
>>  # extract enum definition
>>  dispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
>> -  "$srcdir"/../g_glxglvnddispatchindices.h)
>> +  "$scriptdir"/../g_glxglvnddispatchindices.h)
>
> No need to create a new var that just copies the old one :)
>
>>
>>  # extract values inside of enum
>> -dispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
>> +dispatch_list=$(printf "$dispatch_list" | sed '1d;$d')
>
> Never use a variable you have no control over as the format string for
> printf! Use `printf '%s' "$var"` instead.
>
> I just pushed a1e5e55989 ("check: mark two tests are requiring bash")
> which fixes this by simply asking for bash in the shebang, which was
> what my original patch did, and was changed just before pushing because
> of a review comment that turned out to be wrong :)
>
Yes, my bad on that one - guess I shouldn't trust checkbashisms/zsh that much.

I won't object if we can make these tests 'generic' sh - patches welcome ;-)
Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] glx/tests: Fix bash-specific code in dispatch-index-check

2017-02-26 Thread Eric Engestrom
On Friday, 2017-02-24 22:03:36 -0600, Aaron Watry wrote:
> Using <<< for variable redirection is bash-specific behavior.
> Ubuntu redirects sh -> dash, so this was erroring out.
> 
> Also, the initial error that led me to this was that srcdir is null when 
> running make check
> so I just copied something similar to what the optimization-test script does.
> ---
>  src/glx/tests/dispatch-index-check | 21 ++---
>  1 file changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/glx/tests/dispatch-index-check 
> b/src/glx/tests/dispatch-index-check
> index 78464b8..ee1b9ee 100755
> --- a/src/glx/tests/dispatch-index-check
> +++ b/src/glx/tests/dispatch-index-check
> @@ -1,24 +1,31 @@
>  #!/bin/sh
>  
> +if [ -z "$srcdir" ]; then
> +   scriptdir=`dirname "$0"`
> +else
> +   scriptdir=$srcdir
> +fi
> +
> +
>  # extract enum definition
>  dispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
> -  "$srcdir"/../g_glxglvnddispatchindices.h)
> +  "$scriptdir"/../g_glxglvnddispatchindices.h)

No need to create a new var that just copies the old one :)

>  
>  # extract values inside of enum
> -dispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed '1d;$d')

Never use a variable you have no control over as the format string for
printf! Use `printf '%s' "$var"` instead.

I just pushed a1e5e55989 ("check: mark two tests are requiring bash")
which fixes this by simply asking for bash in the shebang, which was
what my original patch did, and was changed just before pushing because
of a review comment that turned out to be wrong :)

Cheers,
  Eric

>  
>  # remove indentation
> -dispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's/^\s\+//')
>  
>  # extract function names
> -dispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's/DI_//;s/,//')
>  
>  # same for commented functions, we want to keep them sorted too
> -dispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<< 
> "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's#// ##;s/ implemented by 
> [a-z]\+//')
>  
>  # remove LAST_INDEX, as it will not be in alphabetical order
> -dispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed '/LAST_INDEX/d')
>  
> -sorted=$(LC_ALL=C sort <<< "$dispatch_list")
> +sorted=$(LC_ALL=C printf "$dispatch_list" | sort)
>  
>  test "$dispatch_list" = "$sorted"
> -- 
> 2.9.3
> 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] glx/tests: Fix bash-specific code in dispatch-index-check

2017-02-24 Thread Vinson Lee
On Fri, Feb 24, 2017 at 8:03 PM, Aaron Watry  wrote:
> Using <<< for variable redirection is bash-specific behavior.
> Ubuntu redirects sh -> dash, so this was erroring out.
>
> Also, the initial error that led me to this was that srcdir is null when 
> running make check
> so I just copied something similar to what the optimization-test script does.
> ---
>  src/glx/tests/dispatch-index-check | 21 ++---
>  1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/src/glx/tests/dispatch-index-check 
> b/src/glx/tests/dispatch-index-check
> index 78464b8..ee1b9ee 100755
> --- a/src/glx/tests/dispatch-index-check
> +++ b/src/glx/tests/dispatch-index-check
> @@ -1,24 +1,31 @@
>  #!/bin/sh
>
> +if [ -z "$srcdir" ]; then
> +   scriptdir=`dirname "$0"`
> +else
> +   scriptdir=$srcdir
> +fi
> +
> +
>  # extract enum definition
>  dispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
> -  "$srcdir"/../g_glxglvnddispatchindices.h)
> +  "$scriptdir"/../g_glxglvnddispatchindices.h)
>
>  # extract values inside of enum
> -dispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed '1d;$d')
>
>  # remove indentation
> -dispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's/^\s\+//')
>
>  # extract function names
> -dispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's/DI_//;s/,//')
>
>  # same for commented functions, we want to keep them sorted too
> -dispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<< 
> "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed 's#// ##;s/ implemented by 
> [a-z]\+//')
>
>  # remove LAST_INDEX, as it will not be in alphabetical order
> -dispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
> +dispatch_list=$(printf "$dispatch_list" | sed '/LAST_INDEX/d')
>
> -sorted=$(LC_ALL=C sort <<< "$dispatch_list")
> +sorted=$(LC_ALL=C printf "$dispatch_list" | sort)
>
>  test "$dispatch_list" = "$sorted"
> --
> 2.9.3
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Fixes: 3cc33e764011 ("glx: add GLXdispatchIndex sort check")

Tested-by: Vinson Lee 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] glx/tests: Fix bash-specific code in dispatch-index-check

2017-02-24 Thread Aaron Watry
Using <<< for variable redirection is bash-specific behavior.
Ubuntu redirects sh -> dash, so this was erroring out.

Also, the initial error that led me to this was that srcdir is null when 
running make check
so I just copied something similar to what the optimization-test script does.
---
 src/glx/tests/dispatch-index-check | 21 ++---
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/glx/tests/dispatch-index-check 
b/src/glx/tests/dispatch-index-check
index 78464b8..ee1b9ee 100755
--- a/src/glx/tests/dispatch-index-check
+++ b/src/glx/tests/dispatch-index-check
@@ -1,24 +1,31 @@
 #!/bin/sh
 
+if [ -z "$srcdir" ]; then
+   scriptdir=`dirname "$0"`
+else
+   scriptdir=$srcdir
+fi
+
+
 # extract enum definition
 dispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
-  "$srcdir"/../g_glxglvnddispatchindices.h)
+  "$scriptdir"/../g_glxglvnddispatchindices.h)
 
 # extract values inside of enum
-dispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
+dispatch_list=$(printf "$dispatch_list" | sed '1d;$d')
 
 # remove indentation
-dispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
+dispatch_list=$(printf "$dispatch_list" | sed 's/^\s\+//')
 
 # extract function names
-dispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
+dispatch_list=$(printf "$dispatch_list" | sed 's/DI_//;s/,//')
 
 # same for commented functions, we want to keep them sorted too
-dispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<< "$dispatch_list")
+dispatch_list=$(printf "$dispatch_list" | sed 's#// ##;s/ implemented by 
[a-z]\+//')
 
 # remove LAST_INDEX, as it will not be in alphabetical order
-dispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
+dispatch_list=$(printf "$dispatch_list" | sed '/LAST_INDEX/d')
 
-sorted=$(LC_ALL=C sort <<< "$dispatch_list")
+sorted=$(LC_ALL=C printf "$dispatch_list" | sort)
 
 test "$dispatch_list" = "$sorted"
-- 
2.9.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev