Commit 1d0e51b2 authored by Muhammad Usama Anjum's avatar Muhammad Usama Anjum Committed by Kees Cook

selftests/exec: recursion-depth: conform test to TAP format output

Conform the layout, informational and status messages to TAP. No
functional change is intended other than the layout of output messages.
While at it, do minor cleanups like move the declarations of the variables
on top of the function.
Signed-off-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
Link: https://lore.kernel.org/r/20240304155928.1818928-3-usama.anjum@collabora.comSigned-off-by: default avatarKees Cook <keescook@chromium.org>
parent c4095067
......@@ -23,45 +23,44 @@
#include <fcntl.h>
#include <sys/mount.h>
#include <unistd.h>
#include "../kselftest.h"
int main(void)
{
int fd, rv;
ksft_print_header();
ksft_set_plan(1);
if (unshare(CLONE_NEWNS) == -1) {
if (errno == ENOSYS || errno == EPERM) {
fprintf(stderr, "error: unshare, errno %d\n", errno);
return 4;
ksft_test_result_skip("error: unshare, errno %d\n", errno);
ksft_finished();
}
fprintf(stderr, "error: unshare, errno %d\n", errno);
return 1;
}
if (mount(NULL, "/", NULL, MS_PRIVATE|MS_REC, NULL) == -1) {
fprintf(stderr, "error: mount '/', errno %d\n", errno);
return 1;
ksft_exit_fail_msg("error: unshare, errno %d\n", errno);
}
if (mount(NULL, "/", NULL, MS_PRIVATE | MS_REC, NULL) == -1)
ksft_exit_fail_msg("error: mount '/', errno %d\n", errno);
/* Require "exec" filesystem. */
if (mount(NULL, "/tmp", "ramfs", 0, NULL) == -1) {
fprintf(stderr, "error: mount ramfs, errno %d\n", errno);
return 1;
}
if (mount(NULL, "/tmp", "ramfs", 0, NULL) == -1)
ksft_exit_fail_msg("error: mount ramfs, errno %d\n", errno);
#define FILENAME "/tmp/1"
int fd = creat(FILENAME, 0700);
if (fd == -1) {
fprintf(stderr, "error: creat, errno %d\n", errno);
return 1;
}
fd = creat(FILENAME, 0700);
if (fd == -1)
ksft_exit_fail_msg("error: creat, errno %d\n", errno);
#define S "#!" FILENAME "\n"
if (write(fd, S, strlen(S)) != strlen(S)) {
fprintf(stderr, "error: write, errno %d\n", errno);
return 1;
}
if (write(fd, S, strlen(S)) != strlen(S))
ksft_exit_fail_msg("error: write, errno %d\n", errno);
close(fd);
int rv = execve(FILENAME, NULL, NULL);
if (rv == -1 && errno == ELOOP) {
return 0;
}
fprintf(stderr, "error: execve, rv %d, errno %d\n", rv, errno);
return 1;
rv = execve(FILENAME, NULL, NULL);
ksft_test_result(rv == -1 && errno == ELOOP,
"execve failed as expected (ret %d, errno %d)\n", rv, errno);
ksft_finished();
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment