aboutsummaryrefslogtreecommitdiffstats
path: root/vm
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-05-25 16:37:05 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-05-29 13:15:07 +0200
commit0fcd5fd3ddb45f5571658c4fce1589427a5bf090 (patch)
treecf2c53985762fb05b316b2bb868d51d171fc3560 /vm
parent220dc49106d66ff912db835004c88f8c9e2d1707 (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.go5
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: