Files
rust-vmm-ci/test_run.py
Catalin Dumitru d7ca3dc9f2 Add help option for scripts
Added help options -h, --help for the script that autogenerates
the pipeline and for the one that runs the tests locally. In the
former, replaced the module optparse (which is now deprecated)
with the module argparse.

Signed-off-by: Catalin Dumitru <catdum@amazon.com>
2021-09-01 14:29:22 +03:00

59 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python3
# Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause
import json
import subprocess
import platform
import pathlib
import unittest
from argparse import ArgumentParser, RawTextHelpFormatter
from textwrap import dedent
PARENT_DIR = pathlib.Path(__file__).parent.resolve()
class TestsContainer(unittest.TestCase):
pass
def make_test_function(command):
def test(self):
subprocess.run(command, shell=True, check=True)
return test
def retrieve_test_list(
config_file=f"{PARENT_DIR}/.buildkite/test_description.json"
):
with open(config_file) as jsonFile:
test_list = json.load(jsonFile)
jsonFile.close()
return test_list
if __name__ == '__main__':
help_text = dedent(
"""
This script allows running all the tests at once on the local machine.
The tests "test_benchmark.py" and "test_commit_format.py" work properly
on the local machine only when the environment variables REMOTE and
BASE_BRANCH are set. Otherwise the default values are "origin" for the
remote name of the upstream repository and "master" for the name of the
base branch, and these tests may not work as expected.
"""
)
parser = ArgumentParser(description=help_text,
formatter_class=RawTextHelpFormatter)
parser.parse_args()
test_config = retrieve_test_list()
for test in test_config['tests']:
command = test['command']
command = command.replace("{target_platform}", platform.machine())
test_func = make_test_function(command)
setattr(TestsContainer, 'test_{}'.format(test['test_name']), test_func)
unittest.main(verbosity=2)