Browse Source

server_test: add --stderr_verbose flag to mirror logs to stderr, unbuffered

Brad Fitzpatrick 11 years ago
parent
commit
ebeaf0b0cd
1 changed files with 10 additions and 2 deletions
  1. 10 2
      server_test.go

+ 10 - 2
server_test.go

@@ -11,6 +11,7 @@ import (
 	"bytes"
 	"bytes"
 	"crypto/tls"
 	"crypto/tls"
 	"errors"
 	"errors"
+	"flag"
 	"fmt"
 	"fmt"
 	"io"
 	"io"
 	"io/ioutil"
 	"io/ioutil"
@@ -31,6 +32,8 @@ import (
 	"github.com/bradfitz/http2/hpack"
 	"github.com/bradfitz/http2/hpack"
 )
 )
 
 
+var stderrVerbose = flag.Bool("stderr_verbose", false, "Mirror verbosity to stderr, unbuffered")
+
 type serverTester struct {
 type serverTester struct {
 	cc        net.Conn // client conn
 	cc        net.Conn // client conn
 	t         testing.TB
 	t         testing.TB
@@ -93,8 +96,13 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
 	}
 	}
 	st.hpackEnc = hpack.NewEncoder(&st.headerBuf)
 	st.hpackEnc = hpack.NewEncoder(&st.headerBuf)
 
 
+	var stderrv io.Writer = ioutil.Discard
+	if *stderrVerbose {
+		stderrv = os.Stderr
+	}
+
 	ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config
 	ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config
-	ts.Config.ErrorLog = log.New(io.MultiWriter(twriter{t: t, st: st}, logBuf), "", log.LstdFlags)
+	ts.Config.ErrorLog = log.New(io.MultiWriter(stderrv, twriter{t: t, st: st}, logBuf), "", log.LstdFlags)
 	ts.StartTLS()
 	ts.StartTLS()
 
 
 	if VerboseLogs {
 	if VerboseLogs {
@@ -114,7 +122,7 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
 	if err != nil {
 	if err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
-	log.SetOutput(twriter{t: t, st: st})
+	log.SetOutput(io.MultiWriter(stderrv, twriter{t: t, st: st}))
 
 
 	st.cc = cc
 	st.cc = cc
 	st.fr = NewFramer(cc, cc)
 	st.fr = NewFramer(cc, cc)