aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Faust <colefaust@google.com>2024-04-02 17:41:33 -0700
committerCole Faust <colefaust@google.com>2024-04-04 09:45:39 -0700
commit354c0ca1eed213523c93bd6db7e838769ee967fe (patch)
tree9a67c018ffbddaa4518680e3275417fdb0992c79
parent42f51645131c4c77b65489d775e056a3e0a90ca4 (diff)
downloadminijail-main.tar.gz
UPSTREAM: Set embedded_launcher: true for minijail testsHEADmastermain
Android is migrating to using embedded_launcher for all python modules, fix these tests which have problems with embedded_launcher because they expect their data to be extracted to disk. The upstream cl is: https://chromium-review.googlesource.com/c/chromiumos/platform/minijail/+/5417234 Bug: 331488610 Test: m minijail_parser_unittest minijail_compiler_unittest && out/host/linux-x86/nativetest64/minijail_compiler_unittest/minijail_compiler_unittest && out/host/linux-x86/nativetest64/minijail_parser_unittest/minijail_parser_unittest Change-Id: Ib567ff8258eb7faf8db8bafb08214d72a11257e5
-rw-r--r--tools/Android.bp10
-rw-r--r--tools/arch.py23
-rwxr-xr-xtools/compiler_unittest.py7
-rwxr-xr-xtools/parser_unittest.py7
4 files changed, 32 insertions, 15 deletions
diff --git a/tools/Android.bp b/tools/Android.bp
index 62b3a88..3a3e9c6 100644
--- a/tools/Android.bp
+++ b/tools/Android.bp
@@ -45,6 +45,11 @@ python_test_host {
data: [
"testdata/arch_64.json",
],
+ version: {
+ py3: {
+ embedded_launcher: true,
+ },
+ },
}
python_test_host {
@@ -60,6 +65,11 @@ python_test_host {
data: [
"testdata/arch_64.json",
],
+ version: {
+ py3: {
+ embedded_launcher: true,
+ },
+ },
}
python_binary_host {
diff --git a/tools/arch.py b/tools/arch.py
index ac2f32b..b245f38 100644
--- a/tools/arch.py
+++ b/tools/arch.py
@@ -45,12 +45,17 @@ class Arch(
def load_from_json(json_path):
"""Return an Arch from a .json file."""
with open(json_path, 'r') as json_file:
- constants = json.load(json_file)
- return Arch(
- arch_nr=constants['arch_nr'],
- arch_name=constants['arch_name'],
- bits=constants['bits'],
- syscalls=constants['syscalls'],
- constants=constants['constants'],
- syscall_groups=constants.get('syscall_groups', {}),
- )
+ return Arch.load_from_json_bytes(json_file.read())
+
+ @staticmethod
+ def load_from_json_bytes(json_bytes):
+ """Return an Arch from a json string."""
+ constants = json.loads(json_bytes)
+ return Arch(
+ arch_nr=constants["arch_nr"],
+ arch_name=constants["arch_name"],
+ bits=constants["bits"],
+ syscalls=constants["syscalls"],
+ constants=constants["constants"],
+ syscall_groups=constants.get("syscall_groups", {}),
+ )
diff --git a/tools/compiler_unittest.py b/tools/compiler_unittest.py
index 19ca72f..993de59 100755
--- a/tools/compiler_unittest.py
+++ b/tools/compiler_unittest.py
@@ -23,15 +23,16 @@ import random
import shutil
import tempfile
import unittest
+from importlib import resources
import arch
import bpf
import compiler
import parser # pylint: disable=wrong-import-order
-ARCH_64 = arch.Arch.load_from_json(
- os.path.join(
- os.path.dirname(os.path.abspath(__file__)), 'testdata/arch_64.json'))
+ARCH_64 = arch.Arch.load_from_json_bytes(
+ resources.files("testdata").joinpath("arch_64.json").read_bytes()
+)
class CompileFilterStatementTests(unittest.TestCase):
diff --git a/tools/parser_unittest.py b/tools/parser_unittest.py
index 9e7d6d8..5e7c8a2 100755
--- a/tools/parser_unittest.py
+++ b/tools/parser_unittest.py
@@ -24,14 +24,15 @@ import os
import shutil
import tempfile
import unittest
+from importlib import resources
import arch
import bpf
import parser # pylint: disable=wrong-import-order
-ARCH_64 = arch.Arch.load_from_json(
- os.path.join(
- os.path.dirname(os.path.abspath(__file__)), 'testdata/arch_64.json'))
+ARCH_64 = arch.Arch.load_from_json_bytes(
+ resources.files("testdata").joinpath("arch_64.json").read_bytes()
+)
class TokenizerTests(unittest.TestCase):