Skip to content

cmd/compile: accepts std/go/token as valid package? #31769

@bradfitz

Description

@bradfitz

goimports inserted a "std/go/token" package for me, which kinda works in some places (go test) but fails in others (trybots of

diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go
index 857f0d5928..e5c9f7e37b 100644
--- a/src/net/http/transport_test.go
+++ b/src/net/http/transport_test.go
@@ -35,6 +35,7 @@ import (
        "os"
        "reflect"
        "runtime"
+       "std/go/token"
        "strconv"
        "strings"
        "sync"
@@ -5220,3 +5221,45 @@ func TestTransportRequestWriteRoundTrip(t *testing.T) {
                })
        }
 }
+
+func TestTransportClone(t *testing.T) {
+       tr := &Transport{
+               Proxy:                  func(*Request) (*url.URL, error) { panic("") },
+               DialContext:            func(ctx context.Context, network, addr string) (net.Conn, error) { panic("") },
+               Dial:                   func(network, addr string) (net.Conn, error) { panic("") },
+               DialTLS:                func(network, addr string) (net.Conn, error) { panic("") },
+               TLSClientConfig:        ne)w(tls.Config),
+               TLSHandshakeTimeout:    time.Second,
+               DisableKeepAlives:      true,
+               DisableCompression:     true,
+               MaxIdleConns:           1,
+               MaxIdleConnsPerHost:    1,
+               MaxConnsPerHost:        1,
+               IdleConnTimeout:        time.Second,
+               ResponseHeaderTimeout:  time.Second,
+               ExpectContinueTimeout:  time.Second,
+               ProxyConnectHeader:     Header{},
+               MaxResponseHeaderBytes: 1,
+               ForceAttemptHTTP2:      true,
+               TLSNextProto:           map[string]func(authority string, c *tls.Conn) RoundTripper{},
+       }
+       tr2 := tr.Clone()
+       rv := reflect.ValueOf(tr2).Elem()
+       rt := rv.Type()
+       for i := 0; i < rt.NumField(); i++ {
+               sf := rt.Field(i)
+               if !token.IsExported(sf.Name) {
+                       continue
+               }
+               if rv.Field(i).IsZero() {
+                       t.Errorf("cloned field t2.%s is zero", sf.Name)
+               }
+       }
+
+       // But test that a nil TLSNextProto is kept nil:
+       tr = new(Transport)
+       tr2 = tr.Clone()
+       if tr2.TLSNextProto != nil {
+               t.Errorf("Transport.TLSNextProto unexpected non-nil")
+       }
+}
bradfitz@go:~/go/src$ cd net/http/
bradfitz@go:~/go/src/net/http$ go test -short
PASS
ok      net/http        4.134s

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions