• Stanislav Fomichev's avatar
    selftests/bpf: Fix a couple of broken test_btf cases · e1cebd84
    Stanislav Fomichev authored
    Commit 51c39bb1 ("bpf: Introduce function-by-function verification")
    introduced function linkage flag and changed the error message from
    "vlen != 0" to "Invalid func linkage" and broke some fake BPF programs.
    
    Adjust the test accordingly.
    
    AFACT, the programs don't really need any arguments and only look
    at BTF for maps, so let's drop the args altogether.
    
    Before:
    BTF raw test[103] (func (Non zero vlen)): do_test_raw:3703:FAIL expected
    err_str:vlen != 0
    magic: 0xeb9f
    version: 1
    flags: 0x0
    hdr_len: 24
    type_off: 0
    type_len: 72
    str_off: 72
    str_len: 10
    btf_total_size: 106
    [1] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
    [2] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=(none)
    [3] FUNC_PROTO (anon) return=0 args=(1 a, 2 b)
    [4] FUNC func type_id=3 Invalid func linkage
    
    BTF libbpf test[1] (test_btf_haskv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_haskv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    BTF libbpf test[2] (test_btf_newkv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_newkv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    BTF libbpf test[3] (test_btf_nokv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_nokv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    
    Fixes: 51c39bb1 ("bpf: Introduce function-by-function verification")
    Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200422003753.124921-1-sdf@google.com
    e1cebd84
test_btf_haskv.c 885 Bytes