Ctrl K
ComunidadGuías…

coderd/coderdtest/initflags.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package coderdtest

import (
	"flag"
	"fmt"
	"runtime"
	"strconv"
	"testing"
)

const (
	// MaxTestParallelism is set to match our MakeFile's `make test` target.
	MaxTestParallelism = 8
)

// init defines the default parallelism for tests, capping it to MaxTestParallelism.
// Any user-provided value for -test.parallel will override this.
func init() {
	// Setup the test flags.
	testing.Init()

	// info is used for debugging panics in this init function.
	info := "Resolve the issue in the file initflags.go"
	_, file, line, ok := runtime.Caller(0)
	if ok {
		info = fmt.Sprintf("Resolve the issue in the file %s:%d", file, line)
	}

	// Lookup the test.parallel flag's value, and cap it to MaxTestParallelism. This
	// all happens before `flag.Parse()`, so any user-provided value will overwrite
	// whatever we set here.
	par := flag.CommandLine.Lookup("test.parallel")
	if par == nil {
		// This should never happen. If you are reading this message because of a panic,
		// just comment out the panic and add a `return` statement instead.
		msg := "no 'test.parallel' flag found, unable to set default parallelism"
		panic(msg + "\n" + info)
	}

	parValue, err := strconv.ParseInt(par.Value.String(), 0, 64)
	if err != nil {
		// This should never happen, but if it does, panic with a useful message. If you
		// are reading this message because of a panic, that means the default value for
		// -test.parallel is not an integer. A safe fix is to comment out the panic. This
		// will assume the default value of '0', and replace it with MaxTestParallelism.
		// Which is not ideal, but at least tests will run.
		msg := fmt.Sprintf("failed to parse test.parallel: %v", err)

		panic(msg + "\n" + info)
	}

	if parValue > MaxTestParallelism {
		_ = par.Value.Set(fmt.Sprintf("%d", MaxTestParallelism))
	}
}