Skip to content

Commit

Permalink
all: use Go 1.22 range-over-int
Browse files Browse the repository at this point in the history
Updates tailscale#11058

Change-Id: I35e7ef9b90e83cac04ca93fd964ad00ed5b48430
Signed-off-by: Brad Fitzpatrick <[email protected]>
  • Loading branch information
bradfitz committed Apr 16, 2024
1 parent 068db1f commit 7c1d6e3
Show file tree
Hide file tree
Showing 143 changed files with 280 additions and 282 deletions.
2 changes: 1 addition & 1 deletion client/web/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ func (s *Server) awaitUserAuth(ctx context.Context, session *browserSession) err

func (s *Server) newSessionID() (string, error) {
raw := make([]byte, 16)
for i := 0; i < 5; i++ {
for range 5 {
if _, err := rand.Read(raw); err != nil {
return "", err
}
Expand Down
2 changes: 1 addition & 1 deletion clientupdate/clientupdate.go
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ func (up *Updater) updateDebLike() error {
return fmt.Errorf("apt-get update failed: %w; output:\n%s", err, out)
}

for i := 0; i < 2; i++ {
for range 2 {
out, err := exec.Command("apt-get", "install", "--yes", "--allow-downgrades", "tailscale="+ver).CombinedOutput()
if err != nil {
if !bytes.Contains(out, []byte(`dpkg was interrupted`)) {
Expand Down
2 changes: 1 addition & 1 deletion clientupdate/clientupdate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -663,7 +663,7 @@ func genTarball(t *testing.T, path string, files map[string]string) {

func TestWriteFileOverwrite(t *testing.T) {
path := filepath.Join(t.TempDir(), "test")
for i := 0; i < 2; i++ {
for i := range 2 {
content := fmt.Sprintf("content %d", i)
if err := writeFile(strings.NewReader(content), path, 0600); err != nil {
t.Fatal(err)
Expand Down
2 changes: 1 addition & 1 deletion clientupdate/distsign/distsign_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ type testServer struct {

func newTestServer(t *testing.T) *testServer {
var roots []rootKeyPair
for i := 0; i < 3; i++ {
for range 3 {
roots = append(roots, newRootKeyPair(t))
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/cloner/cloner.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ func gen(buf *bytes.Buffer, it *codegen.ImportTracker, typ *types.Named) {
writef("}")
writef("dst := new(%s)", name)
writef("*dst = *src")
for i := 0; i < t.NumFields(); i++ {
for i := range t.NumFields() {
fname := t.Field(i).Name()
ft := t.Field(i).Type()
if !codegen.ContainsPointers(ft) || codegen.HasNoClone(t.Tag(i)) {
Expand Down
2 changes: 1 addition & 1 deletion cmd/k8s-operator/testutils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ func expectEvents(t *testing.T, rec *record.FakeRecorder, wantsEvents []string)
t.Helper()
// Events are not expected to arrive in order.
seenEvents := make([]string, 0)
for i := 0; i < len(wantsEvents); i++ {
for range len(wantsEvents) {
timer := time.NewTimer(time.Second * 5)
defer timer.Stop()
select {
Expand Down
4 changes: 2 additions & 2 deletions cmd/netlogfmt/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ func mustMakeNamesByAddr() map[netip.Addr]string {
seen := make(map[string]bool)
namesByAddr := make(map[netip.Addr]string)
retry:
for i := 0; i < 10; i++ {
for i := range 10 {
clear(seen)
clear(namesByAddr)
for _, d := range m.Devices {
Expand Down Expand Up @@ -354,7 +354,7 @@ func fieldPrefix(s string, n int) string {
}

func appendRepeatByte(b []byte, c byte, n int) []byte {
for i := 0; i < n; i++ {
for range n {
b = append(b, c)
}
return b
Expand Down
2 changes: 1 addition & 1 deletion cmd/proxy-to-grafana/proxy-to-grafana.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ func main() {

go func() {
// wait for tailscale to start before trying to fetch cert names
for i := 0; i < 60; i++ {
for range 60 {
st, err := localClient.Status(context.Background())
if err != nil {
log.Printf("error retrieving tailscale status; retrying: %v", err)
Expand Down
2 changes: 1 addition & 1 deletion cmd/sniproxy/sniproxy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ func TestSNIProxyWithNetmapConfig(t *testing.T) {
t.Fatal(err)
}
gotConfigured := false
for i := 0; i < 100; i++ {
for range 100 {
s, err := l.StatusWithoutPeers(ctx)
if err != nil {
t.Fatal(err)
Expand Down
2 changes: 1 addition & 1 deletion cmd/tailscale/cli/cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -831,7 +831,7 @@ func TestPrefFlagMapping(t *testing.T) {
}

prefType := reflect.TypeFor[ipn.Prefs]()
for i := 0; i < prefType.NumField(); i++ {
for i := range prefType.NumField() {
prefName := prefType.Field(i).Name
if prefHasFlag[prefName] {
continue
Expand Down
2 changes: 1 addition & 1 deletion cmd/tailscale/cli/network-lock.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ func runNetworkLockInit(ctx context.Context, args []string) error {
}

fmt.Printf("%d disablement secrets have been generated and are printed below. Take note of them now, they WILL NOT be shown again.\n", nlInitArgs.numDisablements)
for i := 0; i < nlInitArgs.numDisablements; i++ {
for range nlInitArgs.numDisablements {
var secret [32]byte
if _, err := rand.Read(secret[:]); err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion cmd/tailscale/cli/serve_legacy.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ func isProxyTarget(source string) bool {
// allNumeric reports whether s only comprises of digits
// and has at least one digit.
func allNumeric(s string) bool {
for i := 0; i < len(s); i++ {
for i := range len(s) {
if s[i] < '0' || s[i] > '9' {
return false
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/testcontrol/testcontrol.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func main() {
DERPMap: derpMap,
ExplicitBaseURL: "http://127.0.0.1:9911",
}
for i := 0; i < *flagNFake; i++ {
for range *flagNFake {
control.AddFakeNode()
}
mux := http.NewServeMux()
Expand Down
4 changes: 2 additions & 2 deletions cmd/viewer/viewer.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func genView(buf *bytes.Buffer, it *codegen.ImportTracker, typ *types.Named, thi
}
}
writeTemplate("common")
for i := 0; i < t.NumFields(); i++ {
for i := range t.NumFields() {
f := t.Field(i)
fname := f.Name()
if !f.Exported() {
Expand Down Expand Up @@ -292,7 +292,7 @@ func genView(buf *bytes.Buffer, it *codegen.ImportTracker, typ *types.Named, thi
}
writeTemplate("unsupportedField")
}
for i := 0; i < typ.NumMethods(); i++ {
for i := range typ.NumMethods() {
f := typ.Method(i)
if !f.Exported() {
continue
Expand Down
4 changes: 2 additions & 2 deletions control/controlbase/conn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ func TestFastPath(t *testing.T) {

const packets = 10
s := "test"
for i := 0; i < packets; i++ {
for range packets {
// Many separate writes, to force separate Noise frames that
// all get buffered up and then all sent as a single slice to
// the server.
Expand Down Expand Up @@ -251,7 +251,7 @@ func TestConnMemoryOverhead(t *testing.T) {
}
defer closeAll()

for i := 0; i < num; i++ {
for range num {
client, server := pair(t)
closers = append(closers, client, server)
go func() {
Expand Down
10 changes: 5 additions & 5 deletions control/controlbase/handshake_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func TestNoReuse(t *testing.T) {
serverHandshakes = map[[48]byte]bool{}
packets = map[[32]byte]bool{}
)
for i := 0; i < 10; i++ {
for range 10 {
var (
clientRaw, serverRaw = memnet.NewConn("noise", 128000)
clientBuf, serverBuf bytes.Buffer
Expand Down Expand Up @@ -162,7 +162,7 @@ func (r *tamperReader) Read(bs []byte) (int, error) {

func TestTampering(t *testing.T) {
// Tamper with every byte of the client initiation message.
for i := 0; i < 101; i++ {
for i := range 101 {
var (
clientConn, serverRaw = memnet.NewConn("noise", 128000)
serverConn = &readerConn{serverRaw, &tamperReader{serverRaw, i, 0}}
Expand Down Expand Up @@ -190,7 +190,7 @@ func TestTampering(t *testing.T) {
}

// Tamper with every byte of the server response message.
for i := 0; i < 51; i++ {
for i := range 51 {
var (
clientRaw, serverConn = memnet.NewConn("noise", 128000)
clientConn = &readerConn{clientRaw, &tamperReader{clientRaw, i, 0}}
Expand All @@ -215,7 +215,7 @@ func TestTampering(t *testing.T) {
}

// Tamper with every byte of the first server>client transport message.
for i := 0; i < 30; i++ {
for i := range 30 {
var (
clientRaw, serverConn = memnet.NewConn("noise", 128000)
clientConn = &readerConn{clientRaw, &tamperReader{clientRaw, 51 + i, 0}}
Expand Down Expand Up @@ -256,7 +256,7 @@ func TestTampering(t *testing.T) {
}

// Tamper with every byte of the first client>server transport message.
for i := 0; i < 30; i++ {
for i := range 30 {
var (
clientConn, serverRaw = memnet.NewConn("noise", 128000)
serverConn = &readerConn{serverRaw, &tamperReader{serverRaw, 101 + i, 0}}
Expand Down
2 changes: 1 addition & 1 deletion control/controlclient/controlclient_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
)

func fieldsOf(t reflect.Type) (fields []string) {
for i := 0; i < t.NumField(); i++ {
for i := range t.NumField() {
if name := t.Field(i).Name; name != "_" {
fields = append(fields, name)
}
Expand Down
2 changes: 1 addition & 1 deletion control/controlclient/map.go
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ var nodeFields = sync.OnceValue(getNodeFields)
func getNodeFields() []string {
rt := reflect.TypeFor[tailcfg.Node]()
ret := make([]string, rt.NumField())
for i := 0; i < rt.NumField(); i++ {
for i := range rt.NumField() {
ret[i] = rt.Field(i).Name
}
return ret
Expand Down
4 changes: 2 additions & 2 deletions control/controlclient/map_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1019,7 +1019,7 @@ func BenchmarkMapSessionDelta(b *testing.B) {
Name: "foo.bar.ts.net.",
},
}
for i := 0; i < size; i++ {
for i := range size {
res.Peers = append(res.Peers, &tailcfg.Node{
ID: tailcfg.NodeID(i + 2),
Name: fmt.Sprintf("peer%d.bar.ts.net.", i),
Expand All @@ -1046,7 +1046,7 @@ func BenchmarkMapSessionDelta(b *testing.B) {

// Now for the core of the benchmark loop, just toggle
// a single node's online status.
for i := 0; i < b.N; i++ {
for i := range b.N {
if err := ms.HandleNonKeepAliveMapResponse(ctx, &tailcfg.MapResponse{
OnlineChange: map[tailcfg.NodeID]bool{
2: i%2 == 0,
Expand Down
2 changes: 1 addition & 1 deletion control/controlhttp/http_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@ func (d *closeTrackDialer) Done() {
// Sleep/wait a few times on the assumption that things will close
// "eventually".
const iters = 100
for i := 0; i < iters; i++ {
for i := range iters {
d.mu.Lock()
if len(d.conns) == 0 {
d.mu.Unlock()
Expand Down
26 changes: 13 additions & 13 deletions derp/derp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func TestSendRecv(t *testing.T) {
const numClients = 3
var clientPrivateKeys []key.NodePrivate
var clientKeys []key.NodePublic
for i := 0; i < numClients; i++ {
for range numClients {
priv := key.NewNode()
clientPrivateKeys = append(clientPrivateKeys, priv)
clientKeys = append(clientKeys, priv.Public())
Expand All @@ -73,7 +73,7 @@ func TestSendRecv(t *testing.T) {
var recvChs []chan []byte
errCh := make(chan error, 3)

for i := 0; i < numClients; i++ {
for i := range numClients {
t.Logf("Connecting client %d ...", i)
cout, err := net.Dial("tcp", ln.Addr().String())
if err != nil {
Expand Down Expand Up @@ -111,7 +111,7 @@ func TestSendRecv(t *testing.T) {
var peerGoneCountNotHere expvar.Int

t.Logf("Starting read loops")
for i := 0; i < numClients; i++ {
for i := range numClients {
go func(i int) {
for {
m, err := clients[i].Recv()
Expand Down Expand Up @@ -233,7 +233,7 @@ func TestSendRecv(t *testing.T) {
wantUnknownPeers(1)

// PeerGoneNotHere is rate-limited to 3 times a second
for i := 0; i < 5; i++ {
for range 5 {
if err := clients[1].Send(neKey, callMe); err != nil {
t.Fatal(err)
}
Expand Down Expand Up @@ -389,7 +389,7 @@ func TestSendFreeze(t *testing.T) {
// if any tokens remain in the channel, they
// must have been generated after drainAny was
// called.
for i := 0; i < cap(ch); i++ {
for range cap(ch) {
select {
case <-ch:
default:
Expand Down Expand Up @@ -456,7 +456,7 @@ func TestSendFreeze(t *testing.T) {
aliceConn.Close()
cathyConn.Close()

for i := 0; i < cap(errCh); i++ {
for range cap(errCh) {
err := <-errCh
if err != nil {
if errors.Is(err, io.EOF) || errors.Is(err, net.ErrClosed) {
Expand Down Expand Up @@ -891,7 +891,7 @@ func TestMultiForwarder(t *testing.T) {
// run long enough concurrently with {Add,Remove}PacketForwarder loop above.
numMsgs := 5000
var fwd PacketForwarder
for i := 0; i < numMsgs; i++ {
for i := range numMsgs {
s.mu.Lock()
fwd = s.clientsMesh[u]
s.mu.Unlock()
Expand Down Expand Up @@ -1288,7 +1288,7 @@ func TestServerDupClients(t *testing.T) {

func TestLimiter(t *testing.T) {
rl := rate.NewLimiter(rate.Every(time.Minute), 100)
for i := 0; i < 200; i++ {
for i := range 200 {
r := rl.Reserve()
d := r.Delay()
t.Logf("i=%d, allow=%v, d=%v", i, r.OK(), d)
Expand Down Expand Up @@ -1352,7 +1352,7 @@ func benchmarkSendRecvSize(b *testing.B, packetSize int) {
b.SetBytes(int64(len(msg)))
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
for range b.N {
if err := client.Send(clientKey, msg); err != nil {
b.Fatal(err)
}
Expand All @@ -1363,7 +1363,7 @@ func BenchmarkWriteUint32(b *testing.B) {
w := bufio.NewWriter(io.Discard)
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
for range b.N {
writeUint32(w, 0x0ba3a)
}
}
Expand All @@ -1381,7 +1381,7 @@ func BenchmarkReadUint32(b *testing.B) {
var err error
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
for range b.N {
sinkU32, err = readUint32(r)
if err != nil {
b.Fatal(err)
Expand Down Expand Up @@ -1454,7 +1454,7 @@ func TestClientSendRateLimiting(t *testing.T) {

// Flood should all succeed.
cw.ResetStats()
for i := 0; i < 1000; i++ {
for range 1000 {
if err := c.send(key.NodePublic{}, pkt); err != nil {
t.Fatal(err)
}
Expand All @@ -1473,7 +1473,7 @@ func TestClientSendRateLimiting(t *testing.T) {
TokenBucketBytesPerSecond: 1,
TokenBucketBytesBurst: int(bytes1 * 2),
})
for i := 0; i < 1000; i++ {
for range 1000 {
if err := c.send(key.NodePublic{}, pkt); err != nil {
t.Fatal(err)
}
Expand Down
Loading

0 comments on commit 7c1d6e3

Please sign in to comment.