Lines Matching full:sibling

2542 	struct tsync_sibling sibling[TSYNC_SIBLINGS];  in FIXTURE()  local
2564 memset(&self->sibling, 0, sizeof(self->sibling)); in FIXTURE_SETUP()
2579 self->sibling[0].tid = 0; in FIXTURE_SETUP()
2580 self->sibling[0].cond = &self->cond; in FIXTURE_SETUP()
2581 self->sibling[0].started = &self->started; in FIXTURE_SETUP()
2582 self->sibling[0].mutex = &self->mutex; in FIXTURE_SETUP()
2583 self->sibling[0].diverge = 0; in FIXTURE_SETUP()
2584 self->sibling[0].num_waits = 1; in FIXTURE_SETUP()
2585 self->sibling[0].prog = &self->root_prog; in FIXTURE_SETUP()
2586 self->sibling[0].metadata = _metadata; in FIXTURE_SETUP()
2587 self->sibling[1].tid = 0; in FIXTURE_SETUP()
2588 self->sibling[1].cond = &self->cond; in FIXTURE_SETUP()
2589 self->sibling[1].started = &self->started; in FIXTURE_SETUP()
2590 self->sibling[1].mutex = &self->mutex; in FIXTURE_SETUP()
2591 self->sibling[1].diverge = 0; in FIXTURE_SETUP()
2592 self->sibling[1].prog = &self->root_prog; in FIXTURE_SETUP()
2593 self->sibling[1].num_waits = 1; in FIXTURE_SETUP()
2594 self->sibling[1].metadata = _metadata; in FIXTURE_SETUP()
2607 struct tsync_sibling *s = &self->sibling[sib]; in FIXTURE_TEARDOWN()
2654 void tsync_start_sibling(struct tsync_sibling *sibling) in tsync_start_sibling() argument
2656 pthread_create(&sibling->tid, NULL, tsync_sibling, (void *)sibling); in tsync_start_sibling()
2688 self->sibling[0].diverge = 1; in TEST_F()
2689 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2690 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2704 /* Ensure diverging sibling failed to call prctl. */ in TEST_F()
2705 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2707 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2727 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2728 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2747 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2749 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2758 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2759 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2773 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2775 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2785 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2786 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2813 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2815 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2835 self->sibling[0].diverge = 1; in TEST_F()
2836 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2837 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2846 ASSERT_EQ(self->sibling[0].system_tid, ret) { in TEST_F()
2847 TH_LOG("Did not fail on diverged sibling."); in TEST_F()
2858 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2860 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2880 self->sibling[0].diverge = 1; in TEST_F()
2881 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2882 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2893 TH_LOG("Did not return ESRCH for diverged sibling."); in TEST_F()
2896 TH_LOG("Did not fail on diverged sibling."); in TEST_F()
2907 PTHREAD_JOIN(self->sibling[0].tid, &status); in TEST_F()
2909 PTHREAD_JOIN(self->sibling[1].tid, &status); in TEST_F()
2924 * Sibling 0 will have its own seccomp policy in TEST_F()
2925 * and Sibling 1 will not be under seccomp at in TEST_F()
2926 * all. Sibling 1 will enter seccomp and 0 in TEST_F()
2929 self->sibling[0].diverge = 1; in TEST_F()
2930 tsync_start_sibling(&self->sibling[0]); in TEST_F()
2931 tsync_start_sibling(&self->sibling[1]); in TEST_F()
2948 ASSERT_EQ(ret, self->sibling[0].system_tid) { in TEST_F()
2949 TH_LOG("Did not fail on diverged sibling."); in TEST_F()
2952 if (ret == self->sibling[0].system_tid) in TEST_F()
2960 self->sibling[!sib].num_waits += 1; in TEST_F()
2967 PTHREAD_JOIN(self->sibling[sib].tid, &status); in TEST_F()
2970 while (!kill(self->sibling[sib].system_tid, 0)) in TEST_F()
2972 /* Switch to the remaining sibling */ in TEST_F()
2978 TH_LOG("Expected the remaining sibling to sync"); in TEST_F()
2983 /* If remaining sibling didn't have a chance to wake up during in TEST_F()
2986 if (self->sibling[sib].num_waits > 1) in TEST_F()
2987 self->sibling[sib].num_waits = 1; in TEST_F()
2992 PTHREAD_JOIN(self->sibling[sib].tid, &status); in TEST_F()
2995 while (!kill(self->sibling[sib].system_tid, 0)) in TEST_F()
3690 * Check that a pid in a sibling (i.e. unrelated) namespace shows up as 0, i.e.
3726 /* Create the sibling ns, and sibling in it. */ in TEST()