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