Copying the loop variable is no longer necessary since Go 1.22.
Change-Id: Iebb21dac44a20ec200567f1d786f105a4ee4999d
Reviewed-on: https://go-review.googlesource.com/c/go/+/711640
Reviewed-by: Florian Lehner <lehner.florian86@gmail.com>
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
[]string{"a/b/c"},
},
} {
- test := test
t.Run(test.file, func(t *testing.T) {
t.Parallel()
z, err := OpenReader(test.file)
wantErr: true,
},
} {
- test := test
t.Run(test.file, func(t *testing.T) {
t.Parallel()
z, err := OpenReader(test.file)
cause: parentCause,
},
} {
- test := test
t.Run(test.name, func(t *testing.T) {
t.Parallel()
ctx := test.ctx()
const Size = 100
for _, keySize := range []int{16, 24, 32} {
- keySize := keySize
t.Run(fmt.Sprintf("keySize=%d", keySize), func(t *testing.T) {
key := randBytes(t, r, keySize)
aesBlock, err := aes.NewCipher(key)
// individually using multiblock implementation to catch edge cases.
for part1 := 0; part1 <= Size; part1++ {
- part1 := part1
t.Run(fmt.Sprintf("part1=%d", part1), func(t *testing.T) {
for part2 := 0; part2 <= Size-part1; part2++ {
- part2 := part2
t.Run(fmt.Sprintf("part2=%d", part2), func(t *testing.T) {
_, multiblockCtr := makeTestingCiphers(aesBlock, iv)
multiblockCiphertext := make([]byte, len(plaintext))
}
for _, keySize := range []int{16, 24, 32} {
- keySize := keySize
t.Run(fmt.Sprintf("keySize=%d", keySize), func(t *testing.T) {
for _, iv := range ivs {
key := randBytes(t, r, keySize)
t.Run(fmt.Sprintf("iv=%s", hex.EncodeToString(iv)), func(t *testing.T) {
for _, offset := range []int{0, 1, 16, 1024} {
- offset := offset
t.Run(fmt.Sprintf("offset=%d", offset), func(t *testing.T) {
genericCtr, multiblockCtr := makeTestingCiphers(aesBlock, iv)
plaintext := randBytes(t, r, Size)
for _, keySize := range []int{16, 24, 32} {
- keySize := keySize
t.Run(fmt.Sprintf("keySize=%d", keySize), func(t *testing.T) {
key := randBytes(t, r, keySize)
iv := randBytes(t, r, aesBlockSize)
max = 2048
}
for size := min; size <= max; size++ {
- size := size
t.Run(fmt.Sprintf("%d", size), func(t *testing.T) {
t.Parallel()
priv, err := GenerateKey(rand.Reader, size)
},
}
for _, tt := range tls13Tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
testTLS13OnlyClientHelloCipherSuite(t, tt.ciphers)
rootCAs.AddCert(issuer)
for _, test := range tests {
- test := test
t.Run(test.name, func(t *testing.T) {
t.Parallel()
}
for _, tc := range tests {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
parent := testRoot
db.SetMaxOpenConns(1)
for _, ec := range execCases {
- ec := ec
name := fmt.Sprintf("expired=%t,badReset=%t", ec.expired, ec.badReset)
t.Run(name, func(t *testing.T) {
db.clearAllConns(t)
}
for _, p := range platforms {
- p := p
t.Run(p.goos+"_"+p.goarch, func(t *testing.T) {
if p != runtimePlatform && !*flagAll {
t.Skipf("skipping platforms other than %s_%s because -all was not set", runtimePlatform.goos, runtimePlatform.goarch)
}
for _, mode := range buildModes {
- mode := mode
t.Run(mode, func(t *testing.T) {
for _, tc := range cases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
name := tc.build(t, p.goos, p.goarch, mode)
func TestDWARFRelocations(t *testing.T) {
for _, test := range relocationTests {
- test := test
t.Run(test.file, func(t *testing.T) {
t.Parallel()
f, err := Open(test.file)
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
value, n := Uvarint(tt.in)
if g, w := n, tt.wantN; g != w {
}
for indent := 0; indent < 4; indent++ {
- indent := indent
t.Run(fmt.Sprint(indent), func(t *testing.T) {
t.Parallel()
var buf bytes.Buffer
)
var wg sync.WaitGroup
for i := 0; i < 2; i++ {
- i := i
wg.Add(1)
go func() {
defer wg.Done()
})
for _, test := range tests {
- test := test
t.Run(test.name, func(t *testing.T) {
if got := len(idents[test.name]); got != 1 {
t.Fatalf("found %d identifiers named %s, want 1", got, test.name)
func TestGCSizes(t *testing.T) {
types.DefPredeclaredTestFuncs()
for _, tc := range gcSizesTests {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
conf := types.Config{
var wg sync.WaitGroup
for dir := range dirFiles {
- dir := dir
-
cpulimit <- struct{}{}
wg.Add(1)
go func() {
}
for sz := 1; sz <= len(buf); sz <<= 1 {
- sz := sz
b.Run(strconv.Itoa(sz), func(b *testing.B) {
for i := 0; i < b.N; i++ {
b.SetBytes(int64(sz))
}
for sz := 1; sz <= len(buf); sz <<= 1 {
- sz := sz
data := marshalCorpusFile(buf[:sz])
b.Run(strconv.Itoa(sz), func(b *testing.B) {
for i := 0; i < b.N; i++ {
}
for _, tc := range cases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
ws := &workerServer{
bytes := make([]byte, 1024)
ctx := context.Background()
for sz := 1; sz <= len(bytes); sz <<= 1 {
- sz := sz
input := []any{bytes[:sz]}
encodedVals := marshalCorpusFile(input...)
mem = <-ws.memMu
{".", "reflectlite", rl},
{reflectDir, "reflect", r},
} {
- tc := tc
wg.Add(1)
go func() {
defer wg.Done()
t.Fatalf("failed to glob for tests: %v", err)
}
for _, testPath := range matches {
- testPath := testPath
testName, err := filepath.Rel("./testdata", testPath)
if err != nil {
t.Fatalf("failed to relativize testdata path: %v", err)
}
var testedUserRegions bool
for _, p := range traces {
- p := p
testName, err := filepath.Rel("./internal/tracev1/testdata", p)
if err != nil {
t.Fatalf("failed to relativize testdata path: %s", err)
},
}
for _, test := range tests {
- test := test
t.Run(test.name, func(t *testing.T) {
var r Reader
table := make([]fseEntry, 1<<test.tableBits)
func TestSamples(t *testing.T) {
for _, test := range tests {
- test := test
t.Run(test.name, func(t *testing.T) {
r := NewReader(strings.NewReader(test.compressed))
got, err := io.ReadAll(r)
input := strings.NewReader("")
r := NewReader(input)
for _, test := range tests {
- test := test
t.Run(test.name, func(t *testing.T) {
input.Reset(test.compressed)
r.Reset(input)
continue
}
- tr := tr
t.Run(tr, func(t *testing.T) {
t.Parallel()
t.Parallel()
for i := 0; i < 6; i++ {
- i := i
t.Run(strconv.Itoa(i), func(t *testing.T) {
t.Parallel()
cmd := testenv.Command(t, testenv.Executable(t), "-test.run=^TestDefaultRace$")
func TestConnAndListener(t *testing.T) {
for i, network := range []string{"tcp", "unix", "unixpacket"} {
- i, network := i, network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("skipping %s test", network)
}
for i, tt := range testCases {
- i, tt := i, tt
t.Run(fmt.Sprint(i), func(t *testing.T) {
dialTCP := func(ctx context.Context, network string, laddr, raddr *TCPAddr) (*TCPConn, error) {
n := "tcp6"
d := Dialer{Timeout: someTimeout}
for i, tt := range dialErrorTests {
- i, tt := i, tt
t.Run(fmt.Sprint(i), func(t *testing.T) {
c, err := d.Dial(tt.network, tt.address)
if err == nil {
}
for _, tt := range tests {
- tt := tt
t.Run(tt.r, func(t *testing.T) {
req, err := NewRequest("GET", cst.URL+"/index.html", nil)
if err != nil {
-100, 0, 99, 1000, 20000,
}
for _, badCode := range badCodes {
- badCode := badCode
t.Run(fmt.Sprintf("Code=%d", badCode), func(t *testing.T) {
defer func() {
if r := recover(); r == nil {
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
exitHandler := make(chan bool, 1)
defer close(exitHandler)
}
func testTransportContentEncodingCaseInsensitive(t *testing.T, mode testMode) {
for _, ce := range []string{"gzip", "GZIP"} {
- ce := ce
t.Run(ce, func(t *testing.T) {
const encodedString = "Hello Gopher"
ts := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) {
t.Parallel()
for _, network := range []string{"tcp", "unix", "unixpacket"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
}
for _, network := range []string{"tcp", "unix", "unixpacket"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
func TestConnClose(t *testing.T) {
t.Parallel()
for _, network := range []string{"tcp", "unix", "unixpacket"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
func TestListenerClose(t *testing.T) {
t.Parallel()
for _, network := range []string{"tcp", "unix", "unixpacket"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
func TestPacketConnClose(t *testing.T) {
t.Parallel()
for _, network := range []string{"udp", "unixgram"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
func TestZeroByteRead(t *testing.T) {
t.Parallel()
for _, network := range []string{"tcp", "unix", "unixpacket"} {
- network := network
t.Run(network, func(t *testing.T) {
if !testableNetwork(network) {
t.Skipf("network %s is not testable on the current platform", network)
func TestUDPServer(t *testing.T) {
for i, tt := range udpServerTests {
- i, tt := i, tt
t.Run(fmt.Sprint(i), func(t *testing.T) {
if !testableListenArgs(tt.snet, tt.saddr, tt.taddr) {
t.Skipf("skipping %s %s<-%s test", tt.snet, tt.saddr, tt.taddr)
}
for i, tt := range unixgramServerTests {
- i, tt := i, tt
t.Run(fmt.Sprint(i), func(t *testing.T) {
if !testableListenArgs("unixgram", tt.saddr, "") {
t.Skipf("skipping unixgram %s<-%s test", tt.saddr, tt.caddr)
}
for _, timeout := range timeouts {
- timeout := timeout
t.Run(fmt.Sprintf("%v", timeout), func(t *testing.T) {
t.Parallel()
handler := func(ls *localServer, ln Listener) {}
for _, laddr := range []string{"", testUnixAddr(t)} {
- laddr := laddr
taddr := testUnixAddr(t)
ta, err := ResolveUnixAddr("unix", taddr)
if err != nil {
}
for _, laddr := range []string{"", testUnixAddr(t)} {
- laddr := laddr
taddr := testUnixAddr(t)
ta, err := ResolveUnixAddr("unixgram", taddr)
if err != nil {
}
for _, tc := range cases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
// contain symlinks preserved from the PWD value in the test's environment.
}
for _, tc := range cases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
}
for _, sig := range sigs {
- sig := sig
t.Run(fmt.Sprint(sig), func(t *testing.T) {
// When calling Notify with a specific signal,
// independent signals should not interfere with each other,
subTimeout -= subTimeout / 10 // Leave 10% headroom for propagating output.
}
for i := 1; i <= 2; i++ {
- i := i
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
t.Parallel()
subTimeout -= subTimeout / 10 // Leave 10% headroom for propagating output.
}
for i := 1; i <= 2; i++ {
- i := i
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
t.Parallel()
{"multiple", 10},
}
for _, tc := range testCases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
buggyGOOS: []string{"darwin", "ios"}, // https://go.dev/issue/59586
},
} {
- tt := tt
t.Run(tt.desc, func(t *testing.T) {
var walked []string
err := filepath.Walk(tt.root, func(path string, info fs.FileInfo, err error) error {
func TestOffsetLock(t *testing.T) {
var wg sync.WaitGroup
for i := 0; i < 4; i++ {
- i := i
wg.Add(1)
go func() {
for j := 0; j < 50; j++ {
}
for _, tc := range tests {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
if !tc.testFunc(tc.value) {
}
for _, tc := range tests {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
if got := tc.val.Pointer(); got != uintptr(tc.wantUnsafePointer) {
t.Errorf("unexpected uintptr result, got %#x, want %#x", got, uintptr(tc.wantUnsafePointer))
func TestFields(t *testing.T) {
for _, test := range fieldsTests {
- test := test
t.Run(test.testName, func(t *testing.T) {
typ := TypeOf(test.val)
fields := VisibleFields(typ)
wg.Add(2)
c := make(chan int, chanCap)
for p := 0; p < 2; p++ {
- p := p
go func() {
defer wg.Done()
for i := 0; i < 1000; i++ {
var wg sync.WaitGroup
wg.Add(10)
for k := 0; k < 4; k++ {
- k := k
go func() {
for i := 0; i < N; i++ {
c[k] <- 0
}
for _, tc := range testCases {
- tc := tc
t.Run(tc.cmd, func(t *testing.T) {
t.Parallel()
got, err := testenv.CleanCmdEnv(exec.Command(exe, tc.cmd)).CombinedOutput()
}
for _, tc := range testCases {
- tc := tc
t.Run(tc.cmd, func(t *testing.T) {
t.Parallel()
got, err := testenv.CleanCmdEnv(exec.Command(exe, tc.cmd)).CombinedOutput()
}
for _, test := range []string{"Segv", "SegvInCgo", "TgkillSegv", "TgkillSegvInCgo"} {
- test := test
-
// The tgkill variants only run on Linux.
if runtime.GOOS != "linux" && strings.HasPrefix(test, "Tgkill") {
continue
m := map[any]bool{}
for i := 0; i < 100; i++ {
- i := i
m[&i] = true
}
for _, backward := range []bool{true, false} {
for _, n := range []int{3, 4, 5, 6, 7, 8, 9, 10, 15, 25, 49} {
- n := n
-
// test copying [N]*int.
sz := uintptr(n * PtrSize)
name := fmt.Sprint(sz)
// However, it is still possible to trigger this case if something exceptional
// happens between calls to revise; the framework just doesn't support this yet.
} {
- e := e
t.Run(e.name, func(t *testing.T) {
t.Parallel()
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := makePallocData(v.alloc, v.scavenged)
start, size := b.FindScavengeCandidate(PallocChunkPages-1, v.min, v.max)
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := NewPageAlloc(v.beforeAlloc, v.beforeScav)
defer FreePageAlloc(b)
)
}
for _, test := range tests {
- test := test
t.Run("Bg/"+test.name, func(t *testing.T) {
mark, find, nextGen := setup(t, false)
test.mark(mark)
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
// By creating a new pageAlloc, we will
// grow it for each chunk defined in x.
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := NewPageAlloc(v.before, v.scav)
defer FreePageAlloc(b)
t.Skip("skipping because virtual memory is limited; see #36210")
}
for _, npages := range []uintptr{1, 2, 3, 4, 5, 8, 16, 64, 1024, 1025, 2048, 2049} {
- npages := npages
t.Run(fmt.Sprintf("%d", npages), func(t *testing.T) {
// Construct b.
bDesc := make(map[ChunkIdx][]BitRange)
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := NewPageAlloc(v.before, nil)
defer FreePageAlloc(b)
},
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := NewPageAlloc(v.init, nil)
defer FreePageAlloc(b)
},
}
for name, test := range tests {
- test := test
t.Run(name, func(t *testing.T) {
c := test.cache
for i, h := range test.hits {
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := NewPageAlloc(v.beforeAlloc, v.beforeScav)
defer FreePageAlloc(b)
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := makePallocBits(v.init)
for _, h := range v.tests {
},
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := makePallocBits(v.free)
// In the PallocBits we create 1's represent free spots, but in our actual
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := makePallocBits(v.before)
for iter, i := range v.hits {
}
}
for name, v := range tests {
- v := v
t.Run(name, func(t *testing.T) {
b := makePallocBits(v.beforeInv)
invertPallocBits(b)
var wg sync.WaitGroup
wg.Add(N)
for i := 0; i < N; i++ {
- i := i
go func() {
if i >= N {
b.Logf("bad") // just to capture b
n = 1000
}
for i := uint64(0); i < m*n; i += n {
- i := i
g.Add(1)
go func() {
var c uint64
n = 100
}
for i := 0; i < m; i++ {
- i := i
w.Add(1)
go func() {
for j := i; j < m*n; runtime.Gosched() {
func TestCloneNEWUSERAndRemap(t *testing.T) {
for _, setgroups := range []bool{false, true} {
- setgroups := setgroups
t.Run(fmt.Sprintf("setgroups=%v", setgroups), func(t *testing.T) {
uid := os.Getuid()
gid := os.Getgid()
testenv.MustHaveExec(t)
for _, flag := range []string{"", "-test.v", "-test.v=test2json"} {
- flag := flag
t.Run(flag, func(t *testing.T) {
t.Parallel()
cmd := exec.Command(testenv.Executable(t), "-test.run=^TestFlag$", "-test_flag_arg="+flag)
}
})
for i := 0; i < 3; i++ {
- i := i
t.Run(fmt.Sprintf("%v", i), func(t *testing.T) {
chosen := t.Name() == *testPanicTest
if chosen && *testPanicCleanup {
var wg sync.WaitGroup
wg.Add(2)
for i := 0; i < 2; i++ {
- i := i
go func() {
t.Cleanup(func() {
// Although the calls to Cleanup are concurrent, the functions passed
wg.Add(timerCount)
atomic.StoreInt32(&count, 0)
for j := 0; j < timerCount; j++ {
- j := j
expectedWakeup := Now().Add(delay)
AfterFunc(delay, func() {
late := Since(expectedWakeup)
var wg sync.WaitGroup
wg.Add(tickerCount)
for j := 0; j < tickerCount; j++ {
- j := j
doWork(delay / Duration(gmp))
expectedWakeup := Now().Add(delay)
ticker := NewTicker(delay)