From ae862252c9fa0a1cdf88d85e964e368ce50ebfef Mon Sep 17 00:00:00 2001 From: Manuel Briones Date: Fri, 11 Sep 2026 07:53:37 +0000 Subject: [PATCH] Rename get_cpu_arch to get_target_cpu_arch `get_cpu_arch` method might be a bit confusing, `get_target_cpu_arch` is a bit more descriptive. - Ran `python butler.py py_unittest -t core -p commands_test.py` (passed). - Ran `python butler.py py_unittest -t core -p settings_test.py` (passed). - Ran `python butler.py py_unittest -t core -p environment_test.py` (passed). Bug: 559993851 Signed-off-by: Manuel Briones --- src/clusterfuzz/_internal/bot/tasks/commands.py | 2 +- .../_internal/platforms/android/settings.py | 6 ++++-- src/clusterfuzz/_internal/system/environment.py | 9 +++++++-- .../tests/core/bot/tasks/commands_test.py | 14 +++++++------- .../tests/core/system/environment_test.py | 16 ++++++++-------- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/clusterfuzz/_internal/bot/tasks/commands.py b/src/clusterfuzz/_internal/bot/tasks/commands.py index f626338384b..4a746364934 100644 --- a/src/clusterfuzz/_internal/bot/tasks/commands.py +++ b/src/clusterfuzz/_internal/bot/tasks/commands.py @@ -102,7 +102,7 @@ def cleanup_task_state(): def is_supported_cpu_arch_for_job(): """Return true if the current cpu architecture can run this job.""" - cpu_arch = environment.get_cpu_arch() + cpu_arch = environment.get_target_cpu_arch() if not cpu_arch: # No cpu architecture check is defined for this platform, bail out. return True diff --git a/src/clusterfuzz/_internal/platforms/android/settings.py b/src/clusterfuzz/_internal/platforms/android/settings.py index 679b7c39a99..8b4adcae47b 100644 --- a/src/clusterfuzz/_internal/platforms/android/settings.py +++ b/src/clusterfuzz/_internal/platforms/android/settings.py @@ -72,8 +72,10 @@ def get_build_version(): return match.group(1) -def get_cpu_arch(): - """Return cpu architecture.""" +def get_target_cpu_arch(): + """Return target cpu architecture, + i.e. the cpu architecture where the fuzzer will run. + """ return adb.get_property('ro.product.cpu.abi') diff --git a/src/clusterfuzz/_internal/system/environment.py b/src/clusterfuzz/_internal/system/environment.py index 3af3791a7da..997d2a37cc8 100644 --- a/src/clusterfuzz/_internal/system/environment.py +++ b/src/clusterfuzz/_internal/system/environment.py @@ -221,13 +221,18 @@ def get_asan_options(redzone_size, malloc_context_size, quarantine_size_mb, return asan_options -def get_cpu_arch(): +def get_target_cpu_arch(): """Return cpu architecture.""" if is_android(): # FIXME: Handle this import in a cleaner way. from clusterfuzz._internal.platforms import android - return android.settings.get_cpu_arch() + return android.settings.get_target_cpu_arch() + return get_host_cpu_arch() + + +def get_host_cpu_arch(): + """Returns cpu architecture of the current host.""" machine = platform_util.machine().lower() if machine in ('arm64', 'aarch64'): return 'arm64' diff --git a/src/clusterfuzz/_internal/tests/core/bot/tasks/commands_test.py b/src/clusterfuzz/_internal/tests/core/bot/tasks/commands_test.py index 2837d34e189..403d7fccf0e 100644 --- a/src/clusterfuzz/_internal/tests/core/bot/tasks/commands_test.py +++ b/src/clusterfuzz/_internal/tests/core/bot/tasks/commands_test.py @@ -303,41 +303,41 @@ class IsSupportedCpuArchForJobTest(unittest.TestCase): def setUp(self): helpers.patch_environ(self) helpers.patch(self, [ - 'clusterfuzz._internal.system.environment.get_cpu_arch', + 'clusterfuzz._internal.system.environment.get_target_cpu_arch', ]) def test_no_bot_cpu_arch(self): """Test when no cpu arch is defined on bot.""" - self.mock.get_cpu_arch.return_value = None + self.mock.get_target_cpu_arch.return_value = None environment.set_value('CPU_ARCH', 'arm64') self.assertTrue(commands.is_supported_cpu_arch_for_job()) def test_no_job_cpu_arch_requirement(self): """Test when job specifies no CPU_ARCH requirement.""" - self.mock.get_cpu_arch.return_value = 'arm64' + self.mock.get_target_cpu_arch.return_value = 'arm64' environment.set_value('CPU_ARCH', None) self.assertTrue(commands.is_supported_cpu_arch_for_job()) def test_matching_single_string(self): """Test when job specifies matching single string CPU_ARCH.""" - self.mock.get_cpu_arch.return_value = 'arm64' + self.mock.get_target_cpu_arch.return_value = 'arm64' environment.set_value('CPU_ARCH', 'arm64') self.assertTrue(commands.is_supported_cpu_arch_for_job()) def test_non_matching_single_string(self): """Test when job specifies non-matching single string CPU_ARCH.""" - self.mock.get_cpu_arch.return_value = 'arm64' + self.mock.get_target_cpu_arch.return_value = 'arm64' environment.set_value('CPU_ARCH', 'x86_64') self.assertFalse(commands.is_supported_cpu_arch_for_job()) def test_matching_comma_separated_string(self): """Test when job specifies comma-separated CPU_ARCH.""" - self.mock.get_cpu_arch.return_value = 'arm64' + self.mock.get_target_cpu_arch.return_value = 'arm64' environment.set_value('CPU_ARCH', 'x86_64, arm64') self.assertTrue(commands.is_supported_cpu_arch_for_job()) def test_matching_list(self): """Test when job specifies a list of supported architectures.""" - self.mock.get_cpu_arch.return_value = 'arm64' + self.mock.get_target_cpu_arch.return_value = 'arm64' environment.set_value('CPU_ARCH', ['x86_64', 'arm64']) self.assertTrue(commands.is_supported_cpu_arch_for_job()) diff --git a/src/clusterfuzz/_internal/tests/core/system/environment_test.py b/src/clusterfuzz/_internal/tests/core/system/environment_test.py index e6f5137b11a..40f8e9b227f 100644 --- a/src/clusterfuzz/_internal/tests/core/system/environment_test.py +++ b/src/clusterfuzz/_internal/tests/core/system/environment_test.py @@ -481,42 +481,42 @@ def test_function(): class GetCpuArchTest(unittest.TestCase): - """Tests for get_cpu_arch.""" + """Tests for get_target_cpu_arch.""" def setUp(self): test_helpers.patch_environ(self) test_helpers.patch(self, [ 'clusterfuzz._internal.system.environment.is_android', 'platform.machine', - 'clusterfuzz._internal.platforms.android.settings.get_cpu_arch', + 'clusterfuzz._internal.platforms.android.settings.get_target_cpu_arch', ]) self.mock.is_android.return_value = False def test_android(self): """Test Android architecture delegation.""" self.mock.is_android.return_value = True - self.mock.get_cpu_arch.return_value = 'arm64_v8a' - self.assertEqual('arm64_v8a', environment.get_cpu_arch()) + self.mock.get_target_cpu_arch.return_value = 'arm64_v8a' + self.assertEqual('arm64_v8a', environment.get_target_cpu_arch()) def test_arm64(self): """Test ARM64 architecture detection.""" self.mock.machine.return_value = 'arm64' - self.assertEqual('arm64', environment.get_cpu_arch()) + self.assertEqual('arm64', environment.get_target_cpu_arch()) def test_aarch64(self): """Test aarch64 normalized to arm64.""" self.mock.machine.return_value = 'aarch64' - self.assertEqual('arm64', environment.get_cpu_arch()) + self.assertEqual('arm64', environment.get_target_cpu_arch()) def test_x86_64(self): """Test x86_64 architecture detection.""" self.mock.machine.return_value = 'x86_64' - self.assertEqual('x86_64', environment.get_cpu_arch()) + self.assertEqual('x86_64', environment.get_target_cpu_arch()) def test_amd64(self): """Test amd64 normalized to x86_64.""" self.mock.machine.return_value = 'AMD64' - self.assertEqual('x86_64', environment.get_cpu_arch()) + self.assertEqual('x86_64', environment.get_target_cpu_arch()) class GetDefaultToolPathTest(unittest.TestCase):