mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-03 15:55:53 +00:00
zdtm: Update futex-rl test for thread leader
Don't forget to test thread leader as well. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
committed by
Pavel Emelyanov
parent
300d2f2626
commit
71a65a96f5
@@ -62,6 +62,8 @@ out:
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
struct robust_list_head *head_orig = NULL, *head_new = NULL;
|
||||||
|
size_t len_orig = 0, len_new = 0;
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
struct args *args;
|
struct args *args;
|
||||||
|
|
||||||
@@ -73,6 +75,12 @@ int main(int argc, char **argv)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_msg("Obtaining old RL for thread-leader\n");
|
||||||
|
if (syscall(__NR_get_robust_list, __gettid(), &head_orig, &len_orig)) {
|
||||||
|
fail("__NR_get_robust_list failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
task_waiter_init(&args->waiter);
|
task_waiter_init(&args->waiter);
|
||||||
args->result = 0;
|
args->result = 0;
|
||||||
|
|
||||||
@@ -95,6 +103,17 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
task_waiter_complete(&args->waiter, 2);
|
task_waiter_complete(&args->waiter, 2);
|
||||||
|
|
||||||
|
test_msg("Obtaining new RL for thread-leader\n");
|
||||||
|
if (syscall(__NR_get_robust_list, __gettid(), &head_new, &len_new)) {
|
||||||
|
fail("__NR_get_robust_list failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (head_orig != head_new || len_orig != len_new) {
|
||||||
|
fail("comparision failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
pthread_join(thread, NULL);
|
pthread_join(thread, NULL);
|
||||||
if (args->result)
|
if (args->result)
|
||||||
fail();
|
fail();
|
||||||
|
Reference in New Issue
Block a user