Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4d75377 authored by Shuah Khan (Samsung OSG)'s avatar Shuah Khan (Samsung OSG)
Browse files

selftests: vm: return Kselftest Skip code for skipped tests



When vm test is skipped because of unmet dependencies and/or unsupported
configuration, it exits with error which is treated as a fail by the
Kselftest framework. This leads to false negative result even when the
test could not be run.

Change it to return kselftest skip code when a test gets skipped to
clearly report that the test could not be run.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: default avatarShuah Khan (Samsung OSG) <shuah@kernel.org>
Acked-by: default avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: default avatarShuah Khan (Samsung OSG) <shuah@kernel.org>
parent 68581446
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
#include <unistd.h>
#include <string.h>

#include "../kselftest.h"

#define MAP_SIZE 1048576

struct map_list {
@@ -169,7 +171,7 @@ int main(int argc, char **argv)
		printf("Either the sysctl compact_unevictable_allowed is not\n"
		       "set to 1 or couldn't read the proc file.\n"
		       "Skipping the test\n");
		return 0;
		return KSFT_SKIP;
	}

	lim.rlim_cur = RLIM_INFINITY;
+7 −5
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@
#include <stdbool.h>
#include "mlock2.h"

#include "../kselftest.h"

struct vm_boundaries {
	unsigned long start;
	unsigned long end;
@@ -303,7 +305,7 @@ static int test_mlock_lock()
	if (mlock2_(map, 2 * page_size, 0)) {
		if (errno == ENOSYS) {
			printf("Cannot call new mlock family, skipping test\n");
			_exit(0);
			_exit(KSFT_SKIP);
		}
		perror("mlock2(0)");
		goto unmap;
@@ -412,7 +414,7 @@ static int test_mlock_onfault()
	if (mlock2_(map, 2 * page_size, MLOCK_ONFAULT)) {
		if (errno == ENOSYS) {
			printf("Cannot call new mlock family, skipping test\n");
			_exit(0);
			_exit(KSFT_SKIP);
		}
		perror("mlock2(MLOCK_ONFAULT)");
		goto unmap;
@@ -425,7 +427,7 @@ static int test_mlock_onfault()
	if (munlock(map, 2 * page_size)) {
		if (errno == ENOSYS) {
			printf("Cannot call new mlock family, skipping test\n");
			_exit(0);
			_exit(KSFT_SKIP);
		}
		perror("munlock()");
		goto unmap;
@@ -457,7 +459,7 @@ static int test_lock_onfault_of_present()
	if (mlock2_(map, 2 * page_size, MLOCK_ONFAULT)) {
		if (errno == ENOSYS) {
			printf("Cannot call new mlock family, skipping test\n");
			_exit(0);
			_exit(KSFT_SKIP);
		}
		perror("mlock2(MLOCK_ONFAULT)");
		goto unmap;
@@ -583,7 +585,7 @@ static int test_vma_management(bool call_mlock)
	if (call_mlock && mlock2_(map, 3 * page_size, MLOCK_ONFAULT)) {
		if (errno == ENOSYS) {
			printf("Cannot call new mlock family, skipping test\n");
			_exit(0);
			_exit(KSFT_SKIP);
		}
		perror("mlock(ONFAULT)\n");
		goto out;
+4 −1
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
# SPDX-License-Identifier: GPL-2.0
#please run as root

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

mnt=./huge
exitcode=0

@@ -36,7 +39,7 @@ if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
		echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
		if [ $? -ne 0 ]; then
			echo "Please run this test as root"
			exit 1
			exit $ksft_skip
		fi
		while read name size unit; do
			if [ "$name" = "HugePages_Free:" ]; then
+3 −1
Original line number Diff line number Diff line
@@ -69,6 +69,8 @@
#include <setjmp.h>
#include <stdbool.h>

#include "../kselftest.h"

#ifdef __NR_userfaultfd

static unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size;
@@ -1322,7 +1324,7 @@ int main(int argc, char **argv)
int main(void)
{
	printf("skip: Skipping userfaultfd test (missing __NR_userfaultfd)\n");
	return 0;
	return KSFT_SKIP;
}

#endif /* __NR_userfaultfd */