1*053f45beSAndroid Build Coastguard WorkerFrom 12b079e9c33bef8dfaea8faa68c38fd19562758c Mon Sep 17 00:00:00 2001 2*053f45beSAndroid Build Coastguard WorkerFrom: Steve Muckle <[email protected]> 3*053f45beSAndroid Build Coastguard WorkerDate: Mon, 23 Oct 2017 17:24:47 -0700 4*053f45beSAndroid Build Coastguard WorkerSubject: [PATCH 08/20] seccomp_bpf: disable incompatible tests >= 4.14 5*053f45beSAndroid Build Coastguard Worker 6*053f45beSAndroid Build Coastguard WorkerDisable tests that break from newer seccomp flags and comment on why 7*053f45beSAndroid Build Coastguard Workerthey failed 8*053f45beSAndroid Build Coastguard Worker 9*053f45beSAndroid Build Coastguard WorkerBug: 33027081 10*053f45beSAndroid Build Coastguard WorkerBug: 147676645 11*053f45beSAndroid Build Coastguard WorkerTest: atest vts_linux_kselftest_x86_64:seccomp_seccomp_bpf_x86_64 12*053f45beSAndroid Build Coastguard WorkerSigned-off-by: Edward Liaw <[email protected]> 13*053f45beSAndroid Build Coastguard Worker--- 14*053f45beSAndroid Build Coastguard Worker tools/testing/selftests/seccomp/seccomp_bpf.c | 136 +++++++++++++++++- 15*053f45beSAndroid Build Coastguard Worker 1 file changed, 134 insertions(+), 2 deletions(-) 16*053f45beSAndroid Build Coastguard Worker 17*053f45beSAndroid Build Coastguard Workerdiff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c 18*053f45beSAndroid Build Coastguard Workerindex 4ae6c8991307..325725ca082f 100644 19*053f45beSAndroid Build Coastguard Worker--- a/tools/testing/selftests/seccomp/seccomp_bpf.c 20*053f45beSAndroid Build Coastguard Worker+++ b/tools/testing/selftests/seccomp/seccomp_bpf.c 21*053f45beSAndroid Build Coastguard Worker@@ -13,12 +13,14 @@ 22*053f45beSAndroid Build Coastguard Worker * we need to use the kernel's siginfo.h file and trick glibc 23*053f45beSAndroid Build Coastguard Worker * into accepting it. 24*053f45beSAndroid Build Coastguard Worker */ 25*053f45beSAndroid Build Coastguard Worker+#if defined(__GLIBC_PREREQ) 26*053f45beSAndroid Build Coastguard Worker #if !__GLIBC_PREREQ(2, 26) 27*053f45beSAndroid Build Coastguard Worker # include <asm/siginfo.h> 28*053f45beSAndroid Build Coastguard Worker # define __have_siginfo_t 1 29*053f45beSAndroid Build Coastguard Worker # define __have_sigval_t 1 30*053f45beSAndroid Build Coastguard Worker # define __have_sigevent_t 1 31*053f45beSAndroid Build Coastguard Worker #endif 32*053f45beSAndroid Build Coastguard Worker+#endif 33*053f45beSAndroid Build Coastguard Worker 34*053f45beSAndroid Build Coastguard Worker #include <errno.h> 35*053f45beSAndroid Build Coastguard Worker #include <linux/filter.h> 36*053f45beSAndroid Build Coastguard Worker@@ -855,6 +857,14 @@ void kill_thread_or_group(struct __test_metadata *_metadata, 37*053f45beSAndroid Build Coastguard Worker exit(42); 38*053f45beSAndroid Build Coastguard Worker } 39*053f45beSAndroid Build Coastguard Worker 40*053f45beSAndroid Build Coastguard Worker+/* 41*053f45beSAndroid Build Coastguard Worker+ * b/147676645 42*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_TSYNC_ESRCH not compatible < 5.7 43*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 44*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_SPEC_ALLOW not compatible < 4.17 45*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_LOG not compatible < 4.14 46*053f45beSAndroid Build Coastguard Worker+ */ 47*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 48*053f45beSAndroid Build Coastguard Worker TEST(KILL_thread) 49*053f45beSAndroid Build Coastguard Worker { 50*053f45beSAndroid Build Coastguard Worker int status; 51*053f45beSAndroid Build Coastguard Worker@@ -873,6 +883,7 @@ TEST(KILL_thread) 52*053f45beSAndroid Build Coastguard Worker ASSERT_TRUE(WIFEXITED(status)); 53*053f45beSAndroid Build Coastguard Worker ASSERT_EQ(42, WEXITSTATUS(status)); 54*053f45beSAndroid Build Coastguard Worker } 55*053f45beSAndroid Build Coastguard Worker+#endif 56*053f45beSAndroid Build Coastguard Worker 57*053f45beSAndroid Build Coastguard Worker TEST(KILL_process) 58*053f45beSAndroid Build Coastguard Worker { 59*053f45beSAndroid Build Coastguard Worker@@ -2047,8 +2058,15 @@ void tracer_ptrace(struct __test_metadata *_metadata, pid_t tracee, 60*053f45beSAndroid Build Coastguard Worker /* Make sure we got an appropriate message. */ 61*053f45beSAndroid Build Coastguard Worker ret = ptrace(PTRACE_GETEVENTMSG, tracee, NULL, &msg); 62*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, ret); 63*053f45beSAndroid Build Coastguard Worker- EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY 64*053f45beSAndroid Build Coastguard Worker- : PTRACE_EVENTMSG_SYSCALL_EXIT, msg); 65*053f45beSAndroid Build Coastguard Worker+ 66*053f45beSAndroid Build Coastguard Worker+ /* 67*053f45beSAndroid Build Coastguard Worker+ * TODO: b/33027081 68*053f45beSAndroid Build Coastguard Worker+ * PTRACE_EVENTMSG_SYSCALL_ENTRY and PTRACE_EVENTMSG_SYSCALL_EXIT not 69*053f45beSAndroid Build Coastguard Worker+ * compatible < 5.3 (see 201766a) 70*053f45beSAndroid Build Coastguard Worker+ * 71*053f45beSAndroid Build Coastguard Worker+ * EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY 72*053f45beSAndroid Build Coastguard Worker+ * : PTRACE_EVENTMSG_SYSCALL_EXIT, msg); 73*053f45beSAndroid Build Coastguard Worker+ */ 74*053f45beSAndroid Build Coastguard Worker 75*053f45beSAndroid Build Coastguard Worker /* 76*053f45beSAndroid Build Coastguard Worker * Some architectures only support setting return values during 77*053f45beSAndroid Build Coastguard Worker@@ -2373,6 +2391,14 @@ TEST(seccomp_syscall_mode_lock) 78*053f45beSAndroid Build Coastguard Worker } 79*053f45beSAndroid Build Coastguard Worker } 80*053f45beSAndroid Build Coastguard Worker 81*053f45beSAndroid Build Coastguard Worker+/* 82*053f45beSAndroid Build Coastguard Worker+ * b/147676645 83*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_TSYNC_ESRCH not compatible < 5.7 84*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 85*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_SPEC_ALLOW not compatible < 4.17 86*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_LOG not compatible < 4.14 87*053f45beSAndroid Build Coastguard Worker+ */ 88*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 89*053f45beSAndroid Build Coastguard Worker /* 90*053f45beSAndroid Build Coastguard Worker * Test detection of known and unknown filter flags. Userspace needs to be able 91*053f45beSAndroid Build Coastguard Worker * to check if a filter flag is supported by the current kernel and a good way 92*053f45beSAndroid Build Coastguard Worker@@ -2463,6 +2489,7 @@ TEST(detect_seccomp_filter_flags) 93*053f45beSAndroid Build Coastguard Worker flag); 94*053f45beSAndroid Build Coastguard Worker } 95*053f45beSAndroid Build Coastguard Worker } 96*053f45beSAndroid Build Coastguard Worker+#endif 97*053f45beSAndroid Build Coastguard Worker 98*053f45beSAndroid Build Coastguard Worker TEST(TSYNC_first) 99*053f45beSAndroid Build Coastguard Worker { 100*053f45beSAndroid Build Coastguard Worker@@ -2844,6 +2871,11 @@ TEST_F(TSYNC, two_siblings_with_one_divergence) 101*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(SIBLING_EXIT_UNKILLED, (long)status); 102*053f45beSAndroid Build Coastguard Worker } 103*053f45beSAndroid Build Coastguard Worker 104*053f45beSAndroid Build Coastguard Worker+/* 105*053f45beSAndroid Build Coastguard Worker+ * b/147676645 106*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_TSYNC_ESRCH not compatible < 5.7 107*053f45beSAndroid Build Coastguard Worker+ */ 108*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 109*053f45beSAndroid Build Coastguard Worker TEST_F(TSYNC, two_siblings_with_one_divergence_no_tid_in_err) 110*053f45beSAndroid Build Coastguard Worker { 111*053f45beSAndroid Build Coastguard Worker long ret, flags; 112*053f45beSAndroid Build Coastguard Worker@@ -2892,6 +2924,7 @@ TEST_F(TSYNC, two_siblings_with_one_divergence_no_tid_in_err) 113*053f45beSAndroid Build Coastguard Worker PTHREAD_JOIN(self->sibling[1].tid, &status); 114*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(SIBLING_EXIT_UNKILLED, (long)status); 115*053f45beSAndroid Build Coastguard Worker } 116*053f45beSAndroid Build Coastguard Worker+#endif 117*053f45beSAndroid Build Coastguard Worker 118*053f45beSAndroid Build Coastguard Worker TEST_F(TSYNC, two_siblings_not_under_filter) 119*053f45beSAndroid Build Coastguard Worker { 120*053f45beSAndroid Build Coastguard Worker@@ -3252,6 +3285,11 @@ TEST(get_action_avail) 121*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(errno, EOPNOTSUPP); 122*053f45beSAndroid Build Coastguard Worker } 123*053f45beSAndroid Build Coastguard Worker 124*053f45beSAndroid Build Coastguard Worker+/* 125*053f45beSAndroid Build Coastguard Worker+ * b/147676645 126*053f45beSAndroid Build Coastguard Worker+ * PTRACE_SECCOMP_GET_METADATA not compatible < 4.16 127*053f45beSAndroid Build Coastguard Worker+ */ 128*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 129*053f45beSAndroid Build Coastguard Worker TEST(get_metadata) 130*053f45beSAndroid Build Coastguard Worker { 131*053f45beSAndroid Build Coastguard Worker pid_t pid; 132*053f45beSAndroid Build Coastguard Worker@@ -3320,6 +3358,7 @@ TEST(get_metadata) 133*053f45beSAndroid Build Coastguard Worker skip: 134*053f45beSAndroid Build Coastguard Worker ASSERT_EQ(0, kill(pid, SIGKILL)); 135*053f45beSAndroid Build Coastguard Worker } 136*053f45beSAndroid Build Coastguard Worker+#endif 137*053f45beSAndroid Build Coastguard Worker 138*053f45beSAndroid Build Coastguard Worker static int user_notif_syscall(int nr, unsigned int flags) 139*053f45beSAndroid Build Coastguard Worker { 140*053f45beSAndroid Build Coastguard Worker@@ -3340,6 +3379,12 @@ static int user_notif_syscall(int nr, unsigned int flags) 141*053f45beSAndroid Build Coastguard Worker } 142*053f45beSAndroid Build Coastguard Worker 143*053f45beSAndroid Build Coastguard Worker #define USER_NOTIF_MAGIC INT_MAX 144*053f45beSAndroid Build Coastguard Worker+ 145*053f45beSAndroid Build Coastguard Worker+/* 146*053f45beSAndroid Build Coastguard Worker+ * b/147676645 147*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 148*053f45beSAndroid Build Coastguard Worker+ */ 149*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 150*053f45beSAndroid Build Coastguard Worker TEST(user_notification_basic) 151*053f45beSAndroid Build Coastguard Worker { 152*053f45beSAndroid Build Coastguard Worker pid_t pid; 153*053f45beSAndroid Build Coastguard Worker@@ -3445,7 +3490,13 @@ TEST(user_notification_basic) 154*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(true, WIFEXITED(status)); 155*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 156*053f45beSAndroid Build Coastguard Worker } 157*053f45beSAndroid Build Coastguard Worker+#endif 158*053f45beSAndroid Build Coastguard Worker 159*053f45beSAndroid Build Coastguard Worker+/* 160*053f45beSAndroid Build Coastguard Worker+ * b/147676645 161*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 162*053f45beSAndroid Build Coastguard Worker+ */ 163*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 164*053f45beSAndroid Build Coastguard Worker TEST(user_notification_with_tsync) 165*053f45beSAndroid Build Coastguard Worker { 166*053f45beSAndroid Build Coastguard Worker int ret; 167*053f45beSAndroid Build Coastguard Worker@@ -3468,7 +3519,13 @@ TEST(user_notification_with_tsync) 168*053f45beSAndroid Build Coastguard Worker close(ret); 169*053f45beSAndroid Build Coastguard Worker ASSERT_LE(0, ret); 170*053f45beSAndroid Build Coastguard Worker } 171*053f45beSAndroid Build Coastguard Worker+#endif 172*053f45beSAndroid Build Coastguard Worker 173*053f45beSAndroid Build Coastguard Worker+/* 174*053f45beSAndroid Build Coastguard Worker+ * b/147676645 175*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 176*053f45beSAndroid Build Coastguard Worker+ */ 177*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 178*053f45beSAndroid Build Coastguard Worker TEST(user_notification_kill_in_middle) 179*053f45beSAndroid Build Coastguard Worker { 180*053f45beSAndroid Build Coastguard Worker pid_t pid; 181*053f45beSAndroid Build Coastguard Worker@@ -3511,6 +3568,7 @@ TEST(user_notification_kill_in_middle) 182*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(ret, -1); 183*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(errno, ENOENT); 184*053f45beSAndroid Build Coastguard Worker } 185*053f45beSAndroid Build Coastguard Worker+#endif 186*053f45beSAndroid Build Coastguard Worker 187*053f45beSAndroid Build Coastguard Worker static int handled = -1; 188*053f45beSAndroid Build Coastguard Worker 189*053f45beSAndroid Build Coastguard Worker@@ -3520,6 +3578,11 @@ static void signal_handler(int signal) 190*053f45beSAndroid Build Coastguard Worker perror("write from signal"); 191*053f45beSAndroid Build Coastguard Worker } 192*053f45beSAndroid Build Coastguard Worker 193*053f45beSAndroid Build Coastguard Worker+/* 194*053f45beSAndroid Build Coastguard Worker+ * b/147676645 195*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 196*053f45beSAndroid Build Coastguard Worker+ */ 197*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 198*053f45beSAndroid Build Coastguard Worker TEST(user_notification_signal) 199*053f45beSAndroid Build Coastguard Worker { 200*053f45beSAndroid Build Coastguard Worker pid_t pid; 201*053f45beSAndroid Build Coastguard Worker@@ -3594,7 +3657,13 @@ TEST(user_notification_signal) 202*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(true, WIFEXITED(status)); 203*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 204*053f45beSAndroid Build Coastguard Worker } 205*053f45beSAndroid Build Coastguard Worker+#endif 206*053f45beSAndroid Build Coastguard Worker 207*053f45beSAndroid Build Coastguard Worker+/* 208*053f45beSAndroid Build Coastguard Worker+ * b/147676645 209*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 210*053f45beSAndroid Build Coastguard Worker+ */ 211*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 212*053f45beSAndroid Build Coastguard Worker TEST(user_notification_closed_listener) 213*053f45beSAndroid Build Coastguard Worker { 214*053f45beSAndroid Build Coastguard Worker pid_t pid; 215*053f45beSAndroid Build Coastguard Worker@@ -3627,7 +3696,15 @@ TEST(user_notification_closed_listener) 216*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(true, WIFEXITED(status)); 217*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 218*053f45beSAndroid Build Coastguard Worker } 219*053f45beSAndroid Build Coastguard Worker+#endif 220*053f45beSAndroid Build Coastguard Worker 221*053f45beSAndroid Build Coastguard Worker+/* 222*053f45beSAndroid Build Coastguard Worker+ * b/147676645 223*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 224*053f45beSAndroid Build Coastguard Worker+ * unshare(CLONE_NEWUSER) returns EINVAL with Android 225*053f45beSAndroid Build Coastguard Worker+ * unshare(CLONE_NEWPID) returns EINVAL with Android 226*053f45beSAndroid Build Coastguard Worker+ */ 227*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 228*053f45beSAndroid Build Coastguard Worker /* 229*053f45beSAndroid Build Coastguard Worker * Check that a pid in a child namespace still shows up as valid in ours. 230*053f45beSAndroid Build Coastguard Worker */ 231*053f45beSAndroid Build Coastguard Worker@@ -3667,7 +3744,14 @@ TEST(user_notification_child_pid_ns) 232*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 233*053f45beSAndroid Build Coastguard Worker close(listener); 234*053f45beSAndroid Build Coastguard Worker } 235*053f45beSAndroid Build Coastguard Worker+#endif 236*053f45beSAndroid Build Coastguard Worker 237*053f45beSAndroid Build Coastguard Worker+/* 238*053f45beSAndroid Build Coastguard Worker+ * b/147676645 239*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 240*053f45beSAndroid Build Coastguard Worker+ * unshare(CLONE_NEWPID) returns EINVAL with Android 241*053f45beSAndroid Build Coastguard Worker+ */ 242*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 243*053f45beSAndroid Build Coastguard Worker /* 244*053f45beSAndroid Build Coastguard Worker * Check that a pid in a sibling (i.e. unrelated) namespace shows up as 0, i.e. 245*053f45beSAndroid Build Coastguard Worker * invalid. 246*053f45beSAndroid Build Coastguard Worker@@ -3741,7 +3825,14 @@ TEST(user_notification_sibling_pid_ns) 247*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(true, WIFEXITED(status)); 248*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 249*053f45beSAndroid Build Coastguard Worker } 250*053f45beSAndroid Build Coastguard Worker+#endif 251*053f45beSAndroid Build Coastguard Worker 252*053f45beSAndroid Build Coastguard Worker+/* 253*053f45beSAndroid Build Coastguard Worker+ * b/147676645 254*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 255*053f45beSAndroid Build Coastguard Worker+ * unshare(CLONE_NEWUSER) returns EINVAL with Android 256*053f45beSAndroid Build Coastguard Worker+ */ 257*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 258*053f45beSAndroid Build Coastguard Worker TEST(user_notification_fault_recv) 259*053f45beSAndroid Build Coastguard Worker { 260*053f45beSAndroid Build Coastguard Worker pid_t pid; 261*053f45beSAndroid Build Coastguard Worker@@ -3782,7 +3873,13 @@ TEST(user_notification_fault_recv) 262*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(true, WIFEXITED(status)); 263*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(0, WEXITSTATUS(status)); 264*053f45beSAndroid Build Coastguard Worker } 265*053f45beSAndroid Build Coastguard Worker+#endif 266*053f45beSAndroid Build Coastguard Worker 267*053f45beSAndroid Build Coastguard Worker+/* 268*053f45beSAndroid Build Coastguard Worker+ * b/147676645 269*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_GET_NOTIF_SIZES not compatible < 5.0 270*053f45beSAndroid Build Coastguard Worker+ */ 271*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 272*053f45beSAndroid Build Coastguard Worker TEST(seccomp_get_notif_sizes) 273*053f45beSAndroid Build Coastguard Worker { 274*053f45beSAndroid Build Coastguard Worker struct seccomp_notif_sizes sizes; 275*053f45beSAndroid Build Coastguard Worker@@ -3791,7 +3888,13 @@ TEST(seccomp_get_notif_sizes) 276*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(sizes.seccomp_notif, sizeof(struct seccomp_notif)); 277*053f45beSAndroid Build Coastguard Worker EXPECT_EQ(sizes.seccomp_notif_resp, sizeof(struct seccomp_notif_resp)); 278*053f45beSAndroid Build Coastguard Worker } 279*053f45beSAndroid Build Coastguard Worker+#endif 280*053f45beSAndroid Build Coastguard Worker 281*053f45beSAndroid Build Coastguard Worker+/* 282*053f45beSAndroid Build Coastguard Worker+ * b/147676645 283*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 284*053f45beSAndroid Build Coastguard Worker+ */ 285*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 286*053f45beSAndroid Build Coastguard Worker TEST(user_notification_continue) 287*053f45beSAndroid Build Coastguard Worker { 288*053f45beSAndroid Build Coastguard Worker pid_t pid; 289*053f45beSAndroid Build Coastguard Worker@@ -3877,7 +3980,13 @@ skip: 290*053f45beSAndroid Build Coastguard Worker } 291*053f45beSAndroid Build Coastguard Worker } 292*053f45beSAndroid Build Coastguard Worker } 293*053f45beSAndroid Build Coastguard Worker+#endif 294*053f45beSAndroid Build Coastguard Worker 295*053f45beSAndroid Build Coastguard Worker+/* 296*053f45beSAndroid Build Coastguard Worker+ * b/147676645 297*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 298*053f45beSAndroid Build Coastguard Worker+ */ 299*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 300*053f45beSAndroid Build Coastguard Worker TEST(user_notification_filter_empty) 301*053f45beSAndroid Build Coastguard Worker { 302*053f45beSAndroid Build Coastguard Worker pid_t pid; 303*053f45beSAndroid Build Coastguard Worker@@ -3926,7 +4035,13 @@ TEST(user_notification_filter_empty) 304*053f45beSAndroid Build Coastguard Worker EXPECT_GT(poll(&pollfd, 1, 2000), 0); 305*053f45beSAndroid Build Coastguard Worker EXPECT_GT((pollfd.revents & POLLHUP) ?: 0, 0); 306*053f45beSAndroid Build Coastguard Worker } 307*053f45beSAndroid Build Coastguard Worker+#endif 308*053f45beSAndroid Build Coastguard Worker 309*053f45beSAndroid Build Coastguard Worker+/* 310*053f45beSAndroid Build Coastguard Worker+ * b/147676645 311*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 312*053f45beSAndroid Build Coastguard Worker+ */ 313*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 314*053f45beSAndroid Build Coastguard Worker static void *do_thread(void *data) 315*053f45beSAndroid Build Coastguard Worker { 316*053f45beSAndroid Build Coastguard Worker return NULL; 317*053f45beSAndroid Build Coastguard Worker@@ -4012,7 +4127,15 @@ TEST(user_notification_filter_empty_threaded) 318*053f45beSAndroid Build Coastguard Worker EXPECT_GT(poll(&pollfd, 1, 2000), 0); 319*053f45beSAndroid Build Coastguard Worker EXPECT_GT((pollfd.revents & POLLHUP) ?: 0, 0); 320*053f45beSAndroid Build Coastguard Worker } 321*053f45beSAndroid Build Coastguard Worker+#endif 322*053f45beSAndroid Build Coastguard Worker 323*053f45beSAndroid Build Coastguard Worker+/* 324*053f45beSAndroid Build Coastguard Worker+ * b/147676645 325*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_ADDED_FLAG_SEND not compatible < 5.14 326*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_IOCTL_NOTIF_ADDFD not comptible < 5.9 327*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 328*053f45beSAndroid Build Coastguard Worker+ */ 329*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 330*053f45beSAndroid Build Coastguard Worker TEST(user_notification_addfd) 331*053f45beSAndroid Build Coastguard Worker { 332*053f45beSAndroid Build Coastguard Worker pid_t pid; 333*053f45beSAndroid Build Coastguard Worker@@ -4170,7 +4293,15 @@ TEST(user_notification_addfd) 334*053f45beSAndroid Build Coastguard Worker 335*053f45beSAndroid Build Coastguard Worker close(memfd); 336*053f45beSAndroid Build Coastguard Worker } 337*053f45beSAndroid Build Coastguard Worker+#endif 338*053f45beSAndroid Build Coastguard Worker 339*053f45beSAndroid Build Coastguard Worker+/* 340*053f45beSAndroid Build Coastguard Worker+ * b/147676645 341*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_ADDED_FLAG_SEND not compatible < 5.14 342*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_IOCTL_NOTIF_ADDFD not comptible < 5.9 343*053f45beSAndroid Build Coastguard Worker+ * SECCOMP_FILTER_FLAG_NEW_LISTENER not compatible < 5.0 344*053f45beSAndroid Build Coastguard Worker+ */ 345*053f45beSAndroid Build Coastguard Worker+#ifndef __ANDROID__ 346*053f45beSAndroid Build Coastguard Worker TEST(user_notification_addfd_rlimit) 347*053f45beSAndroid Build Coastguard Worker { 348*053f45beSAndroid Build Coastguard Worker pid_t pid; 349*053f45beSAndroid Build Coastguard Worker@@ -4240,6 +4371,7 @@ TEST(user_notification_addfd_rlimit) 350*053f45beSAndroid Build Coastguard Worker 351*053f45beSAndroid Build Coastguard Worker close(memfd); 352*053f45beSAndroid Build Coastguard Worker } 353*053f45beSAndroid Build Coastguard Worker+#endif 354*053f45beSAndroid Build Coastguard Worker 355*053f45beSAndroid Build Coastguard Worker /* Make sure PTRACE_O_SUSPEND_SECCOMP requires CAP_SYS_ADMIN. */ 356*053f45beSAndroid Build Coastguard Worker FIXTURE(O_SUSPEND_SECCOMP) { 357*053f45beSAndroid Build Coastguard Worker-- 358*053f45beSAndroid Build Coastguard Worker2.42.0.609.gbb76f46606-goog 359*053f45beSAndroid Build Coastguard Worker 360