On 05/17/2010 01:29 PM, Eric Blake wrote:
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(a)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
Thanks for the review, I've sent a new patch with your recommended changes.
- Cole