diff options
author | YH Lin <yueherngl@chromium.org> | 2022-12-03 00:19:30 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-05 17:43:05 +0000 |
commit | c8af732351cc5c7167f27e8390e26f0556f53a5a (patch) | |
tree | bdff671e5ad3e71e30ab56f4f084f34a2fd72e28 /zephyr/zmake/tests/test_jobserver.py | |
parent | af25602b15b22b9ef5821dcba9934311f2157c48 (diff) | |
download | chrome-ec-factory-brya-14517.B-main.tar.gz |
Revert "Merge remote-tracking branch cros/main into factory-brya-14517.B-main"factory-brya-14517.B-main
This reverts commit af25602b15b22b9ef5821dcba9934311f2157c48.
Reason for revert: broken build due to ec-utils.
Original change's description:
> Merge remote-tracking branch cros/main into factory-brya-14517.B-main
>
> Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file
> baseboard/brya/relevant-paths.txt factory-brya-14517.B-main
>
> Relevant changes:
>
> git log --oneline 54462f034b..aa40b859b3 -- baseboard/brya board/agah
> board/anahera board/banshee board/brya board/crota board/felwinter
> board/gimble board/kano board/mithrax board/osiris board/primus
> board/redrix board/taeko board/taniks board/vell board/volmar
> driver/bc12/pi3usb9201_public.* driver/charger/bq25710.*
> driver/ppc/nx20p348x.* driver/ppc/syv682x_public.*
> driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.*
> driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake*
> include/intel_x86.h power/alderlake* power/intel_x86.c
> util/getversion.sh
>
> e6da633c38 driver: Sort header files
> 234a87ae2d tcpci: Add FRS enable to driver structure
> a56be59ccd tcpm_header: add test for tcpm_dump_registers
> 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT
> e420c8ff9a marasov: Modify TypeC and TypeA configuration.
> 43b53e0045 Add default implementation of board_set_charge_limit
> b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT
> f1b563c350 baseboard: Sort header files
> 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70
> ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT
> 8f89f69a5b crota: disable lid angle sensor for clamshell
>
> BRANCH=None
> BUG=b:259002141 b:255184961 b:247100970 b:259354679 b:260630630
> BUG=b:163093572 b:254328661
> TEST=`emerge-brya chromeos-ec`
>
> Force-Relevant-Builds: all
> Change-Id: Ia85a701fbf6b8e67ec214b9e25e0e55e980a6f47
> Signed-off-by: YH Lin <yueherngl@google.com>
Bug: b:259002141 b:255184961 b:247100970 b:259354679 b:260630630
Bug: b:163093572 b:254328661
Change-Id: I48d5aa4cc67a69ee1f6ac9255ac3087d34da4c72
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4077248
Tested-by: YH Lin <yueherngl@chromium.org>
Commit-Queue: YH Lin <yueherngl@chromium.org>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Auto-Submit: YH Lin <yueherngl@chromium.org>
Diffstat (limited to 'zephyr/zmake/tests/test_jobserver.py')
-rw-r--r-- | zephyr/zmake/tests/test_jobserver.py | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/zephyr/zmake/tests/test_jobserver.py b/zephyr/zmake/tests/test_jobserver.py deleted file mode 100644 index a79e6dc280..0000000000 --- a/zephyr/zmake/tests/test_jobserver.py +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 2022 The ChromiumOS Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Test jobserver functionality.""" - -import logging -import os -import threading -from asyncio import subprocess - -import pytest # pylint:disable=import-error -import zmake.jobserver - - -def _do_test_jobserver( - jobs, commandline_jobs=0, use_client=False, open_pipe=True -): - """Test a jobserver configured with a specified number of jobs.""" - - effective_jobs = jobs - pipe = None - if use_client: - makeflags = f" -j{jobs}" - if jobs > 1: - pipe = os.pipe() - # GNU make puts one less job in the pipe than allowed, since you - # get one job "for free" without contacting the jobserver. Or - # another way of looking at is that make consumes one slot for you - # before calling your job just in case you aren't jobserver aware. - os.write(pipe[1], b"A" * (jobs - 1)) - os.set_inheritable(pipe[0], True) - os.set_inheritable(pipe[1], True) - makeflags += f" --jobserver-auth={pipe[0]},{pipe[1]}" - if not open_pipe: - os.close(pipe[0]) - os.close(pipe[1]) - effective_jobs = 1 - jobserver = zmake.jobserver.GNUMakeJobClient.from_environ( - env={"MAKEFLAGS": makeflags}, jobs=commandline_jobs - ) - else: - jobserver = zmake.jobserver.GNUMakeJobServer(jobs=jobs) - pipe = jobserver._inheritable_pipe # pylint:disable=protected-access - if jobs == 1: - makeflags = " -j1" - else: - makeflags = f" -j{jobs} --jobserver-auth={pipe[0]},{pipe[1]}" - - lock = threading.Condition() - started_threads = 0 - ended_threads = 0 - active_threads = 0 - please_exit = threading.Semaphore(0) - thread_count = jobs + 5 - if commandline_jobs: - effective_jobs = commandline_jobs - - def _my_thread(): - nonlocal started_threads - nonlocal active_threads - nonlocal ended_threads - nonlocal pipe - - with lock: - started_threads += 1 - lock.notify_all() - with jobserver.get_job(): - with lock: - active_threads += 1 - lock.notify_all() - proc = jobserver.popen( - [ - "sh", - "-c", - 'echo "MAKEFLAGS=${MAKEFLAGS}"; ls /proc/self/fd', - ], - stdout=subprocess.PIPE, - universal_newlines=True, - ) - proc.wait() - output = proc.stdout.readlines() - assert output[0] == f"MAKEFLAGS={makeflags}\n" - if pipe: - if effective_jobs > 1: - assert f"{pipe[0]}\n" in output - assert f"{pipe[1]}\n" in output - else: - assert f"{pipe[0]}\n" not in output - assert f"{pipe[1]}\n" not in output - - please_exit.acquire() # pylint:disable=consider-using-with - with lock: - active_threads -= 1 - ended_threads += 1 - lock.notify_all() - - logging.debug("Starting %s threads", thread_count) - for _ in range(thread_count): - threading.Thread(target=_my_thread, daemon=True).start() - - with lock: - lock.wait_for( - lambda: started_threads == thread_count - and active_threads == effective_jobs, - 10, - ) - logging.debug("Asserting %s active_threads", effective_jobs) - assert started_threads == thread_count - assert active_threads == effective_jobs - assert ended_threads == 0 - - logging.debug("Ending %s threads", 5) - for _ in range(5): - please_exit.release() - - with lock: - lock.wait_for( - lambda: active_threads == effective_jobs and ended_threads == 5, 10 - ) - logging.debug("Asserting %s active_threads", effective_jobs) - assert started_threads == thread_count - assert active_threads == effective_jobs - assert ended_threads == 5 - - logging.debug("Ending %s threads", thread_count - 5) - for _ in range(thread_count - 5): - please_exit.release() - - with lock: - lock.wait_for(lambda: ended_threads == thread_count, 10) - logging.debug("Asserting %s active_threads", 0) - assert started_threads == thread_count - assert active_threads == 0 - assert ended_threads == thread_count - - -def test_jobserver_10(): - """Test a jobserver configured with 10 jobs.""" - _do_test_jobserver(10) - - -def test_jobserver_2(): - """Test a jobserver configured with 2 jobs.""" - _do_test_jobserver(2) - - -def test_jobserver_1(): - """Test a jobserver configured with 1 job.""" - _do_test_jobserver(1) - - -def test_jobclient_10(): - """Test a jobclient configured with 10 jobs.""" - _do_test_jobserver(10, use_client=True) - - -def test_jobclient_2(): - """Test a jobserver configured with 2 jobs.""" - _do_test_jobserver(2, use_client=True) - - -def test_jobclient_1(): - """Test a jobserver configured with 1 job.""" - _do_test_jobserver(1, use_client=True) - - -def test_jobclient_10_j1(): - """Test a jobclient configured with 10 jobs but zmake -j1 was called.""" - _do_test_jobserver(10, commandline_jobs=1, use_client=True) - - -def test_jobclient_1_j1(): - """Test a jobserver configured with 1 job but zmake -j1 was called.""" - _do_test_jobserver(1, commandline_jobs=1, use_client=True) - - -def test_jobclient_missing(): - """Test a jobclient with no MAKEFLAGS.""" - jobserver = zmake.jobserver.GNUMakeJobClient.from_environ(env={}) - assert jobserver is None - - -def test_jobclient_dryrun(): - """Test a jobclient make dryrun in MAKEFLAGS.""" - with pytest.raises(SystemExit) as pytest_wrapped_e: - zmake.jobserver.GNUMakeJobClient.from_environ( - env={"MAKEFLAGS": "n -j1"} - ) - assert pytest_wrapped_e.type == SystemExit - assert pytest_wrapped_e.value.code == 0 - - -def test_jobclient_10_no_pipes(): - """Test a jobclient configured with 10 jobs but the file descriptors are missing.""" - _do_test_jobserver(10, use_client=True, open_pipe=False) - - -def test_jobclient_1_no_pipes(): - """Test a jobclient configured with 1 job but the file descriptors are missing.""" - _do_test_jobserver(1, use_client=True, open_pipe=False) |