package vcstest
import (
+ "bytes"
"cmd/go/internal/vcs"
"cmd/go/internal/vcweb"
"cmd/go/internal/web/intercept"
}
}()
- srvHTTP := httptest.NewServer(handler)
+ srvHTTP := httptest.NewUnstartedServer(handler)
+ srvHTTP.Config.ErrorLog = testLogger()
+ srvHTTP.Start()
httpURL, err := url.Parse(srvHTTP.URL)
if err != nil {
return nil, err
}
}()
- srvHTTPS := httptest.NewTLSServer(handler)
+ srvHTTPS := httptest.NewUnstartedServer(handler)
+ srvHTTPS.Config.ErrorLog = testLogger()
+ srvHTTPS.StartTLS()
httpsURL, err := url.Parse(srvHTTPS.URL)
if err != nil {
return nil, err
return srv, nil
}
+func testLogger() *log.Logger {
+ return log.New(httpLogger{}, "vcweb: ", 0)
+}
+
+type httpLogger struct{}
+
+func (httpLogger) Write(b []byte) (int, error) {
+ if bytes.Contains(b, []byte("TLS handshake error")) {
+ return len(b), nil
+ }
+ return os.Stdout.Write(b)
+}
+
func (srv *Server) Close() error {
if vcs.VCSTestRepoURL != srv.HTTP.URL {
panic("vcs URL hooks modified before Close")