diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-05-25 16:37:05 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-05-29 13:15:07 +0200 |
| commit | 0fcd5fd3ddb45f5571658c4fce1589427a5bf090 (patch) | |
| tree | cf2c53985762fb05b316b2bb868d51d171fc3560 /vm | |
| parent | 220dc49106d66ff912db835004c88f8c9e2d1707 (diff) | |
all: speed up tests
Mark tests as parallel where makes sense.
Speed up sys.TransitivelyEnabledCalls.
Execution time is now:
ok github.com/google/syzkaller/config 0.172s
ok github.com/google/syzkaller/cover 0.060s
ok github.com/google/syzkaller/csource 3.081s
ok github.com/google/syzkaller/db 0.395s
ok github.com/google/syzkaller/executor 0.060s
ok github.com/google/syzkaller/fileutil 0.106s
ok github.com/google/syzkaller/host 1.530s
ok github.com/google/syzkaller/ifuzz 0.491s
ok github.com/google/syzkaller/ipc 1.374s
ok github.com/google/syzkaller/log 0.014s
ok github.com/google/syzkaller/prog 2.604s
ok github.com/google/syzkaller/report 0.045s
ok github.com/google/syzkaller/symbolizer 0.062s
ok github.com/google/syzkaller/sys 0.365s
ok github.com/google/syzkaller/syz-dash 0.014s
ok github.com/google/syzkaller/syz-hub/state 0.427s
ok github.com/google/syzkaller/vm 0.052s
However, main time is still taken by rebuilding sys package.
Fixes #182
Diffstat (limited to 'vm')
| -rw-r--r-- | vm/merger.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vm/merger.go b/vm/merger.go index c3b5c16d0..2902eda6c 100644 --- a/vm/merger.go +++ b/vm/merger.go @@ -13,6 +13,7 @@ import ( type OutputMerger struct { Output chan []byte Err chan error + teeMu sync.Mutex tee io.Writer wg sync.WaitGroup } @@ -42,7 +43,9 @@ func (merger *OutputMerger) Add(name string, r io.ReadCloser) { if pos := bytes.LastIndexByte(pending, '\n'); pos != -1 { out := pending[:pos+1] if merger.tee != nil { + merger.teeMu.Lock() merger.tee.Write(out) + merger.teeMu.Unlock() } select { case merger.Output <- append([]byte{}, out...): @@ -56,7 +59,9 @@ func (merger *OutputMerger) Add(name string, r io.ReadCloser) { if len(pending) != 0 { pending = append(pending, '\n') if merger.tee != nil { + merger.teeMu.Lock() merger.tee.Write(pending) + merger.teeMu.Unlock() } select { case merger.Output <- pending: |
