
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