| // Copyright 2020 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| package fuzz | |
| import ( | |
| "os" | |
| "os/exec" | |
| "github.com/golang/glog" | |
| ) | |
| // ExecCommand is the function used by CreateProcess to create Cmd objects. Test code can replace | |
| // the default to mock process creation. | |
| var ExecCommand = exec.Command | |
| // NewCommand returns a Cmd that can be used to start a new os.Process by calling Run or Start. | |
| // It is provided to allow the test code to mock process creation. | |
| func NewCommand(name string, args ...string) *exec.Cmd { | |
| cmd := ExecCommand(name, args...) | |
| glog.Infof("Running local command: %q", cmd) | |
| return cmd | |
| } | |
| // CreateProcessForeground is like CreateProcess but passes through any command output | |
| func CreateProcessForeground(name string, args ...string) error { | |
| cmd := NewCommand(name, args...) | |
| cmd.Stderr, cmd.Stdout = os.Stderr, os.Stdout | |
| return cmd.Run() | |
| } | |
| // Run a command to completion | |
| func CreateProcess(name string, args ...string) error { | |
| cmd := NewCommand(name, args...) | |
| return cmd.Run() | |
| } |