Loading envsetup.sh +5 −5 Original line number Diff line number Diff line Loading @@ -847,11 +847,11 @@ function run_tool_with_logging() { # Remove the trap to prevent duplicate log. trap - EXIT; "${logger}" \ --tool_tag "${tool_tag}" \ --start_timestamp "${start_time}" \ --end_timestamp "$(date +%s.%N)" \ --tool_args "$*" \ --exit_code "${exit_code}" \ --tool_tag="${tool_tag}" \ --start_timestamp="${start_time}" \ --end_timestamp="$(date +%s.%N)" \ --tool_args="$*" \ --exit_code="${exit_code}" \ ${ANDROID_TOOL_LOGGER_EXTRA_ARGS} \ > /dev/null 2>&1 & exit ${exit_code} Loading tests/run_tool_with_logging_test.py +17 −4 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ class RunToolWithLoggingTest(unittest.TestCase): test_tool.assert_called_once_with_args("arg1 arg2") expected_logger_args = ( "--tool_tag FAKE_TOOL --start_timestamp \d+\.\d+ --end_timestamp" " \d+\.\d+ --tool_args arg1 arg2 --exit_code 0" "--tool_tag=FAKE_TOOL --start_timestamp=\d+\.\d+ --end_timestamp=" "\d+\.\d+ --tool_args=arg1 arg2 --exit_code=0" ) test_logger.assert_called_once_with_args(expected_logger_args) Loading Loading @@ -163,8 +163,8 @@ class RunToolWithLoggingTest(unittest.TestCase): self.assertEqual(returncode, INTERRUPTED_RETURN_CODE) expected_logger_args = ( "--tool_tag FAKE_TOOL --start_timestamp \d+\.\d+ --end_timestamp" " \d+\.\d+ --tool_args arg1 arg2 --exit_code 130" "--tool_tag=FAKE_TOOL --start_timestamp=\d+\.\d+ --end_timestamp=" "\d+\.\d+ --tool_args=arg1 arg2 --exit_code=130" ) test_logger.assert_called_once_with_args(expected_logger_args) Loading Loading @@ -205,6 +205,19 @@ class RunToolWithLoggingTest(unittest.TestCase): self._assert_logger_dry_run() def test_tool_args_do_not_fail_logger(self): test_tool = TestScript.create(self.working_dir) logger_path = self._import_logger() self._run_script_and_wait(f""" TMPDIR="{self.working_dir.name}" ANDROID_TOOL_LOGGER="{logger_path}" ANDROID_TOOL_LOGGER_EXTRA_ARGS="--dry_run" run_tool_with_logging "FAKE_TOOL" {test_tool.executable} --tool-arg1 """) self._assert_logger_dry_run() def _import_logger(self) -> Path: logger = "tool_event_logger" logger_path = Path(self.working_dir.name).joinpath(logger) Loading Loading
envsetup.sh +5 −5 Original line number Diff line number Diff line Loading @@ -847,11 +847,11 @@ function run_tool_with_logging() { # Remove the trap to prevent duplicate log. trap - EXIT; "${logger}" \ --tool_tag "${tool_tag}" \ --start_timestamp "${start_time}" \ --end_timestamp "$(date +%s.%N)" \ --tool_args "$*" \ --exit_code "${exit_code}" \ --tool_tag="${tool_tag}" \ --start_timestamp="${start_time}" \ --end_timestamp="$(date +%s.%N)" \ --tool_args="$*" \ --exit_code="${exit_code}" \ ${ANDROID_TOOL_LOGGER_EXTRA_ARGS} \ > /dev/null 2>&1 & exit ${exit_code} Loading
tests/run_tool_with_logging_test.py +17 −4 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ class RunToolWithLoggingTest(unittest.TestCase): test_tool.assert_called_once_with_args("arg1 arg2") expected_logger_args = ( "--tool_tag FAKE_TOOL --start_timestamp \d+\.\d+ --end_timestamp" " \d+\.\d+ --tool_args arg1 arg2 --exit_code 0" "--tool_tag=FAKE_TOOL --start_timestamp=\d+\.\d+ --end_timestamp=" "\d+\.\d+ --tool_args=arg1 arg2 --exit_code=0" ) test_logger.assert_called_once_with_args(expected_logger_args) Loading Loading @@ -163,8 +163,8 @@ class RunToolWithLoggingTest(unittest.TestCase): self.assertEqual(returncode, INTERRUPTED_RETURN_CODE) expected_logger_args = ( "--tool_tag FAKE_TOOL --start_timestamp \d+\.\d+ --end_timestamp" " \d+\.\d+ --tool_args arg1 arg2 --exit_code 130" "--tool_tag=FAKE_TOOL --start_timestamp=\d+\.\d+ --end_timestamp=" "\d+\.\d+ --tool_args=arg1 arg2 --exit_code=130" ) test_logger.assert_called_once_with_args(expected_logger_args) Loading Loading @@ -205,6 +205,19 @@ class RunToolWithLoggingTest(unittest.TestCase): self._assert_logger_dry_run() def test_tool_args_do_not_fail_logger(self): test_tool = TestScript.create(self.working_dir) logger_path = self._import_logger() self._run_script_and_wait(f""" TMPDIR="{self.working_dir.name}" ANDROID_TOOL_LOGGER="{logger_path}" ANDROID_TOOL_LOGGER_EXTRA_ARGS="--dry_run" run_tool_with_logging "FAKE_TOOL" {test_tool.executable} --tool-arg1 """) self._assert_logger_dry_run() def _import_logger(self) -> Path: logger = "tool_event_logger" logger_path = Path(self.working_dir.name).joinpath(logger) Loading