diff options
| author | Sabyrzhan Tasbolatov <snovitoll@gmail.com> | 2024-09-04 21:33:28 +0500 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-09-09 16:49:28 +0000 |
| commit | cb2d8b3aef0920cbb5521f948e262598efc3fc1c (patch) | |
| tree | a5dd2e30ebaa63b2835fa6656e8e7078054829a0 /syz-manager | |
| parent | 10df4c09063bf091d9d003880e4d1044b0ec163d (diff) | |
pkg/rpcserver: add unit tests, Manager mocks
Added more test coverage of the package and created an interface of
rpcserver to use it as the dependency (for syz-manager).
Also tried to cover with tests a private method handleConn(),
though it calls handleRunnerConn which has a separate logic in
Handshake(), which within handleConn() unit test we should've mocked.
This will require a refactoring of `runners map[int]*Runner` and
runner.go in general with a separate interface which we can mock as
well.
General idea is to have interfaces of Server (rpc), Runner etc. and mock a
compound logic like Handshake during a separate public (or private if it
has callable, if-else logic) method unit-testing.
Diffstat (limited to 'syz-manager')
| -rw-r--r-- | syz-manager/manager.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index db181d3a3..4b89277d4 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -80,7 +80,7 @@ type Manager struct { sysTarget *targets.Target reporter *report.Reporter crashdir string - serv *rpcserver.Server + serv rpcserver.Server corpus *corpus.Corpus corpusDB *db.DB corpusDBMu sync.Mutex // for concurrent operations on corpusDB @@ -252,7 +252,10 @@ func RunManager(mode Mode, cfg *mgrconfig.Config) { if err != nil { log.Fatalf("failed to create rpc server: %v", err) } - log.Logf(0, "serving rpc on tcp://%v", mgr.serv.Port) + if err := mgr.serv.Listen(); err != nil { + log.Fatalf("failed to start rpc server: %v", err) + } + log.Logf(0, "serving rpc on tcp://%v", mgr.serv.Port()) if cfg.DashboardAddr != "" { opts := []dashapi.DashboardOpts{} @@ -287,7 +290,7 @@ func RunManager(mode Mode, cfg *mgrconfig.Config) { if mgr.vmPool == nil { log.Logf(0, "no VMs started (type=none)") log.Logf(0, "you are supposed to start syz-executor manually as:") - log.Logf(0, "syz-executor runner local manager.ip %v", mgr.serv.Port) + log.Logf(0, "syz-executor runner local manager.ip %v", mgr.serv.Port()) <-vm.Shutdown return } @@ -536,7 +539,7 @@ func (mgr *Manager) fuzzerInstance(ctx context.Context, inst *vm.Instance, updIn func (mgr *Manager) runInstanceInner(ctx context.Context, inst *vm.Instance, injectExec <-chan bool, finishCb vm.EarlyFinishCb) (*report.Report, []byte, error) { - fwdAddr, err := inst.Forward(mgr.serv.Port) + fwdAddr, err := inst.Forward(mgr.serv.Port()) if err != nil { return nil, nil, fmt.Errorf("failed to setup port forwarding: %w", err) } |
