• Yonghong Song's avatar
    tools/bpf: fix a test failure in selftests prog test_verifier · 35136920
    Yonghong Song authored
    Commit 111e6b45 ("selftests/bpf: make test_verifier run most programs")
    enables tools/testing/selftests/bpf/test_verifier unit cases to run
    via bpf_prog_test_run command. With the latest code base,
    test_verifier had one test case failure:
    
      ...
      #473/p check deducing bounds from const, 2 FAIL retval 1 != 0
      0: (b7) r0 = 1
      1: (75) if r0 s>= 0x1 goto pc+1
       R0=inv1 R1=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
      2: (95) exit
    
      from 1 to 3: R0=inv1 R1=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
      3: (d5) if r0 s<= 0x1 goto pc+1
       R0=inv1 R1=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
      4: (95) exit
    
      from 3 to 5: R0=inv1 R1=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
      5: (1f) r1 -= r0
      6: (95) exit
      processed 7 insns (limit 131072), stack depth 0
      ...
    
    The test case does not set return value in the test
    structure and hence the return value from the prog run
    is assumed to be 0. However, the actual return value is 1.
    As a result, the test failed. The fix is to correctly set
    the return value in the test structure.
    
    Fixes: 111e6b45 ("selftests/bpf: make test_verifier run most programs")
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    35136920
test_verifier.c 335 KB