Skip to content

Commit

Permalink
selftests: bpf: Make reuseport test output more legible
Browse files Browse the repository at this point in the history
Include the name of the mismatching result in human readable format
when reporting an error. The new output looks like the following:

  unexpected result
   result: [1, 0, 0, 0, 0, 0]
  expected: [0, 0, 0, 0, 0, 0]
  mismatch on DROP_ERR_INNER_MAP (bpf_prog_linum:153)
  check_results:FAIL:382

Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20200124112754.19664-4-lmb@cloudflare.com
  • Loading branch information
Lorenz Bauer authored and Daniel Borkmann committed Jan 24, 2020
1 parent 8bec4f6 commit 603fba9
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions tools/testing/selftests/bpf/prog_tests/select_reuseport.c
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,26 @@ static void check_data(int type, sa_family_t family, const struct cmd *cmd,
expected.len, result.len, get_linum());
}

static const char *result_to_str(enum result res)
{
switch (res) {
case DROP_ERR_INNER_MAP:
return "DROP_ERR_INNER_MAP";
case DROP_ERR_SKB_DATA:
return "DROP_ERR_SKB_DATA";
case DROP_ERR_SK_SELECT_REUSEPORT:
return "DROP_ERR_SK_SELECT_REUSEPORT";
case DROP_MISC:
return "DROP_MISC";
case PASS:
return "PASS";
case PASS_ERR_SK_SELECT_REUSEPORT:
return "PASS_ERR_SK_SELECT_REUSEPORT";
default:
return "UNKNOWN";
}
}

static void check_results(void)
{
__u32 results[NR_RESULTS];
Expand Down Expand Up @@ -351,10 +371,10 @@ static void check_results(void)
printf(", %u", expected_results[i]);
printf("]\n");

RET_IF(expected_results[broken] != results[broken],
"unexpected result",
"expected_results[%u] != results[%u] bpf_prog_linum:%ld\n",
broken, broken, get_linum());
printf("mismatch on %s (bpf_prog_linum:%ld)\n", result_to_str(broken),
get_linum());

CHECK_FAIL(true);
}

static int send_data(int type, sa_family_t family, void *data, size_t len,
Expand Down

0 comments on commit 603fba9

Please sign in to comment.