diff options
| author | Alexander Egorenov <eaibmz@gmail.com> | 2023-01-19 07:07:16 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2023-01-19 10:19:57 +0100 |
| commit | 62267f1427dd04f238043c6c9bd560c8c9d672fe (patch) | |
| tree | c7016fc0121a5710e82a868acae130884c46a402 /pkg/csource/csource_test.go | |
| parent | 66fca3ae88aae496528e07cfba7a69cb8ee3761e (diff) | |
pkg/csource: fix unit tests for arches with non-default DataOffset
The problem was introduced in 4620c2d9bc4f ("sys/targets: take DataOffset
from reference targets").
Example of the problem on s390x
-------------------------------
--- FAIL: TestSource (0.00s)
--- FAIL: TestSource/1 (0.00s)
csource_test.go:221: input:
csource2(&AUTO="12345678")
csource3(&AUTO)
csource4(&AUTO)
csource5(&AUTO)
csource6(&AUTO)
want:
NONFAILING(memcpy((void*)0x20000040, "\x12\x34\x56\x78", 4));
syscall(SYS_csource2, 0x20000040ul);
NONFAILING(memset((void*)0x20000080, 0, 10));
syscall(SYS_csource3, 0x20000080ul);
NONFAILING(memset((void*)0x200000c0, 48, 10));
syscall(SYS_csource4, 0x200000c0ul);
NONFAILING(memcpy((void*)0x20000100, "0101010101", 10));
syscall(SYS_csource5, 0x20000100ul);
NONFAILING(memcpy((void*)0x20000140, "101010101010", 12));
syscall(SYS_csource6, 0x20000140ul);
got:
NONFAILING(memcpy((void*)0xfffff040, "\x12\x34\x56\x78", 4));
syscall(SYS_csource2, 0xfffff040ul);
NONFAILING(memset((void*)0xfffff080, 0, 10));
syscall(SYS_csource3, 0xfffff080ul);
NONFAILING(memset((void*)0xfffff0c0, 48, 10));
syscall(SYS_csource4, 0xfffff0c0ul);
NONFAILING(memcpy((void*)0xfffff100, "0101010101", 10));
syscall(SYS_csource5, 0xfffff100ul);
NONFAILING(memcpy((void*)0xfffff140, "101010101010", 12));
syscall(SYS_csource6, 0xfffff140ul);
FAIL
coverage: 79.6% of statements
FAIL github.com/google/syzkaller/pkg/csource 9.930s
Fixes: 4620c2d9bc4f ("sys/targets: take DataOffset from reference targets")
Signed-off-by: Alexander Egorenkov <eaibmz@gmail.com>
Diffstat (limited to 'pkg/csource/csource_test.go')
| -rw-r--r-- | pkg/csource/csource_test.go | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/pkg/csource/csource_test.go b/pkg/csource/csource_test.go index 2d047cc10..3e2c75a23 100644 --- a/pkg/csource/csource_test.go +++ b/pkg/csource/csource_test.go @@ -188,18 +188,23 @@ csource4(&AUTO) csource5(&AUTO) csource6(&AUTO) `, - output: ` -NONFAILING(memcpy((void*)0x20000040, "\x12\x34\x56\x78", 4)); -syscall(SYS_csource2, 0x20000040ul); -NONFAILING(memset((void*)0x20000080, 0, 10)); -syscall(SYS_csource3, 0x20000080ul); -NONFAILING(memset((void*)0x200000c0, 48, 10)); -syscall(SYS_csource4, 0x200000c0ul); -NONFAILING(memcpy((void*)0x20000100, "0101010101", 10)); -syscall(SYS_csource5, 0x20000100ul); -NONFAILING(memcpy((void*)0x20000140, "101010101010", 12)); -syscall(SYS_csource6, 0x20000140ul); + output: fmt.Sprintf(` +NONFAILING(memcpy((void*)0x%x, "\x12\x34\x56\x78", 4)); +syscall(SYS_csource2, 0x%xul); +NONFAILING(memset((void*)0x%x, 0, 10)); +syscall(SYS_csource3, 0x%xul); +NONFAILING(memset((void*)0x%x, 48, 10)); +syscall(SYS_csource4, 0x%xul); +NONFAILING(memcpy((void*)0x%x, "0101010101", 10)); +syscall(SYS_csource5, 0x%xul); +NONFAILING(memcpy((void*)0x%x, "101010101010", 12)); +syscall(SYS_csource6, 0x%xul); `, + target.DataOffset+0x40, target.DataOffset+0x40, + target.DataOffset+0x80, target.DataOffset+0x80, + target.DataOffset+0xc0, target.DataOffset+0xc0, + target.DataOffset+0x100, target.DataOffset+0x100, + target.DataOffset+0x140, target.DataOffset+0x140), }, } for i, test := range tests { |
