]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/regression/bpf/bpf_filter/tests/test0023.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / regression / bpf / bpf_filter / tests / test0023.h
1 /*-
2  * Test 0023:   BPF_JMP+BPF_JSET+BPF_X
3  *
4  * $FreeBSD$
5  */
6
7 /* BPF program */
8 struct bpf_insn pc[] = {
9         BPF_STMT(BPF_LD+BPF_IMM, 0x01234567),
10         BPF_STMT(BPF_LDX+BPF_IMM, 0x80000000),
11         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 9, 0),
12         BPF_STMT(BPF_LDX+BPF_IMM, 0x40000000),
13         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 7, 0),
14         BPF_STMT(BPF_LDX+BPF_IMM, 0x20000000),
15         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 5, 0),
16         BPF_STMT(BPF_LDX+BPF_IMM, 0x10000000),
17         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 3, 0),
18         BPF_STMT(BPF_LDX+BPF_IMM, 0x1),
19         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0x1, 2, 1),
20         BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
21         BPF_STMT(BPF_RET+BPF_A, 0),
22         BPF_STMT(BPF_LDX+BPF_IMM, 0x08000000),
23         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 5, 0),
24         BPF_STMT(BPF_LDX+BPF_IMM, 0x04000000),
25         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 3, 0),
26         BPF_STMT(BPF_LDX+BPF_IMM, 0x02000000),
27         BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 1, 0),
28         BPF_STMT(BPF_LD+BPF_IMM, 0xc0decafe),
29         BPF_STMT(BPF_RET+BPF_A, 0),
30 };
31
32 /* Packet */
33 u_char  pkt[] = {
34         0x00,
35 };
36
37 /* Packet length seen on wire */
38 u_int   wirelen =       sizeof(pkt);
39
40 /* Packet length passed on buffer */
41 u_int   buflen =        sizeof(pkt);
42
43 /* Invalid instruction */
44 int     invalid =       0;
45
46 /* Expected return value */
47 u_int   expect =        0xc0decafe;
48
49 /* Expected signal */
50 int     expect_signal = 0;