diff options
author | QI Fuli <qi.fuli@fujitsu.com> | 2021-03-27 19:32:21 +0900 |
---|---|---|
committer | Li Wang <liwang@redhat.com> | 2021-03-29 12:27:33 +0800 |
commit | 2b64c727f52c358f64eff53bea860381c8a62714 (patch) | |
tree | c464a2ce3e6fdb2d1bf34d92a53e94f357e5213f /libs | |
parent | 0f35fb96858d6d70a22efb90d4887a1900f0678a (diff) | |
download | ltp-2b64c727f52c358f64eff53bea860381c8a62714.tar.gz |
libs/libltpswap: Add libs/libltpswap by using the new API
Rename libs/libltpswapon to libs/libltpswap.
Signed-off-by: QI Fuli <qi.fuli@fujitsu.com>
Signed-off-by: Li Wang <liwang@redhat.com>
Reviewed-by: Li Wang <liwang@redhat.com>
Diffstat (limited to 'libs')
-rw-r--r-- | libs/libltpswap/Makefile (renamed from libs/libltpswapon/Makefile) | 2 | ||||
-rw-r--r-- | libs/libltpswap/libswap.c | 65 | ||||
-rw-r--r-- | libs/libltpswapon/libswapon.c | 90 |
3 files changed, 66 insertions, 91 deletions
diff --git a/libs/libltpswapon/Makefile b/libs/libltpswap/Makefile index 8f738338b..d8e692d17 100644 --- a/libs/libltpswapon/Makefile +++ b/libs/libltpswap/Makefile @@ -6,7 +6,7 @@ top_srcdir ?= ../.. include $(top_srcdir)/include/mk/env_pre.mk -INTERNAL_LIB := libltpswapon.a +INTERNAL_LIB := libltpswap.a include $(top_srcdir)/include/mk/lib.mk include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/libs/libltpswap/libswap.c b/libs/libltpswap/libswap.c new file mode 100644 index 000000000..796ac0334 --- /dev/null +++ b/libs/libltpswap/libswap.c @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. + * Author: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com> + */ + +#include <errno.h> + +#define TST_NO_DEFAULT_MAIN + +#include "lapi/syscalls.h" +#include "tst_test.h" +#include "libswap.h" + +/* + * Make a swap file + */ +int make_swapfile(const char *swapfile, int safe) +{ + if (!tst_fs_has_free(".", sysconf(_SC_PAGESIZE) * 10, TST_BYTES)) + tst_brk(TBROK, "Insufficient disk space to create swap file"); + + /* create file */ + if (tst_fill_file(swapfile, 0, sysconf(_SC_PAGESIZE), 10) != 0) + tst_brk(TBROK, "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(argv, "/dev/null", "/dev/null", safe); +} + +/* + * Check swapon/swapoff support status of filesystems or files + * we are testing on. + */ +void is_swap_supported(const char *filename) +{ + int fibmap = tst_fibmap(filename); + long fs_type = tst_fs_type(filename); + const char *fstype = tst_fs_type_name(fs_type); + + int ret = make_swapfile(filename, 1); + if (ret != 0) { + if (fibmap == 1) + tst_brk(TCONF, "mkswap on %s not supported", fstype); + else + tst_brk(TFAIL, "mkswap on %s failed", fstype); + } + + TEST(tst_syscall(__NR_swapon, filename, 0)); + if (TST_RET == -1) { + if (fibmap == 1 && errno == EINVAL) + tst_brk(TCONF, "Swapfile on %s not implemented", fstype); + else + tst_brk(TFAIL | TTERRNO, "swapon on %s failed", fstype); + } + + TEST(tst_syscall(__NR_swapoff, filename, 0)); + if (TST_RET == -1) + tst_brk(TFAIL | TTERRNO, "swapoff on %s failed", fstype); +} diff --git a/libs/libltpswapon/libswapon.c b/libs/libltpswapon/libswapon.c deleted file mode 100644 index a4f0bef28..000000000 --- a/libs/libltpswapon/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 <stanislav.kholmanskikh@oracle.com> - * - */ - -#include <errno.h> -#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 | TTERRNO, cleanup, - "swapoff on %s failed", fstype); - } -} |