aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-11-23 14:31:59 +0100
committerDmitry Vyukov <dvyukov@google.com>2015-11-23 17:08:53 +0100
commit83e92abf5062ec127ee48d5100e0108e17008f3a (patch)
tree92e2599c8bec25e2db41900bdd8b149169ec72ed /tools
parent22660a2f952229e802761ee046f3e2582d4b0c68 (diff)
tools/stress: support missing flags
Diffstat (limited to 'tools')
-rw-r--r--tools/stress/stress.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/stress/stress.go b/tools/stress/stress.go
index db201e690..88fc2a3c8 100644
--- a/tools/stress/stress.go
+++ b/tools/stress/stress.go
@@ -25,6 +25,10 @@ var (
flagOutput = flag.Bool("output", false, "print executor output to console")
flagDebug = flag.Bool("debug", false, "executor debug output")
flagProcs = flag.Int("procs", runtime.NumCPU(), "number of parallel processes")
+ flagThreaded = flag.Bool("threaded", true, "use threaded mode in executor")
+ flagCollide = flag.Bool("collide", true, "collide syscalls to provoke data races")
+ flagNobody = flag.Bool("nobody", false, "impersonate into nobody")
+ flagTimeout = flag.Duration("timeout", 5*time.Second, "executor timeout")
failedRe = regexp.MustCompile("runtime error: |panic: |Panic: ")
)
@@ -32,14 +36,23 @@ var (
func main() {
flag.Parse()
corpus := readCorpus()
- flags := ipc.FlagThreaded | ipc.FlagCollide | ipc.FlagDropPrivs
+ var flags uint64
+ if *flagThreaded {
+ flags |= ipc.FlagThreaded
+ }
+ if *flagCollide {
+ flags |= ipc.FlagCollide
+ }
+ if *flagNobody {
+ flags |= ipc.FlagDropPrivs
+ }
if *flagDebug {
flags |= ipc.FlagDebug
}
for p := 0; p < *flagProcs; p++ {
go func() {
- env, err := ipc.MakeEnv(*flagExecutor, 4*time.Second, flags)
+ env, err := ipc.MakeEnv(*flagExecutor, 10*time.Second, flags)
if err != nil {
failf("failed to create execution environment: %v", err)
}