1. use dataclasses as base schema, dataclasses_json for serialization,
and marshmallow for validation.
2. remove yaml format schema, add python schema.
3. use strong type to replace dict based code.
4. add platform schema and node schema for platform extension.
5. add _initialize for platform
6. init azure platform code.
7. other small improvements.
This adds support for GitHub’s CODEOWNERS, which is a file indicating
which GitHub users should be automatically added as reviewers to new
Pull Requests. It’s per-branch, meaning it applies only for changes made
in a branch which includes this file, so this will not affect ‘master’.
It is setup currently to add Chi, Leandro, and myself to all PRs to
‘main’ for LISAv3.
1. add environments, nodes, platforms classes like a collection.
2. add tools to use a tool like [ToolType], and move related code to
executable.
3. other minor improvements.
1. add testselector to deal with criteria and apply settings
2. improve logging to support ut.
3. remove TestSuiteData class, as it doesn't need.
4. add ut in github action.
5. other minor improvements.
Python file is a module, which is not used to put only one thing.
All related things should be put in same module.
platform.py causes error in uuid.py, so change name to platform_.py
1. add statistics and test result for test case progress
2. inherit from unittest to get all assert methods
3. add perf_timer for profiling, and improve current profiling
4. add document for tool.py
5. add init.py for mypy checking
6. other minor improvements
This gets around the problem of the branch protection rules requiring
these to run, which I can’t adjust because I’m not an admin.
Fortunately, these tests run really fast.
* Implement custom script
1. Implement custom script. As it's same type with different data, so it's different with tools. CustomScriptBuilder to create an instance of script on Node.
2. rename method and variables to follow pep8 guidaline.
3. rename [Suite/Case]Metadata to [TestSuite/TestCase]Metadata
4. create LisaException to all internal exceptions
5. other minor improvements
1. support remote file operations with shell
2. add shell to deal with different between local and remote
3. add git and ntttcp tools, ntttcp is a complex tool example
4. support remote file operations with shell
5. support shell execution on command
Also clean the stdout/stderr at its source, not when saving. Use
`strip()` with its default arguments (which strips surrounding
whitespace, not just carriage returns and newlines).
Which is Python’s canonical term for this logic. We ought to make as
many of these into context managers as possible, but for now let’s at
least use the expected names.
Using the Enum module’s functional API we can hide the implementation
details that it is technically a class and that the members are
internally represented as integers, providing a clearer abstraction.
While the documentation recommends that the `subprocess` module is used
via the `run()` interface, we are currently using the underlying `Popen`
interface. The documentation further recommends that if
`shell=True` (which is currently the case in our code), that the command
is passed directly as a string, not a split argument sequence. Using
this recommendation fixed the existing bug where the arguments were
being ignored on Linux (causing `uname` to print “Linux” and not the
kernel version, release, and hardware info). However, we need to revisit
our wrapping of `subprocess` because it is difficult to get right.