aboutsummaryrefslogtreecommitdiffstats
path: root/syz-verifier
Commit message (Collapse)AuthorAgeFilesLines
* all: remove loop variables scopingTaras Madan2025-02-172-2/+0
|
* vm: make sure vm.Pools are cleaned upCameron Finucane2024-09-191-0/+1
| | | | Add calls to Close() from all locations that call Create().
* syz-verifier: use ignore flag because go mod tidy knows itTaras Madan2024-07-0213-13/+13
|
* pkg/ipc: remove ProgInfoDmitry Vyukov2024-05-2114-3/+53
| | | | | | Switch to flatrpc.ProgInfo. Note: this disables syz-runtest and syz-verifier.
* syz-verifier: move the monitoring binding address to configurationAKSUM2024-05-061-3/+3
|
* pkg/rpctype: prepare for not using for target communicationDmitry Vyukov2024-05-031-1/+1
| | | | | | Remove things that are only needed for target VM communication: conditional compression, timeout scaling, traffic stats. To minimize diffs when we switch target VM communication to flatrpc.
* tools/syz-linter: check t.Logf/Errorf/Fatalf messagesDmitry Vyukov2024-04-172-2/+2
| | | | | Fix checking of Logf, it has string in 0-th arg. Add checking of t.Errorf/Fatalf.
* vm: combine Run and MonitorExecutionDmitry Vyukov2024-04-111-4/+1
| | | | | | All callers of Run always call MonitorExecution right after it. Combine these 2 methods. This allows to hide some implementation details and simplify users of vm package.
* syz-verifier: fix a typo in commentsAKSUM2024-04-031-1/+1
|
* pkg/rpctype: make RPC compression optionalDmitry Vyukov2024-04-031-1/+1
| | | | | | | | RPC compression take up to 10% of CPU time in profiles, but it's unlikely to be beneficial for local VM runs (we are mostly copying memory in this case). Enable RPC compression based on the VM type (local VM don't use it, remove machines use it).
* syz-verifier: fix a typo in testsAKSUM2024-03-261-1/+1
|
* syz-verifier: fix a typo in commentsAKSUM2024-03-141-1/+1
|
* syz-verifier/execresult_test.go: fix loop variable misuseTaras Madan2023-04-271-2/+28
|
* go.mod, vendor: update (#3358)Taras Madan2022-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * go.mod, vendor: remove unnecessary dependencies Commands: 1. go mod tidy 2. go mod vendor * go.mod, vendor: update cloud.google.com/go Commands: 1. go get -u cloud.google.com/go 2. go mod tidy 3. go mod vendor * go.mod, vendor: update cloud.google.com/* Commands: 1. go get -u cloud.google.com/storage cloud.google.com/logging 2. go mod tidy 3. go mod vendor * go.mod, .golangci.yml, vendor: update *lint* Commands: 1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0 2. go mod tidy 3. go mod vendor 4. edit .golangci.yml to suppress new errors (resolved in the same PR later) * all: fix lint errors hash.go: copy() recommended by gosimple parse.go: ent is never nil verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why. * .golangci.yml: adjust godot rules check-all is deprecated, but still work if you're hesitating too - I'll remove this commit
* syz-verifier: log only the first mismatch (#3055)Taras Madan2022-04-041-0/+4
| | | | | Closes #3054 Ignore all the consequent failures in the program execution log. Use only the first mismatch for analysis.
* syz-verifier: simplify Stats APITaras Madan2022-04-012-8/+8
|
* syz-verifier: fix stats access, remove racesTaras Madan2022-03-316-117/+232
| | | | Removed atomic operations. Added object level mutex.
* syz-verifier: add exectask.go tests, fix racesTaras Madan2022-03-314-25/+124
|
* Revert "syz-verifier/exectask.go: add tests" (#3050)Taras Madan2022-03-302-84/+1
| | | | This reverts commit 42718dd659525414aa0bf2794688ac94a32f7764. Original PR had a race.
* syz-verifier/exectask.go: add testsTaras Madan2022-03-302-1/+84
|
* all: use `t.TempDir` to create temporary test directoryEng Zer Jun2022-03-281-10/+1
| | | | | | | | | This commit replaces all `ioutil.TempDir` with `t.TempDir` in tests. The directory created by `t.TempDir` is automatically removed when the test and all its subtests complete. Reference: https://pkg.go.dev/testing#T.TempDir Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* syz-verifier: support multiple VMs (#3040)Taras Madan2022-03-221-10/+11
| | | | | | | | Reused config parameter "config.vm.count". Local fuzzing speed test result: 1 vm/pool => 380 programs/minute 2 vm/pool => 1050 programs/minute 4 vm/pool => 1600 programs/minute 8 vm/pool => 800 programs/minute
* syz-verifier: improve statistics (#3038)Taras Madan2022-03-225-28/+32
| | | | s/TotalMismatches/TotalCallMismatches/ for readability. Add ExecErrorProgs to count failures.
* syz-verifier: fix syscalls API mapping in test (#3037)Taras Madan2022-03-221-2/+2
|
* syz-verifier: redesigned the analysis program generation and analysis flow ↵Taras Madan2022-03-2210-802/+802
| | | | | | | | | (#2908) Program verification logic is located in one function now. VMs fetch programs from priority queues, not from the generator. VMs operate the tasks, not programs now. For the crashed VM - return error for every program in the queue *fixed some road errors
* syz-verifier: don't use -collide in the runner (#3032)Taras Madan2022-03-161-1/+1
|
* syz-verifier: fix testsDmitry Vyukov2022-01-111-3/+3
| | | | | | Dehardcode syscall indexes from the test. The indexes are not stable and change after descriptions change in unrelated ways.
* syzkaller: remove RPC prefix from rpctypes (#2929)Taras Madan2021-12-161-1/+1
| | | There is no need to use RPC prefix. It is already a part of the element path.
* syz-verifier: use int64 instead of int for statistics (#2924)Taras Madan2021-12-153-16/+16
| | | | | Currently we use int to aggregate statistics. Counters update require the lock() operation. Lets relax it and move to int64 + atomic.AddInt64().
* syz-verifier: add monitoring api (#2869)Taras Madan2021-11-095-8/+103
|
* syz-verifier: rename test_utils.go to utils_test.goDmitry Vyukov2021-11-081-0/+0
| | | | | | | | test_utils.go must be parts of tests (used only by tests), rather than of the binary itself. Currently it is part of the binary since it does not end with _test.go. This works with go tool, but confuses bazel+glaze which does not want to add test_utils.go into the test target.
* syz-verifier: remove temp test dirsDmitry Vyukov2021-11-081-0/+4
| | | | | | | | | | | | | The tests currently don't clean up old dir. Clean up old test dirs. There is a nice t.TempDir: https://pkg.go.dev/testing#T.TempDir but it's only Go 1.15. Cleanup was added in 1.14: https://pkg.go.dev/testing#T.Cleanup And we have exactly 1.14 in tools/old-env/Dockerfile.
* syz-verifier: fix use of the current dir in testDmitry Vyukov2021-11-081-8/+3
| | | | | The current dir is not necessary writable and is generally a bad place for temp files. Use a temp dir as scratch dir.
* syz-verifier: move select{} to main (#2858)Taras Madan2021-11-032-2/+2
|
* syz-verifier: move Verifier to verifier.goTaras Madan2021-10-152-242/+259
|
* syz-verifier: rename verifier.go and Result to better reflect internalsTaras Madan2021-10-156-63/+61
|
* syz-verifier: add rpcserver.go and move all the related stuff thereTaras Madan2021-10-152-202/+214
|
* syz-verifier: remove verifier, io and os/signal from the stats dependenciesTaras Madan2021-10-153-73/+91
|
* syz-verifier: change logger to support verbosity (#2809)tarasmadan2021-10-121-6/+6
|
* syz-verifier: fix qemu vm leakage (#2804)tarasmadan2021-10-071-27/+35
| | | | fix the VM resource leakage some refactoring
* syz-verifier: fixes the crash of the app run w/o parameters (#2800)tarasmadan2021-10-061-1/+6
| | | | | * syz-verifier: fixes the crash of the app run w/o parameters * syz-verifier: extend command line params description
* pkg/report: separate reporter wrapper from OS-specific implementationsAleksandr Nogikh2021-08-061-1/+1
| | | | | | | | | | | | | Currently a number of report post-processing activities are implemented as a decorator over the interface that defines OS-specific implementations. Following exactly the same interface is too restrictive in this case as adding extra parameters to the post-processing forces the developer to adjust all implementations thay may not need these parameters at all. Untie the wrapper from the Reporter interface. Use a package-private reporterImpl interface for the OS-specific implementations, while having an exported Reporter structure. Make sure that Reporter is stored and passed as a pointer.
* pkg/rpctype, syz-runner, syz-verifier: add reruns to syz-verifier architectureMara Mihali2021-08-067-137/+197
| | | | | | | When a mismatch is found in the results returned for a program, the program will be rerun on all the kernels to ensure the mismatch is not flaky (i.e. it didn't occur because of some background activity or external state and will always be returned when running the program). If the same mismatch occurs in all reruns, syz-verifier creates a report for the program, otherwise it discards the program as being flaky
* docs: add documentation for syz-verifierMara Mihali2021-08-051-0/+3
|
* syz-verifier: ensure Results are gathered and sent in orderMara Mihali2021-07-242-43/+63
| | | | | | | The field res from progInfo will store the result from Pool i at index i. This will make verifying results easier, especially after introducing reruns, as the result from a Pool will always be found at the same position.
* syz-verifier: change poolInfo.vmRunners from a slice to a mapMara Mihali2021-07-222-32/+26
| | | | | | | vmRunners holds what programs have been sent to each Runner. Previously, entries would only be removed from this map when a VM crashes as the programs were stored in a slice. Modified vmRunners to hold programs as a map in order to easily query and delete the entries.
* syz-verifier: include crashes in the results verificationMara Mihali2021-07-227-112/+180
|
* syz-verifier: modify mismatches calculationMara Mihali2021-07-221-2/+8
| | | | | | | Increment the number of Mismatches in Stats only once when mismatches are found for a system call, regardless of the number of kernels that returned mismatching ReturnStates because otherwise the number of mismatches would be incorrect and nondeterministic for more than two VMs.
* syz-verifier: gather stats based on ReturnState not just ErrnoMara Mihali2021-07-227-50/+63
|
* syz-verifier: move all files to main packageMara Mihali2021-07-227-164/+148
|