From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, mreitz@redhat.com,
den@openvz.org, jsnow@redhat.com
Subject: Re: [PATCH v7 09/11] iotests: add testrunner.py
Date: Fri, 22 Jan 2021 17:22:54 +0300 [thread overview]
Message-ID: <0084a070-e68e-0efc-b979-7b044ae31787@virtuozzo.com> (raw)
In-Reply-To: <20210122141132.GG15866@merkur.fritz.box>
22.01.2021 17:11, Kevin Wolf wrote:
> Am 16.01.2021 um 14:44 hat Vladimir Sementsov-Ogievskiy geschrieben:
>> 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
>> - use python difflib instead of "diff -w", to ignore spaces at line
>> ends strip lines by hand. Do not ignore other spaces.
>>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>> tests/qemu-iotests/testrunner.py | 344 +++++++++++++++++++++++++++++++
>> 1 file changed, 344 insertions(+)
>> create mode 100644 tests/qemu-iotests/testrunner.py
>
>> +TestResult = collections.namedtuple(
>> + 'TestResult',
>> + ['status', 'description', 'elapsed', 'diff', 'casenotrun'],
>> + defaults=('', '', '', ''))
>
> defaults was only introduced in Python 3.7, it seems.
hmm, yes
>
> Why not use a normal class
OK
>
>> +
>> +class TestRunner(AbstractContextManager['TestRunner']):
>> + def __init__(self, env: TestEnv, makecheck: bool = False) -> None:
>> + self.env = env
>> + self.test_run_env = self.env.get_env()
>> + if 'MALLOC_PERTURB_' not in os.environ and \
>> + 'MALLOC_PERTURB_' not in self.test_run_env:
>
> 'MALLOC_PERTURB_' is not in TestEnv.env_variables, so it will never be
> in self.test_run_env here.
Hmm, right..
>
>> + x = random.randrange(1, 255)
>> + self.test_run_env['MALLOC_PERTURB_'] = str(x)
I don't remember why this is in TestRunner and not in TestEnv. May be better to move this logic to TestEnv.
>> +
>> + self.makecheck = makecheck
>> +
>> + self.last_elapsed = LastElapsedTime('.last-elapsed-cache', env)
>> +
>> + def __enter__(self) -> 'TestRunner':
>> + # pylint: disable=attribute-defined-outside-init
>
> You can avoid this by declaring the attribute in __init__ without
> initialising it yet:
>
> self._stack: contextlib.ExitStack
OK
>
>> + self._stack = contextlib.ExitStack()
>> + self._stack.enter_context(self.env)
>> + self._stack.enter_context(self.last_elapsed)
>> + self._stack.enter_context(savetty())
>> + return self
>
> Kevin
>
--
Best regards,
Vladimir
next prev parent reply other threads:[~2021-01-22 14:24 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-16 13:44 [PATCH v7 00/11] Rework iotests/check Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 01/11] iotests/277: use dot slash for nbd-fault-injector.py running Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 02/11] iotests/303: use dot slash for qcow2.py running Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 03/11] iotests: fix some whitespaces in test output files Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 04/11] iotests: make tests executable Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 05/11] iotests/294: add shebang line Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 06/11] iotests: define group in each iotest Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 07/11] iotests: add findtests.py Vladimir Sementsov-Ogievskiy
2021-01-21 16:18 ` Eric Blake
2021-01-21 16:21 ` Eric Blake
2021-01-21 16:57 ` Vladimir Sementsov-Ogievskiy
2021-01-22 11:48 ` Kevin Wolf
2021-01-22 11:57 ` Vladimir Sementsov-Ogievskiy
2021-01-22 12:45 ` Kevin Wolf
2021-01-22 13:16 ` Vladimir Sementsov-Ogievskiy
2021-01-22 13:34 ` Kevin Wolf
2021-01-22 13:52 ` Vladimir Sementsov-Ogievskiy
2021-01-22 11:49 ` Kevin Wolf
2021-01-22 11:59 ` Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 08/11] iotests: add testenv.py Vladimir Sementsov-Ogievskiy
2021-01-21 16:48 ` Eric Blake
2021-01-21 17:03 ` Vladimir Sementsov-Ogievskiy
2021-01-22 14:34 ` Kevin Wolf
2021-01-16 13:44 ` [PATCH v7 09/11] iotests: add testrunner.py Vladimir Sementsov-Ogievskiy
2021-01-21 17:02 ` Eric Blake
2021-01-21 17:17 ` Vladimir Sementsov-Ogievskiy
2021-01-22 14:11 ` Kevin Wolf
2021-01-22 14:22 ` Vladimir Sementsov-Ogievskiy [this message]
2021-01-22 14:51 ` Kevin Wolf
2021-01-22 15:01 ` Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 10/11] iotests: rewrite check into python Vladimir Sementsov-Ogievskiy
2021-01-21 17:22 ` Eric Blake
2021-01-22 13:53 ` Vladimir Sementsov-Ogievskiy
2021-01-22 16:08 ` Kevin Wolf
2021-01-23 15:08 ` Vladimir Sementsov-Ogievskiy
2021-01-25 12:02 ` Kevin Wolf
2021-01-25 12:31 ` Vladimir Sementsov-Ogievskiy
2021-01-16 13:44 ` [PATCH v7 11/11] iotests: rename and move 169 and 199 tests Vladimir Sementsov-Ogievskiy
2021-01-20 20:52 ` [PATCH v7 00/11] Rework iotests/check Eric Blake
2021-01-22 11:27 ` Kevin Wolf
2021-01-22 11:32 ` Vladimir Sementsov-Ogievskiy
2021-01-22 16:08 ` Eric Blake
2021-01-22 16:18 ` Kevin Wolf
2021-01-21 15:08 ` Paolo Bonzini
2021-01-22 16:16 ` Kevin Wolf
2021-01-23 15:14 ` Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0084a070-e68e-0efc-b979-7b044ae31787@virtuozzo.com \
--to=vsementsov@virtuozzo.com \
--cc=den@openvz.org \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).