[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 4/6] iotests: add testrunner.py
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [PATCH v9 4/6] iotests: add testrunner.py |
Date: |
Tue, 26 Jan 2021 13:11:51 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 |
25.01.2021 21:50, Vladimir Sementsov-Ogievskiy wrote:
Add TestRunner class, which will run tests in a new python iotests
running framework.
There are some differences with current ./check behavior, most
significant are:
- Consider all tests self-executable, just run them, don't run python
by hand.
- Elapsed time is cached in json file
- Elapsed time precision increased a bit
- Instead of using "diff -w" which ignores all whitespace differences,
manually strip whitespace at line end then use python difflib, which
no longer ignores spacing mid-line
Signed-off-by: Vladimir Sementsov-Ogievskiy<vsementsov@virtuozzo.com>
squash-in to fix mypy complains, and try use ContextManager for CI:
diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py
index 8480d2d586..046f9ce38f 100644
--- a/tests/qemu-iotests/testrunner.py
+++ b/tests/qemu-iotests/testrunner.py
@@ -27,8 +27,8 @@ import json
import termios
import sys
from contextlib import contextmanager
-from contextlib import AbstractContextManager
-from typing import List, Optional, Iterator, Any, Sequence
+from typing import List, Optional, Iterator, Any, Sequence, Dict, \
+ ContextManager
from testenv import TestEnv
@@ -69,7 +69,7 @@ def savetty() -> Iterator[None]:
termios.tcsetattr(fd, termios.TCSADRAIN, attr)
-class LastElapsedTime(AbstractContextManager['LastElapsedTime']):
+class LastElapsedTime(ContextManager['LastElapsedTime']):
""" Cache for elapsed time for tests, to show it during new test run
It is safe to use get() at any time. To use update(), you must either
@@ -78,6 +78,7 @@ class
LastElapsedTime(AbstractContextManager['LastElapsedTime']):
def __init__(self, cache_file: str, env: TestEnv) -> None:
self.env = env
self.cache_file = cache_file
+ self.cache: Dict[str, Dict[str, Dict[str, float]]]
try:
with open(cache_file) as f:
@@ -98,8 +99,7 @@ class
LastElapsedTime(AbstractContextManager['LastElapsedTime']):
def update(self, test: str, elapsed: float) -> None:
d = self.cache.setdefault(test, {})
- d = d.setdefault(self.env.imgproto, {})
- d[self.env.imgfmt] = elapsed
+ d.setdefault(self.env.imgproto, {})[self.env.imgfmt] = elapsed
def save(self) -> None:
with open(self.cache_file, 'w') as f:
@@ -124,7 +124,7 @@ class TestResult:
self.interrupted = interrupted
-class TestRunner(AbstractContextManager['TestRunner']):
+class TestRunner(ContextManager['TestRunner']):
def __init__(self, env: TestEnv, makecheck: bool = False,
color: str = 'auto') -> None:
self.env = env
--
Best regards,
Vladimir
- [PATCH v9 0/6] Rework iotests/check, Vladimir Sementsov-Ogievskiy, 2021/01/25
- [PATCH v9 3/6] iotests: add testenv.py, Vladimir Sementsov-Ogievskiy, 2021/01/25
- [PATCH v9 2/6] iotests: add findtests.py, Vladimir Sementsov-Ogievskiy, 2021/01/25
- [PATCH v9 4/6] iotests: add testrunner.py, Vladimir Sementsov-Ogievskiy, 2021/01/25
- Re: [PATCH v9 4/6] iotests: add testrunner.py,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v9 5/6] iotests: rewrite check into python, Vladimir Sementsov-Ogievskiy, 2021/01/25
- [PATCH v9 6/6] iotests: rename and move 169 and 199 tests, Vladimir Sementsov-Ogievskiy, 2021/01/25
- [PATCH v9 1/6] iotests: 146: drop extra whitespaces from .out file, Vladimir Sementsov-Ogievskiy, 2021/01/25
- Re: [PATCH v9 0/6] Rework iotests/check, Kevin Wolf, 2021/01/26