From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
To: Garrett Cooper <yanegomi@gmail.com>
Cc: ltp-list@lists.sourceforge.net
Subject: Re: [LTP] pidns31: fix EACCESS error in mq_open()
Date: Wed, 27 Oct 2010 22:22:03 -0700 [thread overview]
Message-ID: <20101028052203.GA28332@us.ibm.com> (raw)
In-Reply-To: <AANLkTim5a5QasWWpcOarGaOnLJzJpyVKSB22HuCm6qKs@mail.gmail.com>
Garrett Cooper [yanegomi@gmail.com] wrote:
| On Mon, Aug 16, 2010 at 7:52 AM, Subrata Modak
| <subrata@linux.vnet.ibm.com> wrote:
| >
| > On Wed, 2010-08-04 at 18:43 -0700, Sukadev Bhattiprolu wrote:
| >> Garrett Cooper [yanegomi@gmail.com] wrote:
| >> | On Wed, Aug 4, 2010 at 4:52 PM, Sukadev Bhattiprolu
| >> | <sukadev@linux.vnet.ibm.com> wrote:
| >> | >
| >> | > pidns31: mq_open() fails with EACCESS.
| >> | >
| >> | > pidns31 test case fails with EACCESS - due to the leading '/' in
| >> | > mqname. See comments in the patch below for details.
| >> | >
| >> | > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
| >> | > ---
| >> | > Index: testcases/kernel/containers/pidns/pidns31.c
| >> | > ===================================================================
| >> | > RCS file: /cvsroot/ltp/ltp/testcases/kernel/containers/pidns/pidns31.c,v
| >> | > retrieving revision 1.6
| >> | > diff -u -p -r1.6 pidns31.c
| >> | > --- testcases/kernel/containers/pidns/pidns31.c 14 Nov 2009 23:58:26 -0000 1.6
| >> | > +++ testcases/kernel/containers/pidns/pidns31.c 4 Aug 2010 23:24:54 -0000
| >> | > @@ -61,7 +61,14 @@
| >> | > char *TCID = "pidns31";
| >> | > int TST_TOTAL = 1;
| >> | >
| >> | > -char *mqname = "/mq1";
| >> | > +
| >> | > +/*
| >> | > + * NOTE: The mq_open() interface in glibc requires mqname to start with a '/'
| >> | > + * and the glibc call skips the leading '/' when invoking the system
| >> | > + * call. Since we bypass the glibc mq_open() (and use syscall()) we
| >> | > + * define mqname without the leading '/'.
| >> | > + */
| >> | > +char *mqname = "mq1";
| >> | > int result = TFAIL;
| >> | >
| >> | > int errno;
| >> | > @@ -264,6 +271,7 @@ int main(int argc, char *argv[])
| >> | > }
| >> | >
| >> | > syscall(__NR_mq_unlink, mqname);
| >> | > +
| >> | > mqd = syscall(__NR_mq_open, mqname, O_RDWR|O_CREAT|O_EXCL, 0777, NULL);
| >> | > if (mqd == (mqd_t)-1) {
| >> | > tst_resm(TBROK, "parent: mq_open() failed (%s)",
| >> |
| >> | Did Linux become non-POSIX compliant :) (from
| >> | <http://www.opengroup.org/onlinepubs/000095399/functions/mq_open.html>)?
| >>
| >> Heh. Good question but I think the mq_open() from glibc is compliant
| >> with this. I am just not sure if the call via syscall() needs to be
| >> compliant.
| >>
| >> But if that is a concern, we need a separate a test case for that -
| >> pidns31 is using mq_* to test an unrelated feature. I think would
| >> make sense to apply this fix, allowing LTP to test the feature even
| >> on older distros.
| >>
| >> Or pidns31 can go back to using the library interface and we could
| >> skip the test on old distros.
| >
| > I would prefer this.
|
| Do I hear someone volunteering to add the required autoconf tests and
| tests for this :)?
Well, I thought we could add a simple autoconf test for the pidns - but
then realized that mq_open() calls were changed for many other test cases
too. The test cases include mqueue.h, which would not be present in old
distros anyway.
So, I don't see the point in fixing this just for pidns tests. If we want
to use the syscall() interface, why don't we just design the test to work
with the syscall behavior - i.e just remove the '/' from the name ?
Sukadev
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2010-10-28 5:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-04 23:52 [LTP] pidns31: fix EACCESS error in mq_open() Sukadev Bhattiprolu
2010-08-05 0:40 ` Garrett Cooper
2010-08-05 1:43 ` Sukadev Bhattiprolu
2010-08-16 14:52 ` Subrata Modak
2010-08-16 23:01 ` Garrett Cooper
2010-08-24 11:02 ` Subrata Modak
2010-10-28 5:22 ` Sukadev Bhattiprolu [this message]
2010-11-11 7:57 ` Subrata Modak
2010-11-11 8:40 ` Garrett Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101028052203.GA28332@us.ibm.com \
--to=sukadev@linux.vnet.ibm.com \
--cc=ltp-list@lists.sourceforge.net \
--cc=yanegomi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox