Support all architectures in seccomp
Test: Make sure arm, x86, x86_64, mips, mips64 emulators boot
Make sure sailfish still boots
Ran CTS test from
https://android-review.googlesource.com/#/c/348671/3 and it passed
The instructions for how to run mips emulators above worked, but
the CTS tests did not seem to actually run.
Change-Id: Iddee5acdb19ed32c7bd4657573313ca439cf6a49
diff --git a/libc/tools/test_genseccomp.py b/libc/tools/test_genseccomp.py
index 5b2f14f..19672a1 100755
--- a/libc/tools/test_genseccomp.py
+++ b/libc/tools/test_genseccomp.py
@@ -20,6 +20,9 @@
def get_headers(self, arch):
return self.get_config(arch)[1]
+ def get_switches(self, arch):
+ return self.get_config(arch)[2]
+
def test_get_names(self):
syscalls = cStringIO.StringIO(textwrap.dedent("""\
int __llseek:_llseek(int, unsigned long, unsigned long, off64_t*, int) arm,mips,x86
@@ -45,17 +48,40 @@
def test_convert_names_to_NRs(self):
self.assertEquals(genseccomp.convert_names_to_NRs(["open"],
- self.get_headers("arm")),
+ self.get_headers("arm"),
+ self.get_switches("arm")),
[("open", 5)])
self.assertEquals(genseccomp.convert_names_to_NRs(["__ARM_NR_set_tls"],
- self.get_headers("arm")),
+ self.get_headers("arm"),
+ self.get_switches("arm")),
[('__ARM_NR_set_tls', 983045)])
self.assertEquals(genseccomp.convert_names_to_NRs(["openat"],
- self.get_headers("arm64")),
+ self.get_headers("arm64"),
+ self.get_switches("arm64")),
[("openat", 56)])
+ self.assertEquals(genseccomp.convert_names_to_NRs(["openat"],
+ self.get_headers("x86"),
+ self.get_switches("x86")),
+ [("openat", 295)])
+
+ self.assertEquals(genseccomp.convert_names_to_NRs(["openat"],
+ self.get_headers("x86_64"),
+ self.get_switches("x86_64")),
+ [("openat", 257)])
+
+ self.assertEquals(genseccomp.convert_names_to_NRs(["openat"],
+ self.get_headers("mips"),
+ self.get_switches("mips")),
+ [("openat", 4288)])
+
+ self.assertEquals(genseccomp.convert_names_to_NRs(["openat"],
+ self.get_headers("mips64"),
+ self.get_switches("mips64")),
+ [("openat", 5247)])
+
def test_convert_NRs_to_ranges(self):
ranges = genseccomp.convert_NRs_to_ranges([("b", 2), ("a", 1)])
@@ -128,7 +154,8 @@
"""))
syscall_files = [syscalls, whitelist]
- output = genseccomp.construct_bpf(syscall_files, "arm", self.get_headers("arm"))
+ output = genseccomp.construct_bpf(syscall_files, "arm", self.get_headers("arm"),
+ self.get_switches("arm"))
expected_output = textwrap.dedent("""\
// Autogenerated file - edit at your peril!!