Re: fileutils 4.1: tests/ls/follow-slink

Jim Meyering <[email protected]>
Newsgroups gmane.comp.gnu.fileutils.bugs
Message-ID <[email protected]>
Richard Dawe <[email protected]> wrote:
> Hello.
>
> I'm trying to work out how tests/ls/follow-slink from fileutils 4.1 can
> pass/fail, in particular the command:
>
>     ls -L link 2> /dev/null && fail=1
>
> This dereferences the link 'link'. It seems this 'ls' command is expected to
> fail - presumably because the link is cyclic and some function will return
> ELOOP.
>
> 'link' is a cyclic symlink created like this:
>
>     ln -s link link || framework_failure=1
>
> In the DJGPP port of 'ln', this does nothing. No symlink is created - this is
> due to the DJGPP libc implementation of symlink(). So the 'ls -L' command
> fails and the test passes.

Thanks for the explanation.
If the DJGPP libc implementation of symlink really
works that way, then shouldn't it be fixed?

> Perhaps the test should do something like this?
>
>     ln -s link link || framework_failure=1
>     test -f link || framework_failure=1

That wouldn't work, since `test -f link' would fail even on
a unix-based system.  But this should detect the failure you describe:

      ls link || framework_failure=1

What version of DJGPP has this problem?

Jim
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.