diff options
author | Cole Faust <colefaust@google.com> | 2024-04-02 17:41:33 -0700 |
---|---|---|
committer | Cole Faust <colefaust@google.com> | 2024-04-04 09:45:39 -0700 |
commit | 354c0ca1eed213523c93bd6db7e838769ee967fe (patch) | |
tree | 9a67c018ffbddaa4518680e3275417fdb0992c79 | |
parent | 42f51645131c4c77b65489d775e056a3e0a90ca4 (diff) | |
download | minijail-master.tar.gz |
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.bp | 10 | ||||
-rw-r--r-- | tools/arch.py | 23 | ||||
-rwxr-xr-x | tools/compiler_unittest.py | 7 | ||||
-rwxr-xr-x | tools/parser_unittest.py | 7 |
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): |