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

Cole Robinson crobinso at redhat.com
Mon May 17 18:21:50 UTC 2010


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 at 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




More information about the libvir-list mailing list