Index: git/libs/libltpswapon/Makefile =================================================================== --- /dev/null +++ git/libs/libltpswapon/Makefile @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Copyright (C) Richard Purdie + +top_srcdir ?= ../.. + +include $(top_srcdir)/include/mk/env_pre.mk + +INTERNAL_LIB := libltpswapon.a + +include $(top_srcdir)/include/mk/lib.mk +include $(top_srcdir)/include/mk/generic_leaf_target.mk Index: git/libs/libltpswapon/libswapon.c =================================================================== --- /dev/null +++ git/libs/libltpswapon/libswapon.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * 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. See the + * GNU General Public License for more details. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: Stanislav Kholmanskikh + * + */ + +#include +#include "lapi/syscalls.h" +#include "test.h" +#include "libswapon.h" + +/* + * Make a swap file + */ +int make_swapfile(void (cleanup)(void), const char *swapfile, int safe) +{ + if (!tst_fs_has_free(NULL, ".", sysconf(_SC_PAGESIZE) * 10, + TST_BYTES)) { + tst_brkm(TBROK, cleanup, + "Insufficient disk space to create swap file"); + } + + /* create file */ + if (tst_fill_file(swapfile, 0, + sysconf(_SC_PAGESIZE), 10) != 0) { + tst_brkm(TBROK, cleanup, "Failed to create swapfile"); + } + + /* make the file swapfile */ + const char *argv[2 + 1]; + argv[0] = "mkswap"; + argv[1] = swapfile; + argv[2] = NULL; + + return tst_cmd(cleanup, argv, "/dev/null", "/dev/null", safe); +} + +/* + * Check swapon/swapoff support status of filesystems or files + * we are testing on. + */ +void is_swap_supported(void (cleanup)(void), const char *filename) +{ + int fibmap = tst_fibmap(filename); + long fs_type = tst_fs_type(cleanup, filename); + const char *fstype = tst_fs_type_name(fs_type); + + int ret = make_swapfile(NULL, filename, 1); + if (ret != 0) { + if (fibmap == 1) { + tst_brkm(TCONF, cleanup, + "mkswap on %s not supported", fstype); + } else { + tst_brkm(TFAIL, cleanup, + "mkswap on %s failed", fstype); + } + } + + TEST(ltp_syscall(__NR_swapon, filename, 0)); + if (TEST_RETURN == -1) { + if (fibmap == 1 && errno == EINVAL) { + tst_brkm(TCONF, cleanup, + "Swapfile on %s not implemented", fstype); + } else { + tst_brkm(TFAIL | TERRNO, cleanup, + "swapon on %s failed", fstype); + } + } + + TEST(ltp_syscall(__NR_swapoff, filename, 0)); + if (TEST_RETURN == -1) { + tst_brkm(TFAIL | TERRNO, cleanup, + "swapoff on %s failed", fstype); + } +} Index: git/testcases/kernel/syscalls/swapoff/Makefile =================================================================== --- git.orig/testcases/kernel/syscalls/swapoff/Makefile +++ git/testcases/kernel/syscalls/swapoff/Makefile @@ -3,7 +3,11 @@ top_srcdir ?= ../../../.. +LTPLIBS = ltpswapon + include $(top_srcdir)/include/mk/testcases.mk -include $(abs_srcdir)/./Makefile.inc + +LTPLDLIBS = -lltpswapon + include $(top_srcdir)/include/mk/generic_leaf_target.mk -$(MAKE_TARGETS): %: ../swapon/libswapon.o + Index: git/testcases/kernel/syscalls/swapoff/Makefile.inc =================================================================== --- git.orig/testcases/kernel/syscalls/swapoff/Makefile.inc +++ /dev/null @@ -1,6 +0,0 @@ -LIBDIR += ../swapon/ -LIBSWAPON := $(LIBDIR)/libswapon.o -$(LIBSWAPON): - $(MAKE) -C $(LIBDIR) -CPPFLAGS += -I$(abs_srcdir)/$(LIBDIR) -LDFLAGS += -L$(abs_builddir)/$(LIBDIR) Index: git/testcases/kernel/syscalls/swapon/Makefile =================================================================== --- git.orig/testcases/kernel/syscalls/swapon/Makefile +++ git/testcases/kernel/syscalls/swapon/Makefile @@ -8,10 +8,10 @@ endif top_srcdir ?= ../../../.. +LTPLIBS = ltpswapon + include $(top_srcdir)/include/mk/testcases.mk -FILTER_OUT_MAKE_TARGETS := libswapon +LTPLDLIBS = -lltpswapon include $(top_srcdir)/include/mk/generic_leaf_target.mk - -$(MAKE_TARGETS): %: libswapon.o Index: git/testcases/kernel/syscalls/swapon/libswapon.c =================================================================== --- git.orig/testcases/kernel/syscalls/swapon/libswapon.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * 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. See the - * GNU General Public License for more details. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Author: Stanislav Kholmanskikh - * - */ - -#include -#include "lapi/syscalls.h" -#include "test.h" -#include "libswapon.h" - -/* - * Make a swap file - */ -int make_swapfile(void (cleanup)(void), const char *swapfile, int safe) -{ - if (!tst_fs_has_free(NULL, ".", sysconf(_SC_PAGESIZE) * 10, - TST_BYTES)) { - tst_brkm(TBROK, cleanup, - "Insufficient disk space to create swap file"); - } - - /* create file */ - if (tst_fill_file(swapfile, 0, - sysconf(_SC_PAGESIZE), 10) != 0) { - tst_brkm(TBROK, cleanup, "Failed to create swapfile"); - } - - /* make the file swapfile */ - const char *argv[2 + 1]; - argv[0] = "mkswap"; - argv[1] = swapfile; - argv[2] = NULL; - - return tst_cmd(cleanup, argv, "/dev/null", "/dev/null", safe); -} - -/* - * Check swapon/swapoff support status of filesystems or files - * we are testing on. - */ -void is_swap_supported(void (cleanup)(void), const char *filename) -{ - int fibmap = tst_fibmap(filename); - long fs_type = tst_fs_type(cleanup, filename); - const char *fstype = tst_fs_type_name(fs_type); - - int ret = make_swapfile(NULL, filename, 1); - if (ret != 0) { - if (fibmap == 1) { - tst_brkm(TCONF, cleanup, - "mkswap on %s not supported", fstype); - } else { - tst_brkm(TFAIL, cleanup, - "mkswap on %s failed", fstype); - } - } - - TEST(ltp_syscall(__NR_swapon, filename, 0)); - if (TEST_RETURN == -1) { - if (fibmap == 1 && errno == EINVAL) { - tst_brkm(TCONF, cleanup, - "Swapfile on %s not implemented", fstype); - } else { - tst_brkm(TFAIL | TERRNO, cleanup, - "swapon on %s failed", fstype); - } - } - - TEST(ltp_syscall(__NR_swapoff, filename, 0)); - if (TEST_RETURN == -1) { - tst_brkm(TFAIL | TERRNO, cleanup, - "swapoff on %s failed", fstype); - } -} Index: git/testcases/kernel/syscalls/swapon/libswapon.h =================================================================== --- git.orig/testcases/kernel/syscalls/swapon/libswapon.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * 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. See the - * GNU General Public License for more details. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Author: Stanislav Kholmanskikh - * - */ - -/* - * Contains common content for all swapon tests - */ - -#ifndef __LIBSWAPON_H__ -#define __LIBSWAPON_H__ - -/* - * Make a swap file - */ -int make_swapfile(void (cleanup)(void), const char *swapfile, int safe); - -/* - * Check swapon/swapoff support status of filesystems or files - * we are testing on. - */ -void is_swap_supported(void (cleanup)(void), const char *filename); -#endif /* __LIBSWAPON_H__ */ Index: git/testcases/kernel/syscalls/swapoff/swapoff01.c =================================================================== --- git.orig/testcases/kernel/syscalls/swapoff/swapoff01.c +++ git/testcases/kernel/syscalls/swapoff/swapoff01.c @@ -25,7 +25,7 @@ #include #include "config.h" #include "lapi/syscalls.h" -#include "../swapon/libswapon.h" +#include "libswapon.h" static void setup(void); static void cleanup(void); Index: git/testcases/kernel/syscalls/swapoff/swapoff02.c =================================================================== --- git.orig/testcases/kernel/syscalls/swapoff/swapoff02.c +++ git/testcases/kernel/syscalls/swapoff/swapoff02.c @@ -33,7 +33,7 @@ #include "test.h" #include "lapi/syscalls.h" #include "safe_macros.h" -#include "../swapon/libswapon.h" +#include "libswapon.h" static void setup(void); static void cleanup(void); Index: git/include/libswapon.h =================================================================== --- /dev/null +++ git/include/libswapon.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * 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. See the + * GNU General Public License for more details. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: Stanislav Kholmanskikh + * + */ + +/* + * Contains common content for all swapon tests + */ + +#ifndef __LIBSWAPON_H__ +#define __LIBSWAPON_H__ + +/* + * Make a swap file + */ +int make_swapfile(void (cleanup)(void), const char *swapfile, int safe); + +/* + * Check swapon/swapoff support status of filesystems or files + * we are testing on. + */ +void is_swap_supported(void (cleanup)(void), const char *filename); +#endif /* __LIBSWAPON_H__ */