Commit 4bbbf164 authored by Daniel Borkmann's avatar Daniel Borkmann Committed by Alexei Starovoitov
Browse files

bpf: Add loop test case with 32 bit reg comparison against 0



Add a loop test with 32 bit register against 0 immediate:

  # ./test_verifier 631
  #631/p taken loop with back jump to 1st insn, 2 OK

Disassembly:

  [...]
  1b:	test   %edi,%edi
  1d:	jne    0x0000000000000014
  [...]

Pretty much similar to prior "taken loop with back jump to 1st
insn" test case just as jmp32 variant.

Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
parent 38f51c07
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -187,3 +187,20 @@
	.prog_type = BPF_PROG_TYPE_XDP,
	.retval = 55,
},
{
	"taken loop with back jump to 1st insn, 2",
	.insns = {
	BPF_MOV64_IMM(BPF_REG_1, 10),
	BPF_MOV64_IMM(BPF_REG_2, 0),
	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
	BPF_EXIT_INSN(),
	BPF_ALU64_REG(BPF_ADD, BPF_REG_2, BPF_REG_1),
	BPF_ALU64_IMM(BPF_SUB, BPF_REG_1, 1),
	BPF_JMP32_IMM(BPF_JNE, BPF_REG_1, 0, -3),
	BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
	BPF_EXIT_INSN(),
	},
	.result = ACCEPT,
	.prog_type = BPF_PROG_TYPE_XDP,
	.retval = 55,
},