From: Anatoly Burakov Date: Fri, 12 Jul 2019 16:02:05 +0000 (+0100) Subject: test: add procfs error message for multi-process launch X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b8d5e544e73e3dca81ff8a35f22e148cf0a032c3;p=dpdk.git test: add procfs error message for multi-process launch Currently, if there is no procfs mounted, test application will fail to run any multiprocess-related autotests (EAL flags etc.) without a clear explanation as to why this happens. Add a check specifically for that condition, as well as add a general stringified error message to rte_panic. Signed-off-by: Anatoly Burakov --- diff --git a/app/test/process.h b/app/test/process.h index 513bc9420d..128ce41219 100644 --- a/app/test/process.h +++ b/app/test/process.h @@ -5,12 +5,16 @@ #ifndef _PROCESS_H_ #define _PROCESS_H_ +#include /* errno */ #include /* PATH_MAX */ #include /* basename et al */ #include /* NULL */ +#include /* strerror */ #include /* readlink */ #include +#include /* strlcpy */ + #ifdef RTE_EXEC_ENV_FREEBSD #define self "curproc" #define exe "file" @@ -67,8 +71,15 @@ process_dup(const char *const argv[], int numargs, const char *env_value) /* set the environment variable */ if (setenv(RECURSIVE_ENV_VAR, env_value, 1) != 0) rte_panic("Cannot export environment variable\n"); - if (execv("/proc/" self "/" exe, argv_cpy) < 0) - rte_panic("Cannot exec\n"); + + strlcpy(path, "/proc/" self "/" exe, sizeof(path)); + if (execv(path, argv_cpy) < 0) { + if (errno == ENOENT) { + printf("Could not find '%s', is procfs mounted?\n", + path); + } + rte_panic("Cannot exec: %s\n", strerror(errno)); + } } /* parent process does a wait */ #ifdef RTE_LIBRTE_PDUMP