qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 07/10] iotests/297: return error code from run_linters()


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH 07/10] iotests/297: return error code from run_linters()
Date: Tue, 13 Jul 2021 12:44:10 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

25.06.2021 21:20, John Snow wrote:
This turns run_linters() into a bit of a hybrid test; returning non-zero
on failed execution while also printing diffable information. This is
done for the benefit of the avocado simple test runner, which will soon
be attempting to execute this test from a different environment.

(Note: universal_newlines is added to the pylint invocation for type
consistency with the mypy run -- it's not strictly necessary, but it
avoids some typing errors caused by our re-use of the 'p' variable.)

Signed-off-by: John Snow <jsnow@redhat.com>
---
  tests/qemu-iotests/297 | 10 ++++++++--
  1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/tests/qemu-iotests/297 b/tests/qemu-iotests/297
index 1e8334d1d4..7db1f9ed45 100755
--- a/tests/qemu-iotests/297
+++ b/tests/qemu-iotests/297
@@ -68,19 +68,22 @@ def run_linters(
      files: List[str],
      directory: str = '.',
      env: Optional[Mapping[str, str]] = None,
-) -> None:
+) -> int:
+    ret = 0
print('=== pylint ===')
      sys.stdout.flush()
# Todo notes are fine, but fixme's or xxx's should probably just be
      # fixed (in tests, at least)
-    subprocess.run(
+    p = subprocess.run(
          ('python3', '-m', 'pylint', '--score=n', '--notes=FIXME,XXX', *files),
          cwd=directory,
          env=env,
          check=False,
+        universal_newlines=True,

Why you need this universal_newlines=True, if you don't handle output?

with or without it:
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

      )
+    ret += p.returncode
print('=== mypy ===')
      sys.stdout.flush()
@@ -113,9 +116,12 @@ def run_linters(
              universal_newlines=True
          )
+ ret += p.returncode
          if p.returncode != 0:
              print(p.stdout)
+ return ret
+
def main() -> None:
      for linter in ('pylint-3', 'mypy'):



--
Best regards,
Vladimir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]