Add tests for big-endian ints

This commit is contained in:
Andrey Konovalov 2016-10-11 21:01:21 +02:00
parent 7686d19aff
commit e4edb0e20b
2 changed files with 43 additions and 0 deletions

View File

@ -129,6 +129,28 @@ func TestSerializeForExec(t *testing.T) {
instrEOF,
},
},
{
"syz_test$end0(&(0x7f0000000000)={0x42, 0x42, 0x42, 0x42, 0x42})",
[]uint64{
instrCopyin, dataOffset + 0, argConst, 1, 0x42,
instrCopyin, dataOffset + 1, argConst, 2, 0x4200,
instrCopyin, dataOffset + 3, argConst, 4, 0x42000000,
instrCopyin, dataOffset + 7, argConst, 8, 0x4200000000000000,
instrCopyin, dataOffset + 15, argConst, 8, 0x4200000000000000,
callID("syz_test$end0"), 1, argConst, ptrSize, dataOffset,
instrEOF,
},
},
{
"syz_test$end1(&(0x7f0000000000)={0xe, 0x42, 0x1})",
[]uint64{
instrCopyin, dataOffset + 0, argConst, 2, 0x0e00,
instrCopyin, dataOffset + 2, argConst, 4, 0x42000000,
instrCopyin, dataOffset + 6, argConst, 8, 0x0100000000000000,
callID("syz_test$end1"), 1, argConst, ptrSize, dataOffset,
instrEOF,
},
},
}
for i, test := range tests {

View File

@ -166,3 +166,24 @@ syz_length_large_struct {
f1 int64
f2 array[int32, 8]
}
# Big endian.
syz_test$end0(a0 ptr[in, syz_end_int_struct])
syz_test$end1(a0 ptr[in, syz_end_var_struct])
syz_end_flags = 0, 1
syz_end_int_struct {
f0 int8
f1 int16be
f2 int32be
f3 int64be
f4 intptrbe
} [packed]
syz_end_var_struct {
f0 len[parent, int16be]
f1 const[0x42, int32be]
f2 flags[syz_end_flags, int64be]
} [packed]