chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
test: wait for cloned thread to exit
[elogind.git]
/
src
/
test
/
test-util.c
diff --git
a/src/test/test-util.c
b/src/test/test-util.c
index 57fd19b2a31ace097cb90fcbcf2e7cb73c091a5a..93f11eb6e90a2e2e6aca3926a417d81473b87ae4 100644
(file)
--- a/
src/test/test-util.c
+++ b/
src/test/test-util.c
@@
-1336,10
+1336,16
@@
static void test_raw_clone(void) {
pid2 = raw_getpid();
log_info("raw_clone: "PID_FMT" getpid()→"PID_FMT" raw_getpid()→"PID_FMT,
pid, getpid(), pid2);
pid2 = raw_getpid();
log_info("raw_clone: "PID_FMT" getpid()→"PID_FMT" raw_getpid()→"PID_FMT,
pid, getpid(), pid2);
- if (pid == 0)
+ if (pid == 0)
{
assert_se(pid2 != parent);
assert_se(pid2 != parent);
- else
+ _exit(EXIT_SUCCESS);
+ } else {
+ int status;
+
assert_se(pid2 == parent);
assert_se(pid2 == parent);
+ waitpid(pid, &status, __WCLONE);
+ assert_se(WIFEXITED(status) && WEXITSTATUS(status) == EXIT_SUCCESS);
+ }
}
int main(int argc, char *argv[]) {
}
int main(int argc, char *argv[]) {