Message ID | 20221123142716.1336-1-akumar@suse.de |
---|---|
State | Accepted |
Headers | show |
Series | fstatfs01: Convert to new API and enable for all filesystems | expand |
Hello, Merged, Thanks! Avinesh Kumar <akumar@suse.de> writes: > Signed-off-by: Avinesh Kumar <akumar@suse.de> > --- > testcases/kernel/syscalls/fstatfs/fstatfs01.c | 126 +++++------------- > 1 file changed, 35 insertions(+), 91 deletions(-) > > diff --git a/testcases/kernel/syscalls/fstatfs/fstatfs01.c b/testcases/kernel/syscalls/fstatfs/fstatfs01.c > index b06652dd5..6b14fd0d6 100644 > --- a/testcases/kernel/syscalls/fstatfs/fstatfs01.c > +++ b/testcases/kernel/syscalls/fstatfs/fstatfs01.c > @@ -1,57 +1,22 @@ > +// SPDX-License-Identifier: GPL-2.0 > /* > * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. > - * > - * This program is free software; you can redistribute it and/or modify it > - * under the terms of version 2 of the GNU General Public License as > - * published by the Free Software Foundation. > - * > - * This program is distributed in the hope that it would be useful, but > - * WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > - * > - * Further, this software is distributed without any warranty that it is > - * free of the rightful claim of any third person regarding infringement > - * or the like. Any license provided herein, whether implied or > - * otherwise, applies only to this software file. Patent licenses, if > - * any, provided herein do not apply to combinations of this program with > - * other software, or any other product whatsoever. > - * > - * You should have received a copy of the GNU General Public License along > - * with this program; if not, write the Free Software Foundation, Inc., > - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > - * > - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, > - * Mountain View, CA 94043, or: > - * > - * http://www.sgi.com > - * > - * For further information regarding this notice, see: > - * > - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ > - * > - */ > -/* > - * DETAILED DESCRIPTION > - * This is a Phase I test for the fstatfs(2) system call. It is intended > - * to provide a limited exposure of the system call, for now. It > - * should/will be extended when full functional tests are written for > - * fstatfs(2). > + * Copyright (c) 2022 SUSE LLC Avinesh Kumar <avinesh.kumar@suse.com> > */ > > -#include <sys/types.h> > -#include <fcntl.h> > -#include <sys/statfs.h> > -#include <errno.h> > -#include <signal.h> > -#include <string.h> > +/*\ > + * [Description] > + * > + * Verify that fstatfs() syscall executes successfully for all > + * available filesystems. > + */ > > -#include "test.h" > -#include "safe_macros.h" > > -static void setup(void); > -static void cleanup(void); > +#include <stdio.h> > +#include "tst_test.h" > > -char *TCID = "fstatfs01"; > +#define MNT_POINT "mntpoint" > +#define TEMP_FILE MNT_POINT"/test_file" > > static int file_fd; > static int pipe_fd; > @@ -59,65 +24,44 @@ static int pipe_fd; > static struct tcase { > int *fd; > const char *msg; > -} tcases[2] = { > +} tcases[] = { > {&file_fd, "fstatfs() on a file"}, > {&pipe_fd, "fstatfs() on a pipe"}, > }; > > -int TST_TOTAL = ARRAY_SIZE(tcases); > - > -int main(int ac, char **av) > +static void run(unsigned int i) > { > - int lc, i; > - struct statfs stats; > + struct tcase *tc = &tcases[i]; > + struct statfs buf; > > - tst_parse_opts(ac, av, NULL, NULL); > - > - setup(); > - > - for (lc = 0; TEST_LOOPING(lc); lc++) { > - tst_count = 0; > - > - for (i = 0; i < TST_TOTAL; i++) { > - TEST(fstatfs(*tcases[i].fd, &stats)); > - > - if (TEST_RETURN == -1) { > - tst_resm(TFAIL | TTERRNO, "%s", tcases[i].msg); > - } else { > - tst_resm(TPASS, "%s - f_type=%lx", > - tcases[i].msg, stats.f_type); > - } > - } > - } > - > - cleanup(); > - tst_exit(); > + TST_EXP_PASS(fstatfs(*tc->fd, &buf), "%s", tc->msg); > } > > static void setup(void) > { > int pipe[2]; > > - tst_sig(NOFORK, DEF_HANDLER, cleanup); > - > - TEST_PAUSE; > - > - tst_tmpdir(); > - > - file_fd = SAFE_OPEN(cleanup, "test_file", O_RDWR | O_CREAT, 0700); > - > - SAFE_PIPE(cleanup, pipe); > + file_fd = SAFE_OPEN(TEMP_FILE, O_RDWR | O_CREAT, 0700); > + SAFE_PIPE(pipe); > pipe_fd = pipe[0]; > - SAFE_CLOSE(cleanup, pipe[1]); > + SAFE_CLOSE(pipe[1]); > } > > static void cleanup(void) > { > - if (file_fd > 0 && close(file_fd)) > - tst_resm(TWARN | TERRNO, "close(file_fd) failed"); > - > - if (pipe_fd > 0 && close(pipe_fd)) > - tst_resm(TWARN | TERRNO, "close(pipe_fd) failed"); > - > - tst_rmdir(); > + if (file_fd > 0) > + SAFE_CLOSE(file_fd); > + if (pipe_fd > 0) > + SAFE_CLOSE(pipe_fd); > } > + > +static struct tst_test test = { > + .setup = setup, > + .cleanup = cleanup, > + .tcnt = ARRAY_SIZE(tcases), > + .test = run, > + .mount_device = 1, > + .mntpoint = MNT_POINT, > + .all_filesystems = 1, > + .needs_root = 1 > +}; > -- > 2.38.1
diff --git a/testcases/kernel/syscalls/fstatfs/fstatfs01.c b/testcases/kernel/syscalls/fstatfs/fstatfs01.c index b06652dd5..6b14fd0d6 100644 --- a/testcases/kernel/syscalls/fstatfs/fstatfs01.c +++ b/testcases/kernel/syscalls/fstatfs/fstatfs01.c @@ -1,57 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* - * DETAILED DESCRIPTION - * This is a Phase I test for the fstatfs(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fstatfs(2). + * Copyright (c) 2022 SUSE LLC Avinesh Kumar <avinesh.kumar@suse.com> */ -#include <sys/types.h> -#include <fcntl.h> -#include <sys/statfs.h> -#include <errno.h> -#include <signal.h> -#include <string.h> +/*\ + * [Description] + * + * Verify that fstatfs() syscall executes successfully for all + * available filesystems. + */ -#include "test.h" -#include "safe_macros.h" -static void setup(void); -static void cleanup(void); +#include <stdio.h> +#include "tst_test.h" -char *TCID = "fstatfs01"; +#define MNT_POINT "mntpoint" +#define TEMP_FILE MNT_POINT"/test_file" static int file_fd; static int pipe_fd; @@ -59,65 +24,44 @@ static int pipe_fd; static struct tcase { int *fd; const char *msg; -} tcases[2] = { +} tcases[] = { {&file_fd, "fstatfs() on a file"}, {&pipe_fd, "fstatfs() on a pipe"}, }; -int TST_TOTAL = ARRAY_SIZE(tcases); - -int main(int ac, char **av) +static void run(unsigned int i) { - int lc, i; - struct statfs stats; + struct tcase *tc = &tcases[i]; + struct statfs buf; - tst_parse_opts(ac, av, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) { - TEST(fstatfs(*tcases[i].fd, &stats)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL | TTERRNO, "%s", tcases[i].msg); - } else { - tst_resm(TPASS, "%s - f_type=%lx", - tcases[i].msg, stats.f_type); - } - } - } - - cleanup(); - tst_exit(); + TST_EXP_PASS(fstatfs(*tc->fd, &buf), "%s", tc->msg); } static void setup(void) { int pipe[2]; - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - TEST_PAUSE; - - tst_tmpdir(); - - file_fd = SAFE_OPEN(cleanup, "test_file", O_RDWR | O_CREAT, 0700); - - SAFE_PIPE(cleanup, pipe); + file_fd = SAFE_OPEN(TEMP_FILE, O_RDWR | O_CREAT, 0700); + SAFE_PIPE(pipe); pipe_fd = pipe[0]; - SAFE_CLOSE(cleanup, pipe[1]); + SAFE_CLOSE(pipe[1]); } static void cleanup(void) { - if (file_fd > 0 && close(file_fd)) - tst_resm(TWARN | TERRNO, "close(file_fd) failed"); - - if (pipe_fd > 0 && close(pipe_fd)) - tst_resm(TWARN | TERRNO, "close(pipe_fd) failed"); - - tst_rmdir(); + if (file_fd > 0) + SAFE_CLOSE(file_fd); + if (pipe_fd > 0) + SAFE_CLOSE(pipe_fd); } + +static struct tst_test test = { + .setup = setup, + .cleanup = cleanup, + .tcnt = ARRAY_SIZE(tcases), + .test = run, + .mount_device = 1, + .mntpoint = MNT_POINT, + .all_filesystems = 1, + .needs_root = 1 +};
Signed-off-by: Avinesh Kumar <akumar@suse.de> --- testcases/kernel/syscalls/fstatfs/fstatfs01.c | 126 +++++------------- 1 file changed, 35 insertions(+), 91 deletions(-)