golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.41k stars 17.59k forks source link

cmd/link: short tests are not short enough #26470

Open rsc opened 6 years ago

rsc commented 6 years ago

Running all.bash (which does go test -short std cmd), my target is usually that individual tests should run in under 1 second.

The cmd/link test takes 3.4s on my system. Can we make it take less time?

cmd/link is implicitly tested by pretty much every other test in the system, so it's hard to believe it needs to do a ton in the -short test.

/cc @aclements

rsc commented 6 years ago

I missed that cmd/link/internal/ld takes an additional 12.9 seconds. That's even worse.

gopherbot commented 6 years ago

Change https://golang.org/cl/125295 mentions this issue: cmd/link: skip a couple of DWARF tests in short mode

ysmolski commented 6 years ago

Takes about 1.4 sec on laptop mac:

% go test cmd/link -v -short
=== RUN   TestDWARF
=== RUN   TestDWARF/testprog
=== RUN   TestDWARF/testprogcgo
--- PASS: TestDWARF (1.30s)
    --- PASS: TestDWARF/testprog (0.39s)
    --- PASS: TestDWARF/testprogcgo (0.78s)
=== RUN   TestDWARFiOS
--- SKIP: TestDWARFiOS (0.00s)
    dwarf_test.go:159: skipping in short mode
=== RUN   TestLargeSymName
--- PASS: TestLargeSymName (0.00s)
=== RUN   TestIssue21703
--- PASS: TestIssue21703 (0.14s)
=== RUN   TestLargeText
--- SKIP: TestLargeText (0.00s)
    linkbig_test.go:24: Skipping large text section test in short mode or on amd64
PASS
ok      cmd/link    1.448s

Can we close it?

gopherbot commented 5 years ago

Change https://golang.org/cl/153258 mentions this issue: cmd/link: use SeekPC in testDWARF

gopherbot commented 5 years ago

Change https://golang.org/cl/153259 mentions this issue: cmd/link/internal/ld: run tests in parallel