tstest/integration/vms: t.Log for VM output
Previously we spewed a lot of output to stdout and stderr, even when
`-v` wasn't set. This is sub-optimal for various reasons. This patch
shunts that output to test logs so it only shows up when `-v` is set.
Updates
"flag"
"fmt"
"io"
+ "log"
"net"
"net/http"
"os"
expect "github.com/google/goexpect"
"golang.org/x/crypto/ssh"
"inet.af/netaddr"
+ "tailscale.com/tstest"
"tailscale.com/tstest/integration/testcontrol"
)
@@ -122,10 +124,11 @@ func fetchDistro(t *testing.T, resultDistro Distro) {
func run(t *testing.T, dir, prog string, args ...string) {
t.Helper()
t.Logf("running: %s %s", prog, strings.Join(args, " "))
+ tstest.FixLogs(t)
cmd := exec.Command(prog, args...)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
+ cmd.Stdout = log.Writer()
+ cmd.Stderr = log.Writer()
cmd.Dir = dir
if err := cmd.Run(); err != nil {
t.Fatal(err)
@@ -415,6 +418,7 @@ func TestVMIntegrationEndToEnd(t *testing.T) {
for port := range ipMap {
port := port
t.Run(port, func(t *testing.T) {
+ tstest.FixLogs(t)
config := &ssh.ClientConfig{
User: "ts",
Auth: []ssh.AuthMethod{ssh.PublicKeys(signer), ssh.Password("hunter2")},
@@ -431,7 +435,7 @@ func TestVMIntegrationEndToEnd(t *testing.T) {
t.Logf("about to ssh into 127.0.0.1:%s", port)
timeout := 5 * time.Minute
- e, _, err := expect.SpawnSSH(cli, timeout, expect.Verbose(true), expect.VerboseWriter(os.Stdout))
+ e, _, err := expect.SpawnSSH(cli, timeout, expect.Verbose(true), expect.VerboseWriter(log.Writer()))
if err != nil {
t.Fatalf("%s: can't register a shell session: %v", port, err)
}
