We actually try to stick to the Single Unix Specification whenever
possible. I agree that the test should handle the SIGSEGV call. We
actually have had other tests with the same scenario and have fixed them.
These tests were ported from OS's with strict guidelines on what to expect
that matched the manpages....this is obviously not the case with Linux.
We'll take a look at it and hopefully have a fixed version by the July
release...if not a patch will be supplied on the LTP mailing list
Robert V. Williamson <email@example.com>
Linux Test Project
IBM Linux Technology Center
Phone: (512) 838-9295 T/L: 638-9295
<firstname.lastname@example.org> To: "Maciej W.
Sent by: cc: Carsten
Langgaard <email@example.com>, Ralf Baechle
Subject: [LTP] Re: LTP
06/25/2002 09:28 AM
On Tue, Jun 25, 2002 at 03:53:25PM +0200, Maciej W. Rozycki wrote:
> On Tue, 25 Jun 2002, Carsten Langgaard wrote:
> > The next LTP failure line is:
> > pipe05 1 BROK : Unexpected signal 11 received.
> > For this one I haven't got a fix, because the failure is due to the way
> > the pipe syscall is implemented for MIPS (so we need a fix in both the
> > kernel and glibc).
> > The glibc code look like this
> > SYSCALL__ (pipe, 1)
> > /* Plop in the two descriptors. */
> > sw v0, 0(a0)
> > sw v1, 4(a0)
> > /* Go out with a clean status. */
> > move v0, zero
> > j ra
> > .end __pipe
> > The problem is that the code is called with $a0 = 0. So the 'sw v0,
> > 0(a0)' after the syscall generates a segmentation fault.
> The test is broken and it's what should be fixed, instead -- several
> Linux platforms do it this way, e.g. Alpha and IA-64. A SIGSEGV is a
> valid response for an invalid address. Remember you test pipe(3) and not
The question is what API spec is relevant for Linux. My pipe(2) man page
says (there is no pipe(3) man page):
int pipe(int filedes);
EFAULT filedes is not valid.
whereas The Single UNIX ® Specification, Version 2
implies the SIGSEGV is OK.
Maybe the LTP folks can shed a light on this.
ThinkGeek at http://www.ThinkGeek.com/
Ltp-list mailing list