On Wed, Sep 22, 2021 at 9:39 AM Daniel Latypov dlatypov@google.com 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@google.com Tested-by: David Gow davidgow@google.com
Reviewed-by: Brendan Higgins brendanhiggins@google.com