aboutsummaryrefslogtreecommitdiffstats
path: root/lib/test_bpf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/test_bpf.c')
-rw-r--r--lib/test_bpf.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/test_bpf.c b/lib/test_bpf.c
index 889bc31785be..be88cbaadde3 100644
--- a/lib/test_bpf.c
+++ b/lib/test_bpf.c
@@ -4504,6 +4504,44 @@ static struct bpf_test tests[] = {
4504 { }, 4504 { },
4505 { { 0, 1 } }, 4505 { { 0, 1 } },
4506 }, 4506 },
4507 {
4508 "JMP_JSGE_K: Signed jump: value walk 1",
4509 .u.insns_int = {
4510 BPF_ALU32_IMM(BPF_MOV, R0, 0),
4511 BPF_LD_IMM64(R1, -3),
4512 BPF_JMP_IMM(BPF_JSGE, R1, 0, 6),
4513 BPF_ALU64_IMM(BPF_ADD, R1, 1),
4514 BPF_JMP_IMM(BPF_JSGE, R1, 0, 4),
4515 BPF_ALU64_IMM(BPF_ADD, R1, 1),
4516 BPF_JMP_IMM(BPF_JSGE, R1, 0, 2),
4517 BPF_ALU64_IMM(BPF_ADD, R1, 1),
4518 BPF_JMP_IMM(BPF_JSGE, R1, 0, 1),
4519 BPF_EXIT_INSN(), /* bad exit */
4520 BPF_ALU32_IMM(BPF_MOV, R0, 1), /* good exit */
4521 BPF_EXIT_INSN(),
4522 },
4523 INTERNAL,
4524 { },
4525 { { 0, 1 } },
4526 },
4527 {
4528 "JMP_JSGE_K: Signed jump: value walk 2",
4529 .u.insns_int = {
4530 BPF_ALU32_IMM(BPF_MOV, R0, 0),
4531 BPF_LD_IMM64(R1, -3),
4532 BPF_JMP_IMM(BPF_JSGE, R1, 0, 4),
4533 BPF_ALU64_IMM(BPF_ADD, R1, 2),
4534 BPF_JMP_IMM(BPF_JSGE, R1, 0, 2),
4535 BPF_ALU64_IMM(BPF_ADD, R1, 2),
4536 BPF_JMP_IMM(BPF_JSGE, R1, 0, 1),
4537 BPF_EXIT_INSN(), /* bad exit */
4538 BPF_ALU32_IMM(BPF_MOV, R0, 1), /* good exit */
4539 BPF_EXIT_INSN(),
4540 },
4541 INTERNAL,
4542 { },
4543 { { 0, 1 } },
4544 },
4507 /* BPF_JMP | BPF_JGT | BPF_K */ 4545 /* BPF_JMP | BPF_JGT | BPF_K */
4508 { 4546 {
4509 "JMP_JGT_K: if (3 > 2) return 1", 4547 "JMP_JGT_K: if (3 > 2) return 1",