Commit 71a65a96 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Pavel Emelyanov

zdtm: Update futex-rl test for thread leader

Don't forget to test thread leader as well.
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 300d2f26
...@@ -62,6 +62,8 @@ out: ...@@ -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) ...@@ -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) ...@@ -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();
......
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