On Sat, Feb 9, 2019 at 6:31 AM Waldemar Kozaczuk <[email protected]> wrote:
> This patch enhances scripts/test.py to allow passing > extra arguments to run.py. This allows executing running > unit tests with different than default parameters. > > See examples below how to run tests with different > virtio configuration: > > ./scripts/test.py --run_options '--virtio legacy' > ./scripts/test.py --run_options '--virtio modern' > ./scripts/test.py --run_options '--virtio modern -S' > > Signed-off-by: Waldemar Kozaczuk <[email protected]> > --- > scripts/test.py | 8 +++++++- > scripts/tests/testing.py | 10 +++++++--- > 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/scripts/test.py b/scripts/test.py > index 5f8f0b6d..ffc95701 100755 > --- a/scripts/test.py > +++ b/scripts/test.py > @@ -57,6 +57,7 @@ def run_test(test): > > start = time.time() > try: > + test.set_run_py_args(run_py_args) > test.run() > except: > sys.stdout.write("Test %s FAILED\n" % test.name) > @@ -75,7 +76,7 @@ def run_tests_in_single_instance(): > run(filter(lambda test: not isinstance(test, TestRunnerTest), tests)) > > blacklist_tests = ' '.join(blacklist) > - args = ["-s", "-e", "/testrunner.so -b %s" % (blacklist_tests)] > + args = run_py_args + ["-s", "-e", "/testrunner.so -b %s" % > (blacklist_tests)] > if subprocess.call(["./scripts/run.py"] + args): > exit(1) > > @@ -182,6 +183,11 @@ if __name__ == "__main__": > parser.add_argument("-s", "--single", action="store_true", help="run > as much tests as possible in a single OSv instance") > parser.add_argument("-n", "--nfs", action="store_true", help="run > nfs test in a single OSv instance") > parser.add_argument("--name", action="store", help="run all tests > whose names match given regular expression") > + parser.add_argument("--run_options", action="store", help="pass extra > options to run.py") > cmdargs = parser.parse_args() > set_verbose_output(cmdargs.verbose) > + if cmdargs.run_options != None: > + run_py_args = cmdargs.run_options.split() > This split() will cause headaches if we ever want to pass a single option with a space in it to run.py. But I don't have an actual example of an actual run.py option that would care about this, so I think this is good enough for now, and I'll commit it. + else: > + run_py_args = [] > main() > diff --git a/scripts/tests/testing.py b/scripts/tests/testing.py > index 6d73e41c..587366b5 100644 > --- a/scripts/tests/testing.py > +++ b/scripts/tests/testing.py > @@ -16,6 +16,10 @@ class TestFailed(Exception): > class Test(object): > def __init__(self, name): > self.name = name > + self.run_py_args = [] > + > + def set_run_py_args(self, args): > + self.run_py_args = args > > def run(self): > pass > @@ -26,7 +30,7 @@ class SingleCommandTest(Test): > self.command = command > > def run(self): > - run_command_in_guest(self.command).join() > + run_command_in_guest(self.command, > run_py_args=self.run_py_args).join() > > class test(Test): > """ > @@ -182,7 +186,7 @@ def run_command_in_guest(command, **kwargs): > > class Guest(SupervisedProcess): > def __init__(self, args, forward=[], hold_with_poweroff=False, > show_output_on_error=True, > - scan_for_failed_to_load_object_error=True): > + scan_for_failed_to_load_object_error=True, > run_py_args=[]): > > run_script = os.path.join(osv_base, "scripts/run.py") > > @@ -197,7 +201,7 @@ class Guest(SupervisedProcess): > > args.extend(['--unsafe-cache']) > > - SupervisedProcess.__init__(self, [run_script] + args, > + SupervisedProcess.__init__(self, [run_script] + run_py_args + > args, > show_output=_verbose_output, > show_output_on_error=show_output_on_error, > > scan_for_failed_to_load_object_error=scan_for_failed_to_load_object_error) > -- > 2.19.1 > > -- > You received this message because you are subscribed to the Google Groups > "OSv Development" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
