func bytesAllocated() uint64 { … } // TestStdlib loads the entire standard library and its tools and all // their dependencies. // // (As of go1.23, std is transitively closed, so adding the -deps flag // doesn't increase its result set. The cmd pseudomodule of course // depends on a good chunk of std, but the std+cmd set is also // transitively closed, so long as -pgo=off.) // // Apart from a small number of internal packages that are not // returned by the 'std' query, the set is essentially transitively // closed, so marginal per-dependency costs are invisible. func TestStdlib(t *testing.T) { … } // TestNetHTTP builds a single SSA package but not its dependencies. // It may help reveal costs related to dependencies (e.g. unnecessary building). func TestNetHTTP(t *testing.T) { … } // TestCycles loads two standard libraries that depend on the same // generic instantiations. // internal/trace/testtrace and net/http both depend on // slices.Contains[[]string string] and slices.Index[[]string string] // This can under some schedules create a cycle of dependencies // where both need to wait on the other to finish building. func TestCycles(t *testing.T) { … } func testLoad(t *testing.T, minPkgs int, patterns ...string) { … } // srcFunctions gathers all ssa.Functions corresponding to syntax. // (Includes generics but excludes instances and all wrappers.) // // This is essentially identical to the SrcFunctions logic in // go/analysis/passes/buildssa. func srcFunctions(prog *ssa.Program, pkgs []*packages.Package) (res []*ssa.Function) { … }