summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/ltp/ltp/libswapon.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/ltp/ltp/libswapon.patch')
-rw-r--r--meta/recipes-extended/ltp/ltp/libswapon.patch368
1 files changed, 368 insertions, 0 deletions
diff --git a/meta/recipes-extended/ltp/ltp/libswapon.patch b/meta/recipes-extended/ltp/ltp/libswapon.patch
new file mode 100644
index 0000000000..07b0dcefcf
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/libswapon.patch
@@ -0,0 +1,368 @@
+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 <richard.purdie@linuxfoundation.org>
++
++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 <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 | 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 <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 | 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 <stanislav.kholmanskikh@oracle.com>
+- *
+- */
+-
+-/*
+- * 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 <stdlib.h>
+ #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 <stanislav.kholmanskikh@oracle.com>
++ *
++ */
++
++/*
++ * 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__ */