aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cover/cover.go
Commit message (Collapse)AuthorAgeFilesLines
* all: fix recvcheck errorsTaras Madan2025-02-071-3/+3
|
* pkg/fuzzer: refactor deflake testsDmitry Vyukov2024-06-031-0/+6
| | | | | Convert tests to table tests to avoid duplication and make it easier to add new tests.
* all: adapt all cover and sig to 64bitJoey Jiao2024-05-271-5/+5
| | | | | | | | | | | | | | | | | | Taken some arm64 devices for example: kaslr_offset is diff at bits 12-40, and kernel modules are loaded at 2GB space, so we have `ffffffd342e10000 T _stext` where uppper 32bit is ffffffd3. However, if we check modules range, the 1st module is loaded at 0xffffffd2eeb2a000, while the last module is loaded at 0xffffffd2f42c4000. We can see the upper 32bits are diff for core kernel and modules. If we use current 32bits for covered PC, we will get wrong module address recovered. So we need to move to 64bit cover and signal: - change cover/sig to 64bit to fit for syz-executor change - remove kernel upper base logic as kernel upper base is not a constant when kaslr enabled for core kernel and modules. - remove unused pcBase
* pkg/mgrconfig: move Subsystem from pkg/coverDmitry Vyukov2021-03-181-5/+0
| | | | | | | | | | | | | | | | | | mgrconfig used to be "leaf" package that can be imported by anything. Recently it started importing pkg/cover for Subsystem definition. It leads to the following import cycle if I try to import pkg/host from pkg/cover: package github.com/google/syzkaller/pkg/bisect imports github.com/google/syzkaller/pkg/build imports github.com/google/syzkaller/pkg/mgrconfig imports github.com/google/syzkaller/pkg/cover imports github.com/google/syzkaller/pkg/host imports github.com/google/syzkaller/pkg/csource imports github.com/google/syzkaller/pkg/mgrconfig: import cycle not allowed Move Subsystem into pkg/mgrconfig itself.
* pkg/cover, syz-manager: show coverage summaryJoey Jiaojg2021-03-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pkg/cover, syz-manager: show coverage summary The funccover or cover page is not easy for statistic purpose. So add /cover?type=rawfiles to show coverage based on each file. And /cover?type=table page to show coverage for group of components. If driver_path_map.json exists, /cover?type=table can show component coverage. Format example: { "all": [ "/" ], "audio": [ "/techpack/audio/asoc", "/techpack/audio/dsp", "/techpack/audio/ipc", "/sound/core" ] } If driver_path_map.json not exist, it will show one line summary. * pkg/cover: use subsystem naming * syz-manager: use /subsystemcover and /filecover * pkg/cover: use subsystem from config * pkg/mgrconfig: add kernel_subsystem * pkg/cover, tools/syz-cover: fix make test * all: fix presumit errors * pkg/cover, syz-manager: fix subsystem
* pkg/cover: provide ReportGenerator.RestorePCDmitry Vyukov2020-12-131-4/+0
| | | | | | | Better encapsulate all of this logic instead of exposing raw .text offset and a bunch of functions. Also allows to support gvisor coverage where PCs don't need to be rewound to previous instruction.
* pkg/cover: add MergeDiff methodDmitry Vyukov2020-12-091-0/+19
| | | | Will be used in the next patch.
* all: fix dup types in func argsDmitry Vyukov2020-07-041-1/+1
|
* all: fix gometalinter warningsDmitry Vyukov2018-03-081-6/+6
| | | | Fix typos, non-canonical code, remove dead code, etc.
* syz-fuzzer: prioritize signal from successful syscallsDmitry Vyukov2018-02-201-168/+16
| | | | | Signal on successful syscalls is more valuable than signal on unsuccessful syscalls.y
* pkg/cover: move from coverDmitry Vyukov2017-06-171-0/+182