* [LTP] [PATCH] container: use tst_record_childstatus() in userns
@ 2015-08-07 5:04 Yuan Sun
2015-08-11 7:43 ` Jan Stancek
0 siblings, 1 reply; 3+ messages in thread
From: Yuan Sun @ 2015-08-07 5:04 UTC (permalink / raw)
To: jstancek; +Cc: ltp-list
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
---
testcases/kernel/containers/userns/userns02.c | 14 +-----------
testcases/kernel/containers/userns/userns03.c | 24 ++-------------------
testcases/kernel/containers/userns/userns04.c | 31 ++++-----------------------
3 files changed, 7 insertions(+), 62 deletions(-)
diff --git a/testcases/kernel/containers/userns/userns02.c b/testcases/kernel/containers/userns/userns02.c
index e1677b6..32db7bc 100644
--- a/testcases/kernel/containers/userns/userns02.c
+++ b/testcases/kernel/containers/userns/userns02.c
@@ -68,7 +68,6 @@ static void setup(void)
int main(int argc, char *argv[])
{
- int status;
int lc;
int childpid;
int parentuid;
@@ -111,19 +110,8 @@ int main(int argc, char *argv[])
TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
- if (waitpid(childpid, &status, 0) < 0)
- tst_brkm(TBROK | TERRNO, cleanup, "waitpid failed");
-
- if (WIFSIGNALED(status)) {
- tst_resm(TFAIL, "child was killed with signal = %d",
- WTERMSIG(status));
- } else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
- tst_resm(TFAIL, "child exited abnormally");
- else
- tst_resm(TPASS, "the uid and the gid are right inside "
- "the container");
+ tst_record_childstatus(cleanup, childpid);
}
cleanup();
tst_exit();
}
-
diff --git a/testcases/kernel/containers/userns/userns03.c b/testcases/kernel/containers/userns/userns03.c
index 9b8ede5..6e3cedd 100644
--- a/testcases/kernel/containers/userns/userns03.c
+++ b/testcases/kernel/containers/userns/userns03.c
@@ -166,7 +166,6 @@ int main(int argc, char *argv[])
{
pid_t cpid2;
char path[BUFSIZ];
- int cpid1status, cpid2status;
int lc;
int fd;
@@ -211,27 +210,8 @@ int main(int argc, char *argv[])
TST_SAFE_CHECKPOINT_WAKE_AND_WAIT(cleanup, 1);
- if ((waitpid(cpid1, &cpid1status, 0) < 0) ||
- (waitpid(cpid2, &cpid2status, 0) < 0))
- tst_brkm(TBROK | TERRNO, cleanup,
- "parent: waitpid failed.");
-
- if (WIFSIGNALED(cpid1status)) {
- tst_resm(TFAIL, "child1 was killed with signal = %d",
- WTERMSIG(cpid1status));
- } else if (WIFEXITED(cpid1status) &&
- WEXITSTATUS(cpid1status) != 0) {
- tst_resm(TFAIL, "child1 exited abnormally");
- }
-
- if (WIFSIGNALED(cpid2status)) {
- tst_resm(TFAIL, "child2 was killed with signal = %d",
- WTERMSIG(cpid2status));
- } else if (WIFEXITED(cpid2status) &&
- WEXITSTATUS(cpid2status) != 0) {
- tst_resm(TFAIL, "child2 exited abnormally");
- } else
- tst_resm(TPASS, "test pass");
+ tst_record_childstatus(cleanup, cpid1);
+ tst_record_childstatus(cleanup, cpid2);
}
cleanup();
tst_exit();
diff --git a/testcases/kernel/containers/userns/userns04.c b/testcases/kernel/containers/userns/userns04.c
index 9836fd9..4d38891 100644
--- a/testcases/kernel/containers/userns/userns04.c
+++ b/testcases/kernel/containers/userns/userns04.c
@@ -70,29 +70,11 @@ static int child_fn2(void *arg)
return exit_val;
}
-static int wait4child(pid_t pid, const char *msg)
-{
- int status;
-
- if (waitpid(pid, &status, 0) == -1) {
- tst_brkm(TBROK | TERRNO, cleanup, "waitpid");
- } else if (WIFSIGNALED(status)) {
- tst_resm(TFAIL, "%s: child was killed with signal = %d",
- msg, WTERMSIG(status));
- return WTERMSIG(status);
- } else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
- tst_resm(TFAIL, "%s: child returns %d", msg, status);
- return WEXITSTATUS(status);
- }
-
- return 0;
-}
-
static void test_cap_sys_admin(void)
{
pid_t cpid1, cpid2, cpid3;
char path[BUFSIZ];
- int fd, status;
+ int fd;
/* child 1 */
cpid1 = ltp_clone_quick(CLONE_NEWUSER | SIGCHLD,
@@ -124,14 +106,9 @@ static void test_cap_sys_admin(void)
TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
TST_SAFE_CHECKPOINT_WAKE(cleanup, 1);
- status = 0;
- status |= wait4child(cpid1, "child1");
- status |= wait4child(cpid2, "child2");
- status |= wait4child(cpid3, "child3");
- if (status == 0)
- tst_resm(TPASS, "The setns function works well.");
- else
- tst_resm(TFAIL, "Some child reported failure.");
+ tst_record_childstatus(cleanup, cpid1);
+ tst_record_childstatus(cleanup, cpid2);
+ tst_record_childstatus(cleanup, cpid3);
SAFE_CLOSE(cleanup, fd);
--
1.9.1
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH] container: use tst_record_childstatus() in userns
2015-08-07 5:04 [LTP] [PATCH] container: use tst_record_childstatus() in userns Yuan Sun
@ 2015-08-11 7:43 ` Jan Stancek
2015-08-11 7:53 ` Yuan Sun
0 siblings, 1 reply; 3+ messages in thread
From: Jan Stancek @ 2015-08-11 7:43 UTC (permalink / raw)
To: Yuan Sun; +Cc: ltp-list
----- Original Message -----
> From: "Yuan Sun" <sunyuan3@huawei.com>
> To: jstancek@redhat.com
> Cc: ltp-list@lists.sourceforge.net
> Sent: Friday, 7 August, 2015 7:04:00 AM
> Subject: [PATCH] container: use tst_record_childstatus() in userns
>
> Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
Hi,
Pushed along with same patch for userns01.
Thanks,
Jan
> ---
> testcases/kernel/containers/userns/userns02.c | 14 +-----------
> testcases/kernel/containers/userns/userns03.c | 24 ++-------------------
> testcases/kernel/containers/userns/userns04.c | 31
> ++++-----------------------
> 3 files changed, 7 insertions(+), 62 deletions(-)
>
> diff --git a/testcases/kernel/containers/userns/userns02.c
> b/testcases/kernel/containers/userns/userns02.c
> index e1677b6..32db7bc 100644
> --- a/testcases/kernel/containers/userns/userns02.c
> +++ b/testcases/kernel/containers/userns/userns02.c
> @@ -68,7 +68,6 @@ static void setup(void)
>
> int main(int argc, char *argv[])
> {
> - int status;
> int lc;
> int childpid;
> int parentuid;
> @@ -111,19 +110,8 @@ int main(int argc, char *argv[])
>
> TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
>
> - if (waitpid(childpid, &status, 0) < 0)
> - tst_brkm(TBROK | TERRNO, cleanup, "waitpid failed");
> -
> - if (WIFSIGNALED(status)) {
> - tst_resm(TFAIL, "child was killed with signal = %d",
> - WTERMSIG(status));
> - } else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
> - tst_resm(TFAIL, "child exited abnormally");
> - else
> - tst_resm(TPASS, "the uid and the gid are right inside "
> - "the container");
> + tst_record_childstatus(cleanup, childpid);
> }
> cleanup();
> tst_exit();
> }
> -
> diff --git a/testcases/kernel/containers/userns/userns03.c
> b/testcases/kernel/containers/userns/userns03.c
> index 9b8ede5..6e3cedd 100644
> --- a/testcases/kernel/containers/userns/userns03.c
> +++ b/testcases/kernel/containers/userns/userns03.c
> @@ -166,7 +166,6 @@ int main(int argc, char *argv[])
> {
> pid_t cpid2;
> char path[BUFSIZ];
> - int cpid1status, cpid2status;
> int lc;
> int fd;
>
> @@ -211,27 +210,8 @@ int main(int argc, char *argv[])
>
> TST_SAFE_CHECKPOINT_WAKE_AND_WAIT(cleanup, 1);
>
> - if ((waitpid(cpid1, &cpid1status, 0) < 0) ||
> - (waitpid(cpid2, &cpid2status, 0) < 0))
> - tst_brkm(TBROK | TERRNO, cleanup,
> - "parent: waitpid failed.");
> -
> - if (WIFSIGNALED(cpid1status)) {
> - tst_resm(TFAIL, "child1 was killed with signal = %d",
> - WTERMSIG(cpid1status));
> - } else if (WIFEXITED(cpid1status) &&
> - WEXITSTATUS(cpid1status) != 0) {
> - tst_resm(TFAIL, "child1 exited abnormally");
> - }
> -
> - if (WIFSIGNALED(cpid2status)) {
> - tst_resm(TFAIL, "child2 was killed with signal = %d",
> - WTERMSIG(cpid2status));
> - } else if (WIFEXITED(cpid2status) &&
> - WEXITSTATUS(cpid2status) != 0) {
> - tst_resm(TFAIL, "child2 exited abnormally");
> - } else
> - tst_resm(TPASS, "test pass");
> + tst_record_childstatus(cleanup, cpid1);
> + tst_record_childstatus(cleanup, cpid2);
> }
> cleanup();
> tst_exit();
> diff --git a/testcases/kernel/containers/userns/userns04.c
> b/testcases/kernel/containers/userns/userns04.c
> index 9836fd9..4d38891 100644
> --- a/testcases/kernel/containers/userns/userns04.c
> +++ b/testcases/kernel/containers/userns/userns04.c
> @@ -70,29 +70,11 @@ static int child_fn2(void *arg)
> return exit_val;
> }
>
> -static int wait4child(pid_t pid, const char *msg)
> -{
> - int status;
> -
> - if (waitpid(pid, &status, 0) == -1) {
> - tst_brkm(TBROK | TERRNO, cleanup, "waitpid");
> - } else if (WIFSIGNALED(status)) {
> - tst_resm(TFAIL, "%s: child was killed with signal = %d",
> - msg, WTERMSIG(status));
> - return WTERMSIG(status);
> - } else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
> - tst_resm(TFAIL, "%s: child returns %d", msg, status);
> - return WEXITSTATUS(status);
> - }
> -
> - return 0;
> -}
> -
> static void test_cap_sys_admin(void)
> {
> pid_t cpid1, cpid2, cpid3;
> char path[BUFSIZ];
> - int fd, status;
> + int fd;
>
> /* child 1 */
> cpid1 = ltp_clone_quick(CLONE_NEWUSER | SIGCHLD,
> @@ -124,14 +106,9 @@ static void test_cap_sys_admin(void)
> TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
> TST_SAFE_CHECKPOINT_WAKE(cleanup, 1);
>
> - status = 0;
> - status |= wait4child(cpid1, "child1");
> - status |= wait4child(cpid2, "child2");
> - status |= wait4child(cpid3, "child3");
> - if (status == 0)
> - tst_resm(TPASS, "The setns function works well.");
> - else
> - tst_resm(TFAIL, "Some child reported failure.");
> + tst_record_childstatus(cleanup, cpid1);
> + tst_record_childstatus(cleanup, cpid2);
> + tst_record_childstatus(cleanup, cpid3);
>
> SAFE_CLOSE(cleanup, fd);
>
> --
> 1.9.1
>
>
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH] container: use tst_record_childstatus() in userns
2015-08-11 7:43 ` Jan Stancek
@ 2015-08-11 7:53 ` Yuan Sun
0 siblings, 0 replies; 3+ messages in thread
From: Yuan Sun @ 2015-08-11 7:53 UTC (permalink / raw)
To: Jan Stancek; +Cc: ltp-list
Thank you, Jan.
Yuan
On 2015/8/11 15:43, Jan Stancek wrote:
>
>
>
> ----- Original Message -----
>> From: "Yuan Sun" <sunyuan3@huawei.com>
>> To: jstancek@redhat.com
>> Cc: ltp-list@lists.sourceforge.net
>> Sent: Friday, 7 August, 2015 7:04:00 AM
>> Subject: [PATCH] container: use tst_record_childstatus() in userns
>>
>> Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
> Hi,
>
> Pushed along with same patch for userns01.
>
> Thanks,
> Jan
>
>> ---
>> testcases/kernel/containers/userns/userns02.c | 14 +-----------
>> testcases/kernel/containers/userns/userns03.c | 24 ++-------------------
>> testcases/kernel/containers/userns/userns04.c | 31
>> ++++-----------------------
>> 3 files changed, 7 insertions(+), 62 deletions(-)
>>
>> diff --git a/testcases/kernel/containers/userns/userns02.c
>> b/testcases/kernel/containers/userns/userns02.c
>> index e1677b6..32db7bc 100644
>> --- a/testcases/kernel/containers/userns/userns02.c
>> +++ b/testcases/kernel/containers/userns/userns02.c
>> @@ -68,7 +68,6 @@ static void setup(void)
>>
>> int main(int argc, char *argv[])
>> {
>> - int status;
>> int lc;
>> int childpid;
>> int parentuid;
>> @@ -111,19 +110,8 @@ int main(int argc, char *argv[])
>>
>> TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
>>
>> - if (waitpid(childpid, &status, 0) < 0)
>> - tst_brkm(TBROK | TERRNO, cleanup, "waitpid failed");
>> -
>> - if (WIFSIGNALED(status)) {
>> - tst_resm(TFAIL, "child was killed with signal = %d",
>> - WTERMSIG(status));
>> - } else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
>> - tst_resm(TFAIL, "child exited abnormally");
>> - else
>> - tst_resm(TPASS, "the uid and the gid are right inside "
>> - "the container");
>> + tst_record_childstatus(cleanup, childpid);
>> }
>> cleanup();
>> tst_exit();
>> }
>> -
>> diff --git a/testcases/kernel/containers/userns/userns03.c
>> b/testcases/kernel/containers/userns/userns03.c
>> index 9b8ede5..6e3cedd 100644
>> --- a/testcases/kernel/containers/userns/userns03.c
>> +++ b/testcases/kernel/containers/userns/userns03.c
>> @@ -166,7 +166,6 @@ int main(int argc, char *argv[])
>> {
>> pid_t cpid2;
>> char path[BUFSIZ];
>> - int cpid1status, cpid2status;
>> int lc;
>> int fd;
>>
>> @@ -211,27 +210,8 @@ int main(int argc, char *argv[])
>>
>> TST_SAFE_CHECKPOINT_WAKE_AND_WAIT(cleanup, 1);
>>
>> - if ((waitpid(cpid1, &cpid1status, 0) < 0) ||
>> - (waitpid(cpid2, &cpid2status, 0) < 0))
>> - tst_brkm(TBROK | TERRNO, cleanup,
>> - "parent: waitpid failed.");
>> -
>> - if (WIFSIGNALED(cpid1status)) {
>> - tst_resm(TFAIL, "child1 was killed with signal = %d",
>> - WTERMSIG(cpid1status));
>> - } else if (WIFEXITED(cpid1status) &&
>> - WEXITSTATUS(cpid1status) != 0) {
>> - tst_resm(TFAIL, "child1 exited abnormally");
>> - }
>> -
>> - if (WIFSIGNALED(cpid2status)) {
>> - tst_resm(TFAIL, "child2 was killed with signal = %d",
>> - WTERMSIG(cpid2status));
>> - } else if (WIFEXITED(cpid2status) &&
>> - WEXITSTATUS(cpid2status) != 0) {
>> - tst_resm(TFAIL, "child2 exited abnormally");
>> - } else
>> - tst_resm(TPASS, "test pass");
>> + tst_record_childstatus(cleanup, cpid1);
>> + tst_record_childstatus(cleanup, cpid2);
>> }
>> cleanup();
>> tst_exit();
>> diff --git a/testcases/kernel/containers/userns/userns04.c
>> b/testcases/kernel/containers/userns/userns04.c
>> index 9836fd9..4d38891 100644
>> --- a/testcases/kernel/containers/userns/userns04.c
>> +++ b/testcases/kernel/containers/userns/userns04.c
>> @@ -70,29 +70,11 @@ static int child_fn2(void *arg)
>> return exit_val;
>> }
>>
>> -static int wait4child(pid_t pid, const char *msg)
>> -{
>> - int status;
>> -
>> - if (waitpid(pid, &status, 0) == -1) {
>> - tst_brkm(TBROK | TERRNO, cleanup, "waitpid");
>> - } else if (WIFSIGNALED(status)) {
>> - tst_resm(TFAIL, "%s: child was killed with signal = %d",
>> - msg, WTERMSIG(status));
>> - return WTERMSIG(status);
>> - } else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
>> - tst_resm(TFAIL, "%s: child returns %d", msg, status);
>> - return WEXITSTATUS(status);
>> - }
>> -
>> - return 0;
>> -}
>> -
>> static void test_cap_sys_admin(void)
>> {
>> pid_t cpid1, cpid2, cpid3;
>> char path[BUFSIZ];
>> - int fd, status;
>> + int fd;
>>
>> /* child 1 */
>> cpid1 = ltp_clone_quick(CLONE_NEWUSER | SIGCHLD,
>> @@ -124,14 +106,9 @@ static void test_cap_sys_admin(void)
>> TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
>> TST_SAFE_CHECKPOINT_WAKE(cleanup, 1);
>>
>> - status = 0;
>> - status |= wait4child(cpid1, "child1");
>> - status |= wait4child(cpid2, "child2");
>> - status |= wait4child(cpid3, "child3");
>> - if (status == 0)
>> - tst_resm(TPASS, "The setns function works well.");
>> - else
>> - tst_resm(TFAIL, "Some child reported failure.");
>> + tst_record_childstatus(cleanup, cpid1);
>> + tst_record_childstatus(cleanup, cpid2);
>> + tst_record_childstatus(cleanup, cpid3);
>>
>> SAFE_CLOSE(cleanup, fd);
>>
>> --
>> 1.9.1
>>
>>
> .
>
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-08-11 8:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-07 5:04 [LTP] [PATCH] container: use tst_record_childstatus() in userns Yuan Sun
2015-08-11 7:43 ` Jan Stancek
2015-08-11 7:53 ` Yuan Sun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox