selftests/bpf: make veristat emit all stats in CSV mode by default

Make veristat distinguish between table and CSV output formats and use
different default set of stats (columns) that are emitted. While for
human-readable table output it doesn't make sense to output all known
stats, it is very useful for CSV mode to record all possible data, so
that it can later be queried and filtered in replay or comparison mode.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20221103055304.2904589-8-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
Andrii Nakryiko 2022-11-02 22:53:01 -07:00 committed by Alexei Starovoitov
parent 1bb4ec8150
commit 77534401d6

View File

@ -501,6 +501,15 @@ static const struct stat_specs default_output_spec = {
},
};
static const struct stat_specs default_csv_output_spec = {
.spec_cnt = 9,
.ids = {
FILE_NAME, PROG_NAME, VERDICT, DURATION,
TOTAL_INSNS, TOTAL_STATES, PEAK_STATES,
MAX_STATES_PER_INSN, MARK_READ_MAX_LEN,
},
};
static const struct stat_specs default_sort_spec = {
.spec_cnt = 2,
.ids = {
@ -1561,8 +1570,12 @@ int main(int argc, char **argv)
if (env.verbose && env.log_level == 0)
env.log_level = 1;
if (env.output_spec.spec_cnt == 0)
env.output_spec = default_output_spec;
if (env.output_spec.spec_cnt == 0) {
if (env.out_fmt == RESFMT_CSV)
env.output_spec = default_csv_output_spec;
else
env.output_spec = default_output_spec;
}
if (env.sort_spec.spec_cnt == 0)
env.sort_spec = default_sort_spec;