aboutsummaryrefslogtreecommitdiffstats
path: root/sys
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 /sys
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 'sys')
-rw-r--r--sys/decl.go16
-rw-r--r--sys/decl_test.go2
2 files changed, 16 insertions, 2 deletions
diff --git a/sys/decl.go b/sys/decl.go
index 270ae4582..0956a94ee 100644
--- a/sys/decl.go
+++ b/sys/decl.go
@@ -521,14 +521,26 @@ func TransitivelyEnabledCalls(enabled map[*Call]bool) map[*Call]bool {
for c := range enabled {
supported[c] = true
}
+ inputResources := make(map[*Call][]*ResourceType)
+ ctors := make(map[string][]*Call)
+ for c := range supported {
+ inputs := c.InputResources()
+ inputResources[c] = inputs
+ for _, res := range inputs {
+ if _, ok := ctors[res.Desc.Name]; ok {
+ continue
+ }
+ ctors[res.Desc.Name] = resourceCtors(res.Desc.Kind, true)
+ }
+ }
for {
n := len(supported)
haveGettime := supported[CallMap["clock_gettime"]]
for c := range supported {
canCreate := true
- for _, res := range c.InputResources() {
+ for _, res := range inputResources[c] {
noctors := true
- for _, ctor := range resourceCtors(res.Desc.Kind, true) {
+ for _, ctor := range ctors[res.Desc.Name] {
if supported[ctor] {
noctors = false
break
diff --git a/sys/decl_test.go b/sys/decl_test.go
index c41a95e43..18385c321 100644
--- a/sys/decl_test.go
+++ b/sys/decl_test.go
@@ -8,6 +8,7 @@ import (
)
func TestTransitivelyEnabledCalls(t *testing.T) {
+ t.Parallel()
calls := make(map[*Call]bool)
for _, c := range Calls {
calls[c] = true
@@ -37,6 +38,7 @@ func TestTransitivelyEnabledCalls(t *testing.T) {
}
func TestClockGettime(t *testing.T) {
+ t.Parallel()
calls := make(map[*Call]bool)
for _, c := range Calls {
calls[c] = true