lkml.org 
[lkml]   [2020]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 015/108] selftests/bpf: Fix test_progs's parsing of test numbers
    Date
    From: Andrii Nakryiko <andriin@fb.com>

    [ Upstream commit fc32490bff855a539d253c8a52c5a1ba51d1325a ]

    When specifying disjoint set of tests, test_progs doesn't set skipped test's
    array elements to false. This leads to spurious execution of tests that should
    have been skipped. Fix it by explicitly initializing them to false.

    Fixes: 3a516a0a3a7b ("selftests/bpf: add sub-tests support for test_progs")
    Signed-off-by: Andrii Nakryiko <andriin@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Link: https://lore.kernel.org/bpf/20200314013932.4035712-2-andriin@fb.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/testing/selftests/bpf/test_progs.c | 13 +++++++------
    1 file changed, 7 insertions(+), 6 deletions(-)

    diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
    index 3bf18364c67c9..751be17980a91 100644
    --- a/tools/testing/selftests/bpf/test_progs.c
    +++ b/tools/testing/selftests/bpf/test_progs.c
    @@ -361,7 +361,7 @@ static int libbpf_print_fn(enum libbpf_print_level level,

    int parse_num_list(const char *s, struct test_selector *sel)
    {
    - int i, set_len = 0, num, start = 0, end = -1;
    + int i, set_len = 0, new_len, num, start = 0, end = -1;
    bool *set = NULL, *tmp, parsing_end = false;
    char *next;

    @@ -396,18 +396,19 @@ int parse_num_list(const char *s, struct test_selector *sel)
    return -EINVAL;

    if (end + 1 > set_len) {
    - set_len = end + 1;
    - tmp = realloc(set, set_len);
    + new_len = end + 1;
    + tmp = realloc(set, new_len);
    if (!tmp) {
    free(set);
    return -ENOMEM;
    }
    + for (i = set_len; i < start; i++)
    + tmp[i] = false;
    set = tmp;
    + set_len = new_len;
    }
    - for (i = start; i <= end; i++) {
    + for (i = start; i <= end; i++)
    set[i] = true;
    - }
    -
    }

    if (!set)
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-04-12 01:33    [W:2.720 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site