Lines Matching refs:self
639 memset(&self->prog, 0, sizeof(self->prog)); in FIXTURE_SETUP()
640 self->prog.filter = malloc(sizeof(filter)); in FIXTURE_SETUP()
641 ASSERT_NE(NULL, self->prog.filter); in FIXTURE_SETUP()
642 memcpy(self->prog.filter, filter, sizeof(filter)); in FIXTURE_SETUP()
643 self->prog.len = (unsigned short)ARRAY_SIZE(filter); in FIXTURE_SETUP()
648 if (self->prog.filter) in FIXTURE_TEARDOWN()
649 free(self->prog.filter); in FIXTURE_TEARDOWN()
659 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog); in TEST_F_SIGNAL()
674 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog); in TEST_F_SIGNAL()
710 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog); in TEST_F()
778 memset(self, 0, sizeof(*self)); in FIXTURE_SETUP()
780 self->_x.filter = malloc(sizeof(_x##_insns)); \ in FIXTURE_SETUP()
781 ASSERT_NE(NULL, self->_x.filter); \ in FIXTURE_SETUP()
782 memcpy(self->_x.filter, &_x##_insns, sizeof(_x##_insns)); \ in FIXTURE_SETUP()
783 self->_x.len = (unsigned short)ARRAY_SIZE(_x##_insns) in FIXTURE_SETUP()
793 #define FILTER_FREE(_x) if (self->_x.filter) free(self->_x.filter) in FIXTURE_TEARDOWN()
810 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F()
812 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F()
814 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F()
816 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trap); in TEST_F()
818 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->kill); in TEST_F()
834 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F_SIGNAL()
836 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F_SIGNAL()
838 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F_SIGNAL()
840 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trap); in TEST_F_SIGNAL()
842 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->kill); in TEST_F_SIGNAL()
861 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F_SIGNAL()
863 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->kill); in TEST_F_SIGNAL()
865 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F_SIGNAL()
867 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F_SIGNAL()
869 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trap); in TEST_F_SIGNAL()
886 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F_SIGNAL()
888 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F_SIGNAL()
890 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F_SIGNAL()
892 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trap); in TEST_F_SIGNAL()
909 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F_SIGNAL()
911 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trap); in TEST_F_SIGNAL()
913 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F_SIGNAL()
915 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F_SIGNAL()
932 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F()
934 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F()
936 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F()
952 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->error); in TEST_F()
954 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F()
956 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F()
972 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F()
974 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F()
991 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->trace); in TEST_F()
993 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->allow); in TEST_F()
1168 self->poked = 0; in FIXTURE_SETUP()
1169 memset(&self->prog, 0, sizeof(self->prog)); in FIXTURE_SETUP()
1170 self->prog.filter = malloc(sizeof(filter)); in FIXTURE_SETUP()
1171 ASSERT_NE(NULL, self->prog.filter); in FIXTURE_SETUP()
1172 memcpy(self->prog.filter, filter, sizeof(filter)); in FIXTURE_SETUP()
1173 self->prog.len = (unsigned short)ARRAY_SIZE(filter); in FIXTURE_SETUP()
1176 self->tracer_args.poke_addr = (unsigned long)&self->poked; in FIXTURE_SETUP()
1179 self->tracer = setup_trace_fixture(_metadata, tracer_poke, in FIXTURE_SETUP()
1180 &self->tracer_args); in FIXTURE_SETUP()
1185 teardown_trace_fixture(_metadata, self->tracer); in FIXTURE_TEARDOWN()
1186 if (self->prog.filter) in FIXTURE_TEARDOWN()
1187 free(self->prog.filter); in FIXTURE_TEARDOWN()
1197 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog, 0, 0); in TEST_F()
1200 EXPECT_EQ(0, self->poked); in TEST_F()
1203 EXPECT_EQ(0x1001, self->poked); in TEST_F()
1213 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog, 0, 0); in TEST_F()
1216 EXPECT_EQ(0, self->poked); in TEST_F()
1218 EXPECT_EQ(0, self->poked); in TEST_F()
1375 memset(&self->prog, 0, sizeof(self->prog)); in FIXTURE_SETUP()
1376 self->prog.filter = malloc(sizeof(filter)); in FIXTURE_SETUP()
1377 ASSERT_NE(NULL, self->prog.filter); in FIXTURE_SETUP()
1378 memcpy(self->prog.filter, filter, sizeof(filter)); in FIXTURE_SETUP()
1379 self->prog.len = (unsigned short)ARRAY_SIZE(filter); in FIXTURE_SETUP()
1382 self->mytid = syscall(__NR_gettid); in FIXTURE_SETUP()
1383 ASSERT_GT(self->mytid, 0); in FIXTURE_SETUP()
1384 ASSERT_NE(self->mytid, 1) { in FIXTURE_SETUP()
1388 self->mypid = getpid(); in FIXTURE_SETUP()
1389 ASSERT_GT(self->mypid, 0); in FIXTURE_SETUP()
1390 ASSERT_EQ(self->mytid, self->mypid); in FIXTURE_SETUP()
1392 self->parent = getppid(); in FIXTURE_SETUP()
1393 ASSERT_GT(self->parent, 0); in FIXTURE_SETUP()
1394 ASSERT_NE(self->parent, self->mypid); in FIXTURE_SETUP()
1397 self->tracer = setup_trace_fixture(_metadata, tracer_syscall, NULL); in FIXTURE_SETUP()
1402 teardown_trace_fixture(_metadata, self->tracer); in FIXTURE_TEARDOWN()
1403 if (self->prog.filter) in FIXTURE_TEARDOWN()
1404 free(self->prog.filter); in FIXTURE_TEARDOWN()
1414 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog, 0, 0); in TEST_F()
1418 EXPECT_EQ(self->parent, syscall(__NR_getppid)); in TEST_F()
1419 EXPECT_NE(self->mypid, syscall(__NR_getppid)); in TEST_F()
1429 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog, 0, 0); in TEST_F()
1433 EXPECT_EQ(self->parent, syscall(__NR_getpid)); in TEST_F()
1434 EXPECT_NE(self->mypid, syscall(__NR_getpid)); in TEST_F()
1444 ret = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &self->prog, 0, 0); in TEST_F()
1449 EXPECT_NE(self->mytid, syscall(__NR_gettid)); in TEST_F()
1640 memset(&self->root_prog, 0, sizeof(self->root_prog)); in FIXTURE_SETUP()
1641 memset(&self->apply_prog, 0, sizeof(self->apply_prog)); in FIXTURE_SETUP()
1642 memset(&self->sibling, 0, sizeof(self->sibling)); in FIXTURE_SETUP()
1643 self->root_prog.filter = malloc(sizeof(root_filter)); in FIXTURE_SETUP()
1644 ASSERT_NE(NULL, self->root_prog.filter); in FIXTURE_SETUP()
1645 memcpy(self->root_prog.filter, &root_filter, sizeof(root_filter)); in FIXTURE_SETUP()
1646 self->root_prog.len = (unsigned short)ARRAY_SIZE(root_filter); in FIXTURE_SETUP()
1648 self->apply_prog.filter = malloc(sizeof(apply_filter)); in FIXTURE_SETUP()
1649 ASSERT_NE(NULL, self->apply_prog.filter); in FIXTURE_SETUP()
1650 memcpy(self->apply_prog.filter, &apply_filter, sizeof(apply_filter)); in FIXTURE_SETUP()
1651 self->apply_prog.len = (unsigned short)ARRAY_SIZE(apply_filter); in FIXTURE_SETUP()
1653 self->sibling_count = 0; in FIXTURE_SETUP()
1654 pthread_mutex_init(&self->mutex, NULL); in FIXTURE_SETUP()
1655 pthread_cond_init(&self->cond, NULL); in FIXTURE_SETUP()
1656 sem_init(&self->started, 0, 0); in FIXTURE_SETUP()
1657 self->sibling[0].tid = 0; in FIXTURE_SETUP()
1658 self->sibling[0].cond = &self->cond; in FIXTURE_SETUP()
1659 self->sibling[0].started = &self->started; in FIXTURE_SETUP()
1660 self->sibling[0].mutex = &self->mutex; in FIXTURE_SETUP()
1661 self->sibling[0].diverge = 0; in FIXTURE_SETUP()
1662 self->sibling[0].num_waits = 1; in FIXTURE_SETUP()
1663 self->sibling[0].prog = &self->root_prog; in FIXTURE_SETUP()
1664 self->sibling[0].metadata = _metadata; in FIXTURE_SETUP()
1665 self->sibling[1].tid = 0; in FIXTURE_SETUP()
1666 self->sibling[1].cond = &self->cond; in FIXTURE_SETUP()
1667 self->sibling[1].started = &self->started; in FIXTURE_SETUP()
1668 self->sibling[1].mutex = &self->mutex; in FIXTURE_SETUP()
1669 self->sibling[1].diverge = 0; in FIXTURE_SETUP()
1670 self->sibling[1].prog = &self->root_prog; in FIXTURE_SETUP()
1671 self->sibling[1].num_waits = 1; in FIXTURE_SETUP()
1672 self->sibling[1].metadata = _metadata; in FIXTURE_SETUP()
1679 if (self->root_prog.filter) in FIXTURE_TEARDOWN()
1680 free(self->root_prog.filter); in FIXTURE_TEARDOWN()
1681 if (self->apply_prog.filter) in FIXTURE_TEARDOWN()
1682 free(self->apply_prog.filter); in FIXTURE_TEARDOWN()
1684 for ( ; sib < self->sibling_count; ++sib) { in FIXTURE_TEARDOWN()
1685 struct tsync_sibling *s = &self->sibling[sib]; in FIXTURE_TEARDOWN()
1695 pthread_mutex_destroy(&self->mutex); in FIXTURE_TEARDOWN()
1696 pthread_cond_destroy(&self->cond); in FIXTURE_TEARDOWN()
1697 sem_destroy(&self->started); in FIXTURE_TEARDOWN()
1766 self->sibling[0].diverge = 1; in TEST_F()
1767 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1768 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1770 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1771 sem_wait(&self->started); in TEST_F()
1772 self->sibling_count++; in TEST_F()
1776 pthread_mutex_lock(&self->mutex); in TEST_F()
1777 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1780 pthread_mutex_unlock(&self->mutex); in TEST_F()
1783 pthread_join(self->sibling[0].tid, &status); in TEST_F()
1785 pthread_join(self->sibling[1].tid, &status); in TEST_F()
1798 ret = seccomp(SECCOMP_SET_MODE_FILTER, 0, &self->root_prog); in TEST_F()
1805 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1806 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1808 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1809 sem_wait(&self->started); in TEST_F()
1810 self->sibling_count++; in TEST_F()
1814 &self->apply_prog); in TEST_F()
1819 pthread_mutex_lock(&self->mutex); in TEST_F()
1820 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1823 pthread_mutex_unlock(&self->mutex); in TEST_F()
1825 pthread_join(self->sibling[0].tid, &status); in TEST_F()
1827 pthread_join(self->sibling[1].tid, &status); in TEST_F()
1836 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1837 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1838 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1839 sem_wait(&self->started); in TEST_F()
1840 self->sibling_count++; in TEST_F()
1844 pthread_mutex_lock(&self->mutex); in TEST_F()
1845 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1848 pthread_mutex_unlock(&self->mutex); in TEST_F()
1851 pthread_join(self->sibling[0].tid, &status); in TEST_F()
1853 pthread_join(self->sibling[1].tid, &status); in TEST_F()
1863 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1864 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1865 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1866 sem_wait(&self->started); in TEST_F()
1867 self->sibling_count++; in TEST_F()
1875 &self->apply_prog); in TEST_F()
1884 pthread_mutex_lock(&self->mutex); in TEST_F()
1885 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1888 pthread_mutex_unlock(&self->mutex); in TEST_F()
1891 pthread_join(self->sibling[0].tid, &status); in TEST_F()
1893 pthread_join(self->sibling[1].tid, &status); in TEST_F()
1906 ret = seccomp(SECCOMP_SET_MODE_FILTER, 0, &self->root_prog); in TEST_F()
1913 self->sibling[0].diverge = 1; in TEST_F()
1914 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1915 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1917 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1918 sem_wait(&self->started); in TEST_F()
1919 self->sibling_count++; in TEST_F()
1923 &self->apply_prog); in TEST_F()
1924 ASSERT_EQ(self->sibling[0].system_tid, ret) { in TEST_F()
1929 pthread_mutex_lock(&self->mutex); in TEST_F()
1930 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1933 pthread_mutex_unlock(&self->mutex); in TEST_F()
1936 pthread_join(self->sibling[0].tid, &status); in TEST_F()
1938 pthread_join(self->sibling[1].tid, &status); in TEST_F()
1957 self->sibling[0].diverge = 1; in TEST_F()
1958 tsync_start_sibling(&self->sibling[0]); in TEST_F()
1959 tsync_start_sibling(&self->sibling[1]); in TEST_F()
1961 while (self->sibling_count < TSYNC_SIBLINGS) { in TEST_F()
1962 sem_wait(&self->started); in TEST_F()
1963 self->sibling_count++; in TEST_F()
1966 ret = seccomp(SECCOMP_SET_MODE_FILTER, 0, &self->root_prog); in TEST_F()
1975 &self->apply_prog); in TEST_F()
1976 ASSERT_EQ(ret, self->sibling[0].system_tid) { in TEST_F()
1980 if (ret == self->sibling[0].system_tid) in TEST_F()
1983 pthread_mutex_lock(&self->mutex); in TEST_F()
1988 self->sibling[!sib].num_waits += 1; in TEST_F()
1991 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
1994 pthread_mutex_unlock(&self->mutex); in TEST_F()
1995 pthread_join(self->sibling[sib].tid, &status); in TEST_F()
1998 while (!kill(self->sibling[sib].system_tid, 0)) in TEST_F()
2004 &self->apply_prog); in TEST_F()
2009 pthread_mutex_lock(&self->mutex); in TEST_F()
2014 if (self->sibling[sib].num_waits > 1) in TEST_F()
2015 self->sibling[sib].num_waits = 1; in TEST_F()
2016 ASSERT_EQ(0, pthread_cond_broadcast(&self->cond)) { in TEST_F()
2019 pthread_mutex_unlock(&self->mutex); in TEST_F()
2020 pthread_join(self->sibling[sib].tid, &status); in TEST_F()
2023 while (!kill(self->sibling[sib].system_tid, 0)) in TEST_F()
2027 &self->apply_prog); in TEST_F()