// SPDX-License-Identifier: GPL-2.0-only /* Test that empty argvs are swapped out for a single empty string. */ #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h>
#include"../kselftest.h"
#define FORK(exec) \ do { \
pid = fork(); \ if (pid == 0) { \ /* Child */ \
exec; /* Some kind of exec */ \
perror("# "#exec); \ return 1; \
} \
check_result(pid, #exec); \
} while (0)
void check_result(pid_t pid, constchar *msg)
{ int wstatus;
if (pid == (pid_t)-1) {
perror("# fork");
ksft_test_result_fail("fork failed: %s\n", msg); return;
} if (waitpid(pid, &wstatus, 0) < 0) {
perror("# waitpid");
ksft_test_result_fail("waitpid failed: %s\n", msg); return;
} if (!WIFEXITED(wstatus)) {
ksft_test_result_fail("child did not exit: %s\n", msg); return;
} if (WEXITSTATUS(wstatus) != 0) {
ksft_test_result_fail("non-zero exit: %s\n", msg); return;
}
ksft_test_result_pass("%s\n", msg);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.