aboutsummaryrefslogtreecommitdiffstats
path: root/sys/test
diff options
context:
space:
mode:
authorJiao, Joey <quic_jiangenj@quicinc.com>2024-11-06 13:41:21 +0800
committerAleksandr Nogikh <nogikh@google.com>2024-11-13 11:16:59 +0000
commit4dfba277487a7023ab9f5783302da4a9b5e9bef8 (patch)
tree72c5a0b86f7e38922230b4421ebe50c5654e5cdc /sys/test
parentbb3f84250514d5990939e57b5d1ff8badc566033 (diff)
all: support || operator in syzlang if condition
ex. f3 field has logic or operator in if condition: conditional_struct { mask int32 f1 field1 (if[value[mask] & FIELD_FLAG1]) f2 int64 (if[value[mask] & FIELD_FLAG2]) f3 int64 (if[value[mask] == FIELD_FLAG1 || value[mask] == FIELD_FLAG2]) } [packed]
Diffstat (limited to 'sys/test')
-rw-r--r--sys/test/expressions.txt1
-rw-r--r--sys/test/test/expressions8
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/test/expressions.txt b/sys/test/expressions.txt
index 500bdec20..c2ed572e4 100644
--- a/sys/test/expressions.txt
+++ b/sys/test/expressions.txt
@@ -14,6 +14,7 @@ conditional_struct {
mask int32
f1 field1 (if[value[mask] & FIELD_FLAG1])
f2 int64 (if[value[mask] & FIELD_FLAG2])
+ f3 int32 (if[value[mask] == FIELD_FLAG1 || value[mask] == FIELD_FLAG2])
} [packed]
resource some_res[int32]
diff --git a/sys/test/test/expressions b/sys/test/test/expressions
index 63100c05c..0625be415 100644
--- a/sys/test/test/expressions
+++ b/sys/test/test/expressions
@@ -1,9 +1,9 @@
# requires: -bigendian
-syz_compare(&AUTO="00000000", 0x4, &AUTO=@conditional={0x0, @void, @void}, AUTO)
-syz_compare(&AUTO="02000000ffffffff", 0x8, &AUTO=@conditional={0x2, @value={AUTO}, @void}, AUTO)
-syz_compare(&AUTO="04000000aaaa000000000000", 0xc, &AUTO=@conditional={0x4, @void, @value=0xaaaa}, AUTO)
-syz_compare(&AUTO="06000000ffffffffaaaa000000000000", 0x10, &AUTO=@conditional={0x6, @value={AUTO}, @value=0xaaaa}, AUTO)
+syz_compare(&AUTO="00000000", 0x4, &AUTO=@conditional={0x0, @void, @void, @void}, AUTO)
+syz_compare(&AUTO="02000000ffffffff56340000", 0xc, &AUTO=@conditional={0x2, @value={AUTO}, @void, @value=0x3456}, AUTO)
+syz_compare(&AUTO="04000000aaaa00000000000056340000", 0x10, &AUTO=@conditional={0x4, @void, @value=0xaaaa, @value=0x3456}, AUTO)
+syz_compare(&AUTO="06000000ffffffffaaaa000000000000", 0x10, &AUTO=@conditional={0x6, @value={AUTO}, @value=0xaaaa, @void}, AUTO)
syz_compare(&AUTO="00ff0000", 0x4, &AUTO=@conditional2={0x0, @void, 0xff}, AUTO)
syz_compare(&AUTO="0134120000ff0000", 0x8, &AUTO=@conditional2={0x1, @value=0x1234, 0xff}, AUTO)
syz_compare(&AUTO="1100220000330000", 0x8, &AUTO=@conditional3={0x11, {0x0, @void, 0x22}, 0x33}, AUTO)