[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] tests: Skip daemon-conf test if dir exceeds UNIX_PATH_MAX



On 05/17/2010 11:06 AM, Cole Robinson wrote:
> The max path length for unix sockets is pretty small (108, see man 7 unix).
> If 'make check' is run from a directory that exceeds this, one of the tests
> will fail, and in such a way that requires manually editting the test to
> determine why.
> 
> There are certainly other ways to handle this, but I've chosen just to skip
> the offending test if we will exceed the length limitation.

Skipping, with a stderr message of why, sounds reasonable to me.

> 
> Signed-off-by: Cole Robinson <crobinso redhat com>
> ---
>  tests/daemon-conf |   22 ++++++++++++++--------
>  1 files changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/daemon-conf b/tests/daemon-conf
> index 10c1628..8eed4c4 100755
> --- a/tests/daemon-conf
> +++ b/tests/daemon-conf
> @@ -76,16 +76,22 @@ sed 's,^log_outputs.*,log_outputs="3:file:'"$(pwd)/log"'",' tmp.conf > k \
>      || fail=1
>  mv k tmp.conf || fail=1
>  
> -$abs_top_builddir/daemon/libvirtd --pid-file=pid-file --config=tmp.conf > log 2>&1 & pid=$!
> -sleep $sleep_secs
> -kill $pid
> +# Unix socket max path size is 108 on linux. If the generated sock path
> +# exceeds this, the test will fail, so skip it if CWD is too long
> +SOCKPATH=`pwd`/libvirt-sock
> +if test ${#SOCKPATH} -lt 108 ; then

Bash-ism.  To be portable, you'd have to use something like:

if test `echo "$SOCKPATH" | wc -c` -lt 108; then

And for that matter, instead of a positive test and re-indenting the
rest of the script, it might be nicer to do a negative test and early
exit, to leave the rest of the script untouched:

if test 108 -lt `...`; then
    skip_test_ "CWD too long"
fi

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

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]