Skip to content

Commit 123c47e

Browse files
committed
Add YAML tests for packet access instructions
Signed-off-by: Dave Thaler <[email protected]>
1 parent 7fd2c49 commit 123c47e

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

src/ebpf_yaml.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ static ebpf_verifier_options_t raw_options_to_options(const std::set<string>& ra
169169
// All YAML tests use no_simplify and !setup_constraints.
170170
options.no_simplify = true;
171171
options.setup_constraints = false;
172+
options.legacy = true;
172173

173174
for (const string& name : raw_options) {
174175
if (name == "!allow_division_by_zero") {

test-data/packet.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,105 @@ post: [
106106
"r3.svalue=r3.uvalue",
107107
"r2.packet_offset-r3.packet_offset<=65526", "r3.packet_offset-r2.packet_offset<=8"
108108
]
109+
---
110+
test-case: legacy 1 byte packet access imm
111+
112+
pre: [
113+
"r1.type=number",
114+
"r6.type=ctx", "r6.ctx_offset=0"
115+
]
116+
117+
code:
118+
<start>: |
119+
r0 = *(u8 *)skb[23]
120+
121+
post: [
122+
"r0.type=number",
123+
"r6.type=ctx", "r6.ctx_offset=0"
124+
]
125+
---
126+
test-case: legacy 2 byte packet access imm
127+
128+
pre: [
129+
"r1.type=number",
130+
"r6.type=ctx", "r6.ctx_offset=0"
131+
]
132+
133+
code:
134+
<start>: |
135+
r0 = *(u16 *)skb[23]
136+
137+
post: [
138+
"r0.type=number",
139+
"r6.type=ctx", "r6.ctx_offset=0"
140+
]
141+
---
142+
test-case: legacy 4 byte packet access imm
143+
144+
pre: [
145+
"r1.type=number",
146+
"r6.type=ctx", "r6.ctx_offset=0"
147+
]
148+
149+
code:
150+
<start>: |
151+
r0 = *(u32 *)skb[23]
152+
153+
post: [
154+
"r0.type=number",
155+
"r6.type=ctx", "r6.ctx_offset=0"
156+
]
157+
---
158+
test-case: legacy 1 byte packet access reg
159+
160+
pre: [
161+
"r1.type=number",
162+
"r6.type=ctx", "r6.ctx_offset=0",
163+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
164+
]
165+
166+
code:
167+
<start>: |
168+
r0 = *(u8 *)skb[r7]
169+
170+
post: [
171+
"r0.type=number",
172+
"r6.type=ctx", "r6.ctx_offset=0",
173+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
174+
]
175+
---
176+
test-case: legacy 2 byte packet access reg
177+
178+
pre: [
179+
"r1.type=number",
180+
"r6.type=ctx", "r6.ctx_offset=0",
181+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
182+
]
183+
184+
code:
185+
<start>: |
186+
r0 = *(u16 *)skb[r7]
187+
188+
post: [
189+
"r0.type=number",
190+
"r6.type=ctx", "r6.ctx_offset=0",
191+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
192+
]
193+
---
194+
test-case: legacy 4 byte packet access reg
195+
196+
pre: [
197+
"r1.type=number",
198+
"r6.type=ctx", "r6.ctx_offset=0",
199+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
200+
]
201+
202+
code:
203+
<start>: |
204+
r0 = *(u32 *)skb[r7]
205+
206+
post: [
207+
"r0.type=number",
208+
"r6.type=ctx", "r6.ctx_offset=0",
209+
"r7.type=number", "r7.svalue=23", "r7.uvalue=23"
210+
]

0 commit comments

Comments
 (0)