aboutsummaryrefslogtreecommitdiffstats
path: root/prog/encoding_test.go
diff options
context:
space:
mode:
authorHrutvik Kanabar <hrutvik@google.com>2022-10-25 10:14:37 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2022-11-21 11:06:14 +0100
commit1360be3b26a4fe8a3ece98440df5a82253ac23ba (patch)
tree3f74edd01515b27685fd7ba888c899c066b835a5 /prog/encoding_test.go
parentd0405298b24db0e2a6b2abfdc8c7e5ebbe49d1a0 (diff)
prog: introduce new Base64 syntax for data
The new "$..." syntax is read as a Base64 encoding binary data. Note that users cannot specify the size of the Base64 syntax using the `"..."/<size>` notation. When serialising programs to human-readable form, only compressed types (determined by `IsCompressed()`) are represented using the new Base64 notation. Also add a couple of serialisation tests, checking behaviour for compressed and non-compressed types.
Diffstat (limited to 'prog/encoding_test.go')
-rw-r--r--prog/encoding_test.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/prog/encoding_test.go b/prog/encoding_test.go
index 4717c402b..4cb836922 100644
--- a/prog/encoding_test.go
+++ b/prog/encoding_test.go
@@ -36,7 +36,7 @@ func TestSerializeData(t *testing.T) {
if !p.Scan() {
t.Fatalf("parser does not scan")
}
- data1, err := p.deserializeData()
+ data1, _, err := p.deserializeData()
if err != nil {
t.Fatalf("failed to deserialize %q -> %s: %v", data, buf.Bytes(), err)
}
@@ -344,6 +344,13 @@ func TestSerializeDeserialize(t *testing.T) {
In: `serialize1(&(0x7f0000000000)="0000000000000000", 0x8)`,
Out: `serialize1(&(0x7f0000000000)=""/8, 0x8)`,
},
+ {
+ In: `serialize2(&(0x7f0000000000)="$c3l6a2FsbGVy")`,
+ Out: `serialize2(&(0x7f0000000000)='syzkaller')`,
+ },
+ {
+ In: `serialize3(&(0x7f0000000000)="$eJwqrqzKTszJSS0CBAAA//8TyQPi")`,
+ },
})
}