Commit ae6294f4 authored by Andrew Vagin's avatar Andrew Vagin Committed by Pavel Emelyanov

zdtm: return non-zero code in a error case

Signed-off-by: 's avatarAndrew Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 4e5e1067
...@@ -189,15 +189,18 @@ void test_init(int argc, char **argv) ...@@ -189,15 +189,18 @@ void test_init(int argc, char **argv)
if (futex_get(&sig_received) == SIGCHLD) { if (futex_get(&sig_received) == SIGCHLD) {
int ret; int ret;
waitpid(pid, &ret, 0); if (waitpid(pid, &ret, 0) != pid) {
pr_perror("Unable to wait %d, pid");
exit(1);
}
if (WIFEXITED(ret)) { if (WIFEXITED(ret)) {
pr_perror("Test exited unexpectedly with code %d", WEXITSTATUS(ret)); pr_err("Test exited unexpectedly with code %d\n", WEXITSTATUS(ret));
exit(0); exit(1);
} }
if (WIFSIGNALED(ret)) { if (WIFSIGNALED(ret)) {
pr_perror("Test exited on unexpected signal %d", WTERMSIG(ret)); pr_err("Test exited on unexpected signal %d\n", WTERMSIG(ret));
exit(0); exit(1);
} }
} }
...@@ -321,15 +324,18 @@ void test_init_ns(int argc, char **argv, unsigned long clone_flags, ...@@ -321,15 +324,18 @@ void test_init_ns(int argc, char **argv, unsigned long clone_flags,
if (futex_get(&sig_received) == SIGCHLD) { if (futex_get(&sig_received) == SIGCHLD) {
int ret; int ret;
waitpid(pid, &ret, 0); if (waitpid(pid, &ret, 0) != pid) {
pr_perror("Unable to wait %d", pid);
exit(1);
}
if (WIFEXITED(ret)) { if (WIFEXITED(ret)) {
pr_perror("Test exited unexpectedly with code %d", WEXITSTATUS(ret)); pr_err("Test exited unexpectedly with code %d\n", WEXITSTATUS(ret));
exit(0); exit(1);
} }
if (WIFSIGNALED(ret)) { if (WIFSIGNALED(ret)) {
pr_perror("Test exited on unexpected signal %d", WTERMSIG(ret)); pr_err("Test exited on unexpected signal %d\n", WTERMSIG(ret));
exit(0); exit(1);
} }
} }
......
...@@ -102,6 +102,8 @@ extern int parse_opt_string(char *param, void *arg); ...@@ -102,6 +102,8 @@ extern int parse_opt_string(char *param, void *arg);
extern void setup_outfile(void); extern void setup_outfile(void);
extern int test_log_init(const char *outfile, const char *suffix); extern int test_log_init(const char *outfile, const char *suffix);
extern int zdtm_seccomp; extern int zdtm_seccomp;
#define pr_err(format, arg...) \
test_msg("ERR: %s:%d: " format, __FILE__, __LINE__, ## arg)
#define pr_perror(format, arg...) \ #define pr_perror(format, arg...) \
test_msg("ERR: %s:%d: " format " (errno = %d (%s))\n", \ test_msg("ERR: %s:%d: " format " (errno = %d (%s))\n", \
__FILE__, __LINE__, ## arg, errno, strerror(errno)) __FILE__, __LINE__, ## arg, errno, strerror(errno))
......
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