On Wed, Sep 22, 2021 at 9:39 AM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote: > > Problem: > > What does this do? > $ kunit.py run --json > Well, it runs all the tests and prints test results out as JSON. > > And next is > $ kunit.py run my-test-suite --json > This runs just `my-test-suite` and prints results out as JSON. > > But what about? > $ kunit.py run --json my-test-suite > This runs all the tests and stores the json results in a "my-test-suite" > file. > > Why: > --json, and now --raw_output are actually string flags. They just have a > default value. --json in particular takes the name of an output file. > > It was intended that you'd do > $ kunit.py run --json=my_output_file my-test-suite > if you ever wanted to specify the value. > > Workaround: > It doesn't seem like there's a way to make > https://docs.python.org/3/library/argparse.html only accept arg values > after a '='. > > I believe that `--json` should "just work" regardless of where it is. > So this patch automatically rewrites a bare `--json` to `--json=stdout`. > > That makes the examples above work the same way. > Add a regression test that can catch this for --raw_output. > > Fixes: 6a499c9c42d0 ("kunit: tool: make --raw_output support only showing kunit output") > Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx> > Tested-by: David Gow <davidgow@xxxxxxxxxx> Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>