On 11/22/2016 03:00 AM, Pádraig Brady wrote:
> Subject: [PATCH 2/3] tests: fix false fails due to passing env vars to
>  returns_
> 
> On BSD /bin/sh it was seen that unexported env vars passed to
> returns_() would not be propagated to the wrapped command.

While the new syntax-check LGTM ...

> --- a/tests/misc/printenv.sh
> +++ b/tests/misc/printenv.sh
> @@ -59,8 +59,10 @@ EOF
>  compare exp out || fail=1
>  
>  # Exit status reflects missing variable, but remaining arguments processed.
> -ENV_TEST1=a returns_ 1 env -- printenv ENV_TEST2 ENV_TEST1 > out || fail=1
> -ENV_TEST1=a returns_ 1 env -- printenv ENV_TEST1 ENV_TEST2 >> out || fail=1
> +ENV_TEST1=a env -- printenv ENV_TEST2 ENV_TEST1 > out
> +test $? = 1 || fail=1
> +ENV_TEST1=a env -- printenv ENV_TEST1 ENV_TEST2 >> out
> +test $? = 1 || fail=1

...IMO going away from using returns_ is a step backward.

What about the following which I find nicer to read?
I'd also prefer to use export+unset to avoid a subshell.

-ENV_TEST1=a returns_ 1 env -- printenv ENV_TEST2 ENV_TEST1 > out || fail=1
-ENV_TEST1=a returns_ 1 env -- printenv ENV_TEST1 ENV_TEST2 >> out || fail=1
+export ENV_TEST1=a
+returns_ 1 env -- printenv ENV_TEST2 ENV_TEST1 > out || fail=1
+returns_ 1 env -- printenv ENV_TEST1 ENV_TEST2 >> out || fail=1
+unset ENV_TEST1

WDYT?

Thanks & have a nice day,
Berny

Reply via email to