[libvirt] [PATCH v2] [TCK] Convert scripts to also run with dash

Eric Blake eblake at redhat.com
Mon Nov 15 23:49:11 UTC 2010


On 11/15/2010 12:40 PM, Stefan Berger wrote:
> v2:
>     - following Eric's suggestions from review of v1
>     - runs with ksh shell as well
> 
> -          [ $((flags & FLAG_LIBVIRT_TEST)) -ne 0 ] && \
> -              test_result $((passctr+failctr)) "" 1
> -          [ $((flags & FLAG_TAP_TEST)) -ne 0 ] && \
> -             tap_fail $((passctr+failctr)) "${xmlfile} : ${cmd}"
> +          [ $(($flags & $FLAG_LIBVIRT_TEST)) -ne 0 ] && \
> +            test_result $(($passctr + $failctr)) "" 1
> +          [ $(($flags & FLAG_TAP_TEST)) -ne 0 ] && \

Missed one.  This should be $FLAG_TAP_TEST

>      test_intro $this_test
> -    popd > /dev/null
> +    cd "${curdir}"
> +    [ $? -ne 0 ] && echo "cd failed" && exit 1

Here, you want to exit unconditionally if cd failed.

cd "${curdir}" || { echo "cd failed" >&2; exit 1; }

>      skip=0
>      if [ "x${skipregex}x" != "xx" ]; then
> -    	skip=`echo ${cmd} | grep -c -E ${skipregex}`
> +    	skip=`printf %s\\n ${cmd} | grep -c -E ${skipregex}`

As long as you're touching this line, prefer $() over ``.

> @@ -486,34 +486,32 @@ function deleteTestFilter() {
>  }
>  
>  
> -function main() {
> -  local prgname="$0"
> -  local vm1 vm2
> -  local xmldir="nwfilterxml2xmlin"
> -  local fwalldir="nwfilterxml2fwallout"
> -  local found=0 vms res
> -  local filtername="tck-testcase"
> -  local libvirtdpid=-1
> -  local flags OPWD
> +main() {
> +  prgname="$0"

Using $0 fails inside of some zsh versions (where it used to name the
function, rather than being global to the shell script); but that's
probably irrelevant to this exercise (I don't know of any Linux versions
that use zsh as /bin/sh, although it has happened on some BSD variants;
and modern zsh has fixed that bug).  At any rate, if it bothers you, the
workaround is to copy $0 to a global variable at the beginning of the
script, rather than assigning prgname inside of every function that
cares about the global state of $0.

At any rate, given your testing with dash and ksh, and the minor nature
of my nits, feel free to push one you've fixed those without needing to
send a v3.

ACK.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20101115/c88dd254/attachment-0001.sig>


More information about the libvir-list mailing list