diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-07-04 10:12:23 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-07-05 10:44:34 +0200 |
| commit | bc1210b614287b1c035a71935fb1f791ebbbf9f6 (patch) | |
| tree | 9ee5ec4c3f020d273d498799093ed7476ae2f142 /pkg/ipc | |
| parent | 2c6c896b3662341819da954f7ba962c8a89fbe34 (diff) | |
pkg/ipc: create default config based on target
Pass actual target to DefaultConfig, that's what we really want,
not the stray ipc flag.
Diffstat (limited to 'pkg/ipc')
| -rw-r--r-- | pkg/ipc/ipc.go | 15 | ||||
| -rw-r--r-- | pkg/ipc/ipc_test.go | 2 |
2 files changed, 3 insertions, 14 deletions
diff --git a/pkg/ipc/ipc.go b/pkg/ipc/ipc.go index 72a74f160..4ad712999 100644 --- a/pkg/ipc/ipc.go +++ b/pkg/ipc/ipc.go @@ -12,7 +12,6 @@ import ( "os" "os/exec" "path/filepath" - "runtime" "strings" "sync/atomic" "time" @@ -68,7 +67,6 @@ var ( flagAbortSignal = flag.Int("abort_signal", 0, "initial signal to send to executor"+ " in error conditions; upgrades to SIGKILL if executor does not exit") flagBufferSize = flag.Uint64("buffer_size", 0, "internal buffer size (in bytes) for executor output") - flagIPC = flag.String("ipc", "", "ipc scheme (pipe/shmem)") ) type ExecOpts struct { @@ -103,7 +101,7 @@ type Config struct { BufferSize uint64 } -func DefaultConfig() (*Config, *ExecOpts, error) { +func DefaultConfig(target *prog.Target) (*Config, *ExecOpts, error) { c := &Config{ Executor: *flagExecutor, Timeout: *flagTimeout, @@ -126,22 +124,13 @@ func DefaultConfig() (*Config, *ExecOpts, error) { return nil, nil, fmt.Errorf("flag sandbox must contain one of none/setuid/namespace") } - sysTarget := targets.Get(runtime.GOOS, runtime.GOARCH) + sysTarget := targets.Get(target.OS, target.Arch) if sysTarget.ExecutorUsesShmem { c.Flags |= FlagUseShmem } if sysTarget.ExecutorUsesForkServer { c.Flags |= FlagUseForkServer } - switch *flagIPC { - case "": - case "pipe": - c.Flags &^= FlagUseShmem - case "shmem": - c.Flags |= FlagUseShmem - default: - return nil, nil, fmt.Errorf("unknown ipc scheme: %v", *flagIPC) - } opts := &ExecOpts{ Flags: FlagDedupCover, diff --git a/pkg/ipc/ipc_test.go b/pkg/ipc/ipc_test.go index cebf587d9..59f9f621a 100644 --- a/pkg/ipc/ipc_test.go +++ b/pkg/ipc/ipc_test.go @@ -41,7 +41,7 @@ func initTest(t *testing.T) (*prog.Target, rand.Source, int, EnvFlags) { if err != nil { t.Fatal(err) } - cfg, _, err := DefaultConfig() + cfg, _, err := DefaultConfig(target) if err != nil { t.Fatal(err) } |
