Commit 410345a9 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

zdtm: add ability to create an external tasks

It will be used for checking tcp connections, external unix sockets, etc
Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent c238e99b
......@@ -231,10 +231,18 @@ EOF
diff_fds $ddump/dump.fd $ddump/dump.fd.after || return 1
killall -CONT $tname
else
while :; do
killall -9 $tname &> /dev/null || break
echo Waiting...
sleep 0.1
# Wait while tasks are dying, otherwise PIDs would be busy.
for i in $ddump/core-*.img; do
local pid
[ -n "$PIDNS" ] && break;
pid=`expr "$i" : '.*/core-\([0-9]*\).img'`
while :; do
kill -0 $pid &> /dev/null || break;
echo Waiting the process $pid
sleep 0.1
done
done
echo Restore $PID
......
......@@ -89,10 +89,15 @@ static void redir_stdfds()
close(nullfd);
}
void test_init(int argc, char **argv)
void test_ext_init(int argc, char **argv)
{
extern void parseargs(int, char **);
parseargs(argc, argv);
if (test_log_init(outfile, ".external"))
exit(1);
}
void test_init(int argc, char **argv)
{
pid_t pid;
static FILE *pidf;
char *val;
......
......@@ -4,6 +4,7 @@
#include <sys/types.h>
/* set up test */
extern void test_ext_init(int argc, char **argv);
extern void test_init(int argc, char **argv);
extern void test_init_ns(int argc, char **argv, unsigned long clone_flags, int (*fn)(int , char **));
......@@ -62,6 +63,7 @@ extern void __push_opt(struct long_opt *opt);
#define __param_check(name, p, type) \
static inline type *__check_##name(void) { return(p); }
extern void parseargs(int, char **);
extern int parse_opt_bool(char *param, void *arg);
#define param_check_bool(name, p) __param_check(name, p, int)
extern int parse_opt_int(char *param, void *arg);
......
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