Skip to content

Commit

Permalink
selftests/mm: run_vmtests: remove sudo and conform to tap
Browse files Browse the repository at this point in the history
Remove sudo as some test running environments may not have sudo available.
Instead skip the test if root privileges aren't available in the test.

[usama.anjum@collabora.com: on-fault-limit: run test without root privileges otherwise skip]
  Link: https://lkml.kernel.org/r/20240201130538.1404897-1-usama.anjum@collabora.com
Link: https://lkml.kernel.org/r/20240125154608.720072-3-usama.anjum@collabora.com
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  • Loading branch information
musamaanjum authored and akpm00 committed Feb 22, 2024
1 parent f2943f3 commit 20a2191
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 20 deletions.
36 changes: 17 additions & 19 deletions tools/testing/selftests/mm/on-fault-limit.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,38 @@
#include <string.h>
#include <sys/time.h>
#include <sys/resource.h>
#include "../kselftest.h"

static int test_limit(void)
static void test_limit(void)
{
int ret = 1;
struct rlimit lims;
void *map;

if (getrlimit(RLIMIT_MEMLOCK, &lims)) {
perror("getrlimit");
return ret;
}
if (getrlimit(RLIMIT_MEMLOCK, &lims))
ksft_exit_fail_msg("getrlimit: %s\n", strerror(errno));

if (mlockall(MCL_ONFAULT | MCL_FUTURE)) {
perror("mlockall");
return ret;
}
if (mlockall(MCL_ONFAULT | MCL_FUTURE))
ksft_exit_fail_msg("mlockall: %s\n", strerror(errno));

map = mmap(NULL, 2 * lims.rlim_max, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0);

ksft_test_result(map == MAP_FAILED, "The map failed respecting mlock limits\n");

if (map != MAP_FAILED)
printf("mmap should have failed, but didn't\n");
else {
ret = 0;
munmap(map, 2 * lims.rlim_max);
}

munlockall();
return ret;
}

int main(int argc, char **argv)
{
int ret = 0;
ksft_print_header();
ksft_set_plan(1);

if (!getuid())
ksft_test_result_skip("The test must be run from a normal user\n");
else
test_limit();

ret += test_limit();
return ret;
ksft_finished();
}
7 changes: 6 additions & 1 deletion tools/testing/selftests/mm/run_vmtests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,12 @@ echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages

CATEGORY="compaction" run_test ./compaction_test

CATEGORY="mlock" run_test sudo -u nobody ./on-fault-limit
if command -v sudo &> /dev/null;
then
CATEGORY="mlock" run_test sudo -u nobody ./on-fault-limit
else
echo "# SKIP ./on-fault-limit"
fi

CATEGORY="mmap" run_test ./map_populate

Expand Down

0 comments on commit 20a2191

Please sign in to comment.