aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-testbuild/testbuild.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/osutil: make VerboseError nest other errorsAleksandr Nogikh2025-10-011-1/+1
| | | | | After this change it fits more naturally into the Go's error functionality.
* tools: repair syz-testbuildAleksandr Nogikh2025-04-221-5/+16
| | | | | | 1. Properly set up a manager config. 2. Use clang/ld.lld by default. 3. Set the right boot partition for qemu VMs.
* pkg/vcs: change HeadCommit to CommitDmitry Vyukov2024-10-151-1/+1
| | | | | | | Currently we have HeadCommit function that returns info about the HEAD commit. Change it to a more flexible Commit function that can return info about any commit. This will be used in future changes.
* pkg/build: use the build environment in clean() callsFlorent Revest2024-10-141-6/+6
| | | | | | This unifies the build() and clean() interfaces such that if a custom compiler or make binary is provided in the manager or bisection config, they can be taken into account by the clean() interface.
* pkg/ipc: remove ExecOptsDmitry Vyukov2024-05-211-1/+1
| | | | Switch to flatrpc.ExecOpts.
* all: use errors.As instead of .(type)Taras Madan2023-07-241-13/+18
|
* syz-ci: specify per-manager bisection backportsAleksandr Nogikh2023-07-201-1/+1
| | | | | | | | It might be the case that the kernels that are being fuzzed on syz-ci require their own backports to build/test older revisions during bisection. Let users specify it in the syz-ci config.
* all: ioutil is deprecated in go1.19 (#3718)Taras Madan2023-02-231-3/+2
|
* syz-ci: gate concurrent env.Test executionsAleksandr Nogikh2023-01-191-1/+1
| | | | This will help reduce the number of overcommitted VMs.
* syz-ci: move build semaphore closer to buildsAleksandr Nogikh2023-01-191-7/+7
| | | | | | | | Currently it's held during the whole job processing, which can take too long. Adjust it so that it's only taken when we really begin to build the kernel or syzkaller.
* pkg/instance: move BuildKernel() args to structSpace Meyer2023-01-091-2/+9
|
* syz-ci/jobs: use linker supplied in syz-ci configSpace Meyer2023-01-091-2/+2
| | | | | | Previously we only used the linter from the syz-ci config when building the kernel for regular fuzzing. We were missing some plumbing to have this setting reach patch testing and bisection jobs.
* pkg/bisect: use default compiler during bisection where possibleSpace Meyer2022-10-071-1/+2
| | | | | | | This allows us to bisect at least recently introduced bugs, where the manager that found the bug uses a non standard compiler. This is usefull during development of a new sanitizer for which a compiler with non-upstreamed patches is required.
* pkg/bisect: support clang for crash bisectionSpace Meyer2022-09-011-2/+2
| | | | | Before we hardcoded bisection to use gcc, now the compiler family can be configured in the bisection config.
* pkg/csource, pkg/instance, pkg/ipc, pkg/mgrconfig, tools/syz-prog2c, ↵Andrey Artemiev2022-08-061-12/+14
| | | | syz-manager: introduce a new setting 'sandbox_arg' (#3263)
* all: remember console output for all patch testsAleksandr Nogikh2022-06-081-2/+2
| | | | | | Currently syzbot only saves a log if there was a build/test error. Closes #3185
* tools/syz-testbuild: fix a typo in error messageDmitry Vyukov2021-01-291-1/+1
|
* all: use tool.Failf instead of local functionsDmitry Vyukov2020-12-251-21/+13
|
* pkg/mgrconfig: add prog&sys.targets targets to ConfigDmitry Vyukov2020-11-301-1/+1
| | | | | | These are widely used with the config as the refactoring shows. This removes a bunch of unnecessary code. Also fixes a number of bugs where we confused Arch with VMArch.
* pkg/mgrconfig: move derived fields into separate structDmitry Vyukov2020-11-301-15/+17
| | | | | | Users should not be concerned with the internal derived fields. Move all derived fields into a separate struct before adding more. This leaves config.go as a better documentation for end users.
* pkg/bisect: add ccache optionJouni Hogander2020-09-211-1/+1
| | | | | | Add option to use ccache in kernel builds. Signed-off-by: Jouni Hogander <jouni.hoegander@partner.bmw.de>
* pkg/bisect: detect wrong bisectionsDmitry Vyukov2019-11-071-2/+2
| | | | | | | | Detect bisection to merge commits and to commits that don't affect kernel binary (comments, other arches, whitespaces, etc). Such bisections are not reported in emails (but shown on web). Update #1271
* tools/syz-testbuild: fix too long lineDmitry Vyukov2019-10-221-1/+2
|
* pkg/vcs: make EnvForCommit return full compiler pathDmitry Vyukov2019-10-221-4/+2
| | | | | | | All callers of EnvForCommit need the compiler path, so move this logic into EnvForCommit to avoid duplication. Also simplifies tests because test impl can now return an empty compiler (which should be unused).
* pkg/bisect: add initial testing support for cause bisectionZubin Mithra2019-10-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | (note: incomplete change) Refactor existing code as follows: * Move reusable test utility functions from git_repo_test.go to pkg/vcs/test_util.go and make them exported. * Split Run() into Run()+runImpl(). * Change type of bisect.go:env.inst to `instance.BuilderTester`. Change usage inside syz-testbuild/testbuild.go accordingly. * Move most of linux.PreviousReleaseTags() into vcs/git.go as git.previousReleaseTags(). * Allow build.CompilerIdentity to be mocked. Introduce the following changes: * instance.BuilderTester is an interface with methods BuildSyzkaller() BuildKernel() Test() NewEnv() now returns this interface. * type testEnv implements instance.BuilderTester. * type testBuilder implements builder interface. Add a entry into table inside pkg/build/build.go:getBuilder() to return testBuilder object.
* syz-ci: don't assume kernel config is called .configDmitry Vyukov2019-05-121-1/+1
| | | | | .config is linux-ism. We have a convention that kernel config is copied to kernel.config file. Use it.
* tools/syz-testbuild: add utility for kernel build testingDmitry Vyukov2019-03-171-0/+204
syz-testbuild tests kernel build/boot on releases as it will be done by pkg/bisect. This allows to ensure that, for example, a change to kernel config won't break build/boot on older releases and consequently won't break bisection process. The binary needs to run under root because it creates images. The kernel checkout given to the tool will be cleaned and used for in-tree builds. Example invocation: sudo syz-testbuild -kernel_src $LINUX_CHECKOUT \ -config dashboard/config/upstream-kasan.config \ -sysctl dashboard/config/upstream.sysctl \ -cmdline dashboard/config/upstream-apparmor.cmdline \ -userspace $WHEEZY_USERSPACE \ -bisect_bin $BISECT_BIN A suitable wheezy userspace can be downloaded from: https://storage.googleapis.com/syzkaller/wheezy.tar.gz A set of binaries required for bisection (older compilers) can be downloaded from: https://storage.googleapis.com/syzkaller/bisect_bin.tar.gz