[ovs-dev] [PATCH] testsuite: make tests match with the tested code

YAMAMOTO Takashi yamt at mwd.biglobe.ne.jp
Mon Jul 8 02:44:47 UTC 2013


hi,

> Does this mean that NetBSD's /proc/self/fd does not work for opening files?

it probably works.  but unlike linux, netbsd's procfs is somewhat optional.
procfs might not be mounted on every systems.  besides that, i personally
don't want to wide spread the use of the feature esp. for things like this,
for which there are alternative solutions.

> 
> Temporary symbolic links would require more code (especially to make sure
> that they get deleted if the process is killed). We could do that; feel
> free to submit an implementation.

i agree.
i'm not going to implement it at least right now, though.  sorry.

> 
> A better solution would be, instead of testing uname, to test whether proc
> works in the required way. That could be done from configure and tested
> both from C and from the test suite.

i'm not sure if a configure time test is appropriate for this.

while i don't claim the patch i submitted is an ideal solution,
it fixes the existing problem.

YAMAMOTO Takashi

> On Jul 5, 2013 6:26 AM, "YAMAMOTO Takashi" <yamt at mwd.biglobe.ne.jp> wrote:
> 
>> unix socket long path tests run if /proc/self/fd exists.
>> the tested code is included if linux.
>> these two conditions are not same.  for example,
>> netbsd-6, which isn't linux, can have /proc/self/fd.
>>
>> (well, i don't understand why this workaround uses procfs.
>> aren't temporary symlinks enough?)
>>
>> Signed-off-by: YAMAMOTO Takashi <yamt at mwd.biglobe.ne.jp>
>> ---
>>  tests/library.at | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tests/library.at b/tests/library.at
>> index f84a55b..75bd073 100644
>> --- a/tests/library.at
>> +++ b/tests/library.at
>> @@ -133,7 +133,7 @@ dnl is about 100 bytes.  On Linux, we work around this
>> by indirecting through
>>  dnl a directory fd using /proc/self/fd/<dirfd>.  We do not have a
>> workaround
>>  dnl for other platforms, so we skip the test there.
>>  AT_SETUP([test unix socket, long pathname - C])
>> -AT_SKIP_IF([test ! -d /proc/self/fd])
>> +AT_SKIP_IF([test $(uname) != Linux])
>>  dnl Linux has a 108 byte limit; this is 150 bytes long.
>>
>>  longname=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
>>  mkdir $longname
>> @@ -153,7 +153,7 @@ dnl a directory fd using /proc/self/fd/<dirfd>.  We do
>> not have a workaround
>>  dnl for other platforms, so we skip the test there.
>>  AT_SETUP([test unix socket, long pathname - Python])
>>  AT_SKIP_IF([test $HAVE_PYTHON = no])
>> -AT_SKIP_IF([test ! -d /proc/self/fd])
>> +AT_SKIP_IF([test $(uname) != Linux])
>>  dnl Linux has a 108 byte limit; this is 150 bytes long.
>>
>>  longname=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
>>  mkdir $longname
>> --
>> 1.8.1.5
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
>>



More information about the dev mailing list