Commit Graph

1290 Commits

Author SHA1 Message Date
Dmitry Vyukov
b6e969be7a pkg/osutil: add helper function for SIGINT handling 2017-06-19 16:43:23 +02:00
Dmitry Vyukov
a89409fa44 pkg/log: add Fatal function
Replacement for Fatalf("%v", err).
2017-06-19 16:38:38 +02:00
Dmitry Vyukov
98bf8f451c pkg/git: check origin repo in Poll 2017-06-19 16:37:31 +02:00
Dmitry Vyukov
7e63cfac7f pkg/fileutil: improve CopyFile
- check Close error
- preserve modification time
2017-06-19 16:35:52 +02:00
Dmitry Vyukov
261cdc2564 pkg/config: add SaveFile function 2017-06-19 16:34:59 +02:00
Andrey Konovalov
81990cb633 repro: small log fix 2017-06-19 15:31:06 +02:00
Andrey Konovalov
a1e85a5688 repro: try more programs with short duration 2017-06-19 15:19:10 +02:00
Andrey Konovalov
864a841818 repro: split ctx.repro() into smaller methods 2017-06-19 14:51:53 +02:00
Andrey Konovalov
02483b6e8e repro: move duration to Result 2017-06-19 14:23:17 +02:00
Dmitry Vyukov
e130d95518 vm/gce: accept un-tar-ed image
vm/gce differs from other VM types in that it accepts image
in a weird, GCE-specific format (namely, image named disk.raw
is put into .tar.gz file). This makes it impossible to write
generic code that creates images for any VM types.

Make vm/gce accept just image like e.g. vm/qemu
and handle own specifics internally.
2017-06-17 17:06:29 +02:00
Dmitry Vyukov
017b5dea53 pkg/symbolizer: move from symbolizer 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
949ccff832 pkg/rpctype: from from rpctype 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
68621900a3 pkg/report: move from report 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
e8e63830a6 pkg/ipc: move from ipc 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
baad3b4b02 pkg/csource: move from csource 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
ec95d17c32 pkg/cover: move from cover 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
6fd7a75a91 pkg/repro: move from pkg 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
4b2a9e225c pkg/host: move from host 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
13c5bfcc6e pkg/osutil: add IsExist helper function 2017-06-17 12:11:24 +02:00
Dmitry Vyukov
4c571f8413 pkg/kernel: add an option to provide full config for build
Normally config is applied on top of defconfig+kvmconfig.
This allows to provide full config that is used unmodified.
2017-06-15 18:29:47 +02:00
Dmitry Vyukov
c8a3e46192 pkg/git: fix git fetch command line 2017-06-15 18:29:47 +02:00
Dmitry Vyukov
c64814428a pkg/kernel: skip test if gcc is not in PATH
gcc is not necessary available everywhere.
Skip the test instead of failing it.
2017-06-14 13:19:28 +02:00
Dmitry Vyukov
54e36636a1 syz-dash: move patch parsing to pkg/kernel
Patch parsing is not dashboard-specific and can
be reused by other programs.
2017-06-14 10:18:10 +02:00
Dmitry Vyukov
b512286f25 pkg/git: don't use --no-tags with clone
It's not supported in older versions of git.
2017-06-03 14:04:16 +02:00
Dmitry Vyukov
b6faa91366 pkg/gcs: remove support for gs:// prefixed paths
The problem with gs:// is that after any filepath.Join
it's transformed to gs:/ which is not recognized.
It's safer to not allow specifying them at all,
rather than constantly breaking them.
2017-06-03 13:16:39 +02:00
Dmitry Vyukov
b08ca73a6e pkg/config: support null values 2017-06-03 13:16:18 +02:00
Dmitry Vyukov
b68d01eea0 vm/gce: accept local image
Currently gce accepts precreated GCE image name as image config param,
while all other VM types accept local file path as image.
This makes it impossible to write generic code that works with all VM types,
i.e. after building a new image it's unclear if it needs to be uploaded
to GCE or not, and what needs to be passed as image in config.

Eliminate this difference by making gce accept local image file as well.
2017-06-03 11:48:19 +02:00
Dmitry Vyukov
af643baa32 vm: overhaul
VM infrastructure currently has several problems:
 - Config struct is complete mess with a superset of params for all VM types
 - verification of Config is mess spread across several places
 - there is no place where VM code could do global initialization
   like creating GCE connection, uploading GCE image to GCS,
   matching adb devices with consoles, etc
 - it hard to add private VM implementations
   such impl would need to add code to config package
   which would lead to constant merge conflicts
 - interface for VM implementation is mixed with interface for VM users
   this does not allow to provide best interface for both of them
 - there is no way to add common code for all VM implementations

This change solves these problems by:
 - splitting VM interface for users (vm package) and VM interface
   for VM implementations (vmimpl pacakge), this in turn allows
   to add common code
 - adding Pool concept that allows to do global initialization
   and config checking at the right time
 - decoupling manager config from VM-specific config
   each VM type now defines own config

Note: manager configs need to be changed after this change:
VM-specific parts are moved to own "vm" subobject.

Note: this change also drops "local" VM type.
Its story was long unclear and there is now syz-stress which solves the same problem.
2017-06-03 11:31:42 +02:00
Dmitry Vyukov
96b8d4e99c pkg/config: support nested structs 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
46c6ed89bf pkg/ifuzz: move from ifuzz 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
a6bed21731 pkg/gce: move from gce 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
ea2295f3e2 pkg/db: move from db 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
23b94422d3 pkg/log: move from log 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
d1032c21a0 pkg/hash: move from hash 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
03ad13e655 pkg/kernel: add CompilerIdentity function 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
5d2b332ab5 pkg/gcs: add new package
Move GCS-related functionality from syz-gce
to a separate package.
2017-06-03 10:41:09 +02:00
Dmitry Vyukov
66fd442d48 pkg/fileutil: move from fileutil 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
1a7e5fb38d pkg/kernel: add new package
Move functionality to build kernel/image
from syz-gce to a separate package.
2017-06-03 10:41:09 +02:00
Dmitry Vyukov
4d6cb372ad pkg/git: add new package
Move few helper git-related functions from syz-gce
to a separate pkg/git package.
2017-06-01 12:01:51 +02:00
Dmitry Vyukov
84eb5fd389 config: split and refactor
Introduce generic config.Load function that can be
reused across multiple programs (syz-manager, syz-gce, etc).
Move the generic config functionality to pkg/config package.
The idea is to move all helper (non-main) packages to pkg/ dir,
because we have more and more of them and they pollute the top dir.
Move the syz-manager config parts into syz-manager/config package.
2017-06-01 11:17:54 +02:00