From: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
To: Jan Stancek <jstancek@redhat.com>
Cc: LTP <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH v3 2/2] setpgid/setpgid01.c: add pid = 0 and pgid = 0 test
Date: Mon, 19 May 2014 09:51:16 +0800 [thread overview]
Message-ID: <53796394.8030906@cn.fujitsu.com> (raw)
In-Reply-To: <1400463915-15572-2-git-send-email-wangxg.fnst@cn.fujitsu.com>
Hi Jan,
Thanks for your reviewing.
I have added the possible error message output in this patch v3.
Would you like to commit it, thanks.
Regards,
Xiaoguang Wang
On 05/19/2014 09:45 AM, Xiaoguang Wang wrote:
> Signed-off-by: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
> ---
> testcases/kernel/syscalls/setpgid/setpgid01.c | 54 ++++++++++++++++++++++++++-
> 1 file changed, 52 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/setpgid/setpgid01.c b/testcases/kernel/syscalls/setpgid/setpgid01.c
> index 700e573..00e895b 100644
> --- a/testcases/kernel/syscalls/setpgid/setpgid01.c
> +++ b/testcases/kernel/syscalls/setpgid/setpgid01.c
> @@ -36,12 +36,14 @@
> * Description:
> * Verify that:
> * 1. Basic functionality test for setpgid(2).
> + * 2. Check functioning of setpgid(2) with pid = 0 and pgid = 0.
> */
>
> #include <errno.h>
> #include <string.h>
> #include <signal.h>
> #include <stdlib.h>
> +#include <sys/wait.h>
> #include "test.h"
> #include "usctest.h"
>
> @@ -51,7 +53,8 @@ static void cleanup(void);
> char *TCID = "setpgid01";
>
> static void setpgid_test1(void);
> -static void (*testfunc[])(void) = { setpgid_test1};
> +static void setpgid_test2(void);
> +static void (*testfunc[])(void) = { setpgid_test1, setpgid_test2};
> int TST_TOTAL = ARRAY_SIZE(testfunc);
>
> int main(int ac, char **av)
> @@ -91,9 +94,56 @@ static void setpgid_test1(void)
> }
> }
>
> +static int wait4child(pid_t child)
> +{
> + int status;
> +
> + if (waitpid(child, &status, 0) == -1)
> + tst_resm(TBROK|TERRNO, "waitpid");
> + if (WIFEXITED(status))
> + return WEXITSTATUS(status);
> + else
> + return status;
> +}
> +
> +static void setpgid_test2(void)
> +{
> + int ret;
> + pid_t pgid, pid;
> +
> + pid = FORK_OR_VFORK();
> + if (pid == -1)
> + tst_brkm(TBROK | TERRNO, cleanup, "fork()");
> +
> + if (pid != 0) {
> + ret = wait4child(pid);
> + } else {
> + pid = getpid();
> + TEST(setpgid(0, 0));
> + pgid = getpgrp();
> + if (TEST_RETURN == -1) {
> + fprintf(stderr, "setpgid(0, 0) fails in "
> + "child process: %s\n", strerror(TEST_ERRNO));
> + exit(1);
> + } else if (pgid != pid) {
> + fprintf(stderr, "setpgid(0, 0) fails to make PGID"
> + "equal to PID\n");
> + exit(1);
> + } else {
> + exit(0);
> + }
> + }
> +
> + if (ret == 0)
> + tst_resm(TPASS, "test setpgid(0, 0) success");
> + else
> + tst_resm(TFAIL, "test setpgid(0, 0) fail");
> +}
> +
> +
> static void setup(void)
> {
> - tst_sig(NOFORK, DEF_HANDLER, cleanup);
> + tst_sig(FORK, DEF_HANDLER, cleanup);
>
> TEST_PAUSE;
> }
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2014-05-19 1:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-19 1:45 [LTP] [PATCH v3 1/2] setpgid/setpgid01.c: cleanup Xiaoguang Wang
2014-05-19 1:45 ` [LTP] [PATCH v3 2/2] setpgid/setpgid01.c: add pid = 0 and pgid = 0 test Xiaoguang Wang
2014-05-19 1:51 ` Xiaoguang Wang [this message]
2014-05-19 12:15 ` Jan Stancek
2014-05-21 8:08 ` Jan Stancek
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=53796394.8030906@cn.fujitsu.com \
--to=wangxg.fnst@cn.fujitsu.com \
--cc=jstancek@redhat.com \
--cc=ltp-list@lists.sourceforge.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.