From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyril Hrubis Date: Tue, 26 Mar 2019 12:58:25 +0100 Subject: [LTP] [RFC PATCH 1/4] syscalls/abort01: convert to new library In-Reply-To: <20190325232012.67123-2-sspatil@android.com> References: <20190325232012.67123-1-sspatil@android.com> <20190325232012.67123-2-sspatil@android.com> Message-ID: <20190326115825.GA32549@rei.lan> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ltp@lists.linux.it Hi! I've further simplified the test and pushed, thanks. What I have done: * Got rid of tst_brk(TFAIL, ...) calls see: https://github.com/linux-test-project/ltp/issues/462 * Used tst_strsig() and tst_strstatus() to print signal and status * Used tst_res() API in the child * Got rid of unused variables, etc. diff --git a/testcases/kernel/syscalls/abort/abort01.c b/testcases/kernel/syscalls/abort/abort01.c index ac5ddb140..386a22f26 100644 --- a/testcases/kernel/syscalls/abort/abort01.c +++ b/testcases/kernel/syscalls/abort/abort01.c @@ -27,51 +27,45 @@ static void do_child(void) { abort(); - fprintf(stderr, "\tchild - abort failed.\n"); - exit(1); + tst_res(TFAIL, "Abort returned"); + exit(0); } -void verify_abort(unsigned int nr) +void verify_abort(void) { - int i; - int status, child, kidpid; - int sig, ex; - int core; - core = ex = sig = 0; + int status, kidpid; + int sig, core; kidpid = SAFE_FORK(); if (kidpid == 0) do_child(); - child = SAFE_WAIT(&status); - - if (WIFSIGNALED(status)) { - core = WCOREDUMP(status); - sig = WTERMSIG(status); + SAFE_WAIT(&status); + if (!WIFSIGNALED(status)) { + tst_res(TFAIL, "Child %s, expected SIGIOT", + tst_strstatus(status)); + return; } - if (WIFEXITED(status)) - ex = WEXITSTATUS(status); + core = WCOREDUMP(status); + sig = WTERMSIG(status); if (core == 0) - tst_brk(TFAIL, - "Missing core dump; exit(%d), signal(%d)", - ex, sig); - else if (core != -1) + tst_res(TFAIL, "abort() failed to dump core"); + else tst_res(TPASS, "abort() dumped core"); if (sig == SIGIOT) tst_res(TPASS, "abort() raised SIGIOT"); else - tst_brk(TFAIL, - "Unexpected signal(%d), expected SIGIOT(%d)", - sig, SIGIOT); + tst_res(TFAIL, "abort() raised %s", tst_strsig(sig)); } +#define MIN_RLIMIT_CORE (1024 * 1024) + static void setup(void) { -#define MIN_RLIMIT_CORE (1024 * 1024) struct rlimit rlim; /* make sure we get core dumps */ @@ -83,9 +77,8 @@ static void setup(void) } static struct tst_test test = { - .tcnt = 3, .needs_tmpdir = 1, .forks_child = 1, .setup = setup, - .test = verify_abort, + .test_all = verify_abort, }; -- Cyril Hrubis chrubis@suse.cz