aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2023-08-22 15:23:22 -0400
committerGopher Robot <gobot@golang.org>2023-08-23 16:58:07 +0000
commit76f4137fe5bb3d97d1ffa28cb490e71a96d5dcb9 (patch)
treec9df4b3814fad5dec21b74dfc3b4c52fb35ce5b1 /internal/postgres
parentedcdbe543d8f35f3b18c96a63080f96b3912a7d9 (diff)
downloadgo-x-pkgsite-76f4137fe5bb3d97d1ffa28cb490e71a96d5dcb9.tar.xz
all: remove arbitrary hard-coded timeouts in tests
If a test times out, that implies that it got stuck on something. By default, the Go testing package dumps goroutines when its own timeout is passed, which prints a goroutine dump, helping to reveal what was stuck. Adding an arbitrary timeout on top of the testing package's own timeout is, in my experience, almost always counterproductive. If the arbitrary timeout catches a real hang, it causes the test to fail instead of dumping goroutines, making it much harder to see what was stuck. On the other hand, if the timeouts are set aggressively enough to make the test fail early, they are often too aggressive for CI testing, causing flakes that then have to be triaged on an ongoing basis. On balance, the value of saving a minute or two for developers who have introduced a hang is not worth the cost of suppressing debugging information and causing flakes that have to be triaged. Fixes #61556. For #59347. Change-Id: I0263d0d9b18283470f100e5a0155818b87b5312f Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/521837 TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> kokoro-CI: kokoro <noreply+kokoro@google.com> Reviewed-by: Michael Matloob <matloob@golang.org>
Diffstat (limited to 'internal/postgres')
-rw-r--r--internal/postgres/delete_test.go3
-rw-r--r--internal/postgres/details_test.go6
-rw-r--r--internal/postgres/excluded_test.go3
-rw-r--r--internal/postgres/insert_module_test.go15
-rw-r--r--internal/postgres/licenses_test.go9
-rw-r--r--internal/postgres/postgres_test.go2
-rw-r--r--internal/postgres/requeue_test.go6
-rw-r--r--internal/postgres/search_test.go18
-rw-r--r--internal/postgres/stdlib_test.go3
-rw-r--r--internal/postgres/symbol_test.go12
-rw-r--r--internal/postgres/unit_test.go21
-rw-r--r--internal/postgres/version_map_test.go9
-rw-r--r--internal/postgres/version_test.go6
-rw-r--r--internal/postgres/versionstate_test.go3
14 files changed, 38 insertions, 78 deletions
diff --git a/internal/postgres/delete_test.go b/internal/postgres/delete_test.go
index 1ff54d65..6652a240 100644
--- a/internal/postgres/delete_test.go
+++ b/internal/postgres/delete_test.go
@@ -23,8 +23,7 @@ func TestDeleteModule(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
v := sample.DefaultModule()
diff --git a/internal/postgres/details_test.go b/internal/postgres/details_test.go
index 10d83ab3..8d9e3e52 100644
--- a/internal/postgres/details_test.go
+++ b/internal/postgres/details_test.go
@@ -96,8 +96,7 @@ func TestGetNestedModules_Excluded(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
test := struct {
name string
@@ -143,8 +142,7 @@ func TestPostgres_GetModuleInfo(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
testCases := []struct {
name, path, version string
diff --git a/internal/postgres/excluded_test.go b/internal/postgres/excluded_test.go
index 96186c53..02dd2b08 100644
--- a/internal/postgres/excluded_test.go
+++ b/internal/postgres/excluded_test.go
@@ -13,8 +13,7 @@ func TestIsExcluded(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
if err := testDB.InsertExcludedPrefix(ctx, "bad", "someone", "because"); err != nil {
t.Fatal(err)
diff --git a/internal/postgres/insert_module_test.go b/internal/postgres/insert_module_test.go
index ee3c25a2..aa4fed40 100644
--- a/internal/postgres/insert_module_test.go
+++ b/internal/postgres/insert_module_test.go
@@ -195,8 +195,7 @@ func TestUpsertModule(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
m := sample.Module("upsert.org", "v1.2.3", "dir/p")
@@ -285,8 +284,7 @@ func TestInsertModuleNewCoverage(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
m := sample.DefaultModule()
newCoverage := licensecheck.Coverage{
@@ -447,8 +445,7 @@ func TestPostgres_NewerAlternative(t *testing.T) {
// alternative version.
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
const (
altVersion = "v1.2.0"
@@ -488,8 +485,7 @@ func TestMakeValidUnicode(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
db := testDB.Underlying()
@@ -529,8 +525,7 @@ func TestLock(t *testing.T) {
// that wants the lock eventually gets it.
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
db := testDB.Underlying()
diff --git a/internal/postgres/licenses_test.go b/internal/postgres/licenses_test.go
index 5b43469d..c0b02f9b 100644
--- a/internal/postgres/licenses_test.go
+++ b/internal/postgres/licenses_test.go
@@ -42,8 +42,7 @@ func TestGetLicenses(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout*5)
- defer cancel()
+ ctx := context.Background()
MustInsertModule(ctx, t, testDB, testModule)
MustInsertModule(ctx, t, testDB, stdlibModule)
for _, test := range []struct {
@@ -131,8 +130,7 @@ func TestGetModuleLicenses(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
testModule.Licenses = nil
for _, p := range testModule.Packages() {
@@ -169,8 +167,7 @@ func TestGetLicensesBypass(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
bypassDB := NewBypassingLicenseCheck(testDB.db)
diff --git a/internal/postgres/postgres_test.go b/internal/postgres/postgres_test.go
index 5550b7d8..8f1e497f 100644
--- a/internal/postgres/postgres_test.go
+++ b/internal/postgres/postgres_test.go
@@ -14,8 +14,6 @@ import (
"golang.org/x/pkgsite/internal/derrors"
)
-const testTimeout = 5 * time.Second
-
var acquire func(*testing.T) (*DB, func())
func TestMain(m *testing.M) {
diff --git a/internal/postgres/requeue_test.go b/internal/postgres/requeue_test.go
index 6198b65e..f106504c 100644
--- a/internal/postgres/requeue_test.go
+++ b/internal/postgres/requeue_test.go
@@ -28,8 +28,7 @@ func TestGetNextModulesToFetchAndUpdateModuleVersionStatesForReprocessing(t *tes
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
type testData struct {
modulePath, version string
@@ -213,8 +212,7 @@ func TestGetNextModulesToFetchOnlyPicksUpStatus0AndStatusGreaterThan500(t *testi
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
statuses := []int{
http.StatusOK,
diff --git a/internal/postgres/search_test.go b/internal/postgres/search_test.go
index 747d074e..40455a0d 100644
--- a/internal/postgres/search_test.go
+++ b/internal/postgres/search_test.go
@@ -744,8 +744,7 @@ func TestSearchPenalties(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
// All these modules will have the same text ranking for the search term "foo",
// but different scores due to penalties.
@@ -797,8 +796,7 @@ func TestExcludedFromSearch(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
// Insert a module with two packages.
const domain = "exclude.com"
@@ -827,8 +825,7 @@ func TestSearchBypass(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
bypassDB := NewBypassingLicenseCheck(testDB.db)
m := nonRedistributableModule()
@@ -936,8 +933,7 @@ func TestUpsertSearchDocument(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
var packagePath = sample.ModulePath + "/A"
@@ -1005,8 +1001,7 @@ func TestUpsertSearchDocumentVersionHasGoMod(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
for _, hasGoMod := range []bool{true, false} {
m := sample.Module(fmt.Sprintf("foo.com/%t", hasGoMod), "v1.2.3", "bar")
@@ -1229,8 +1224,7 @@ func TestGetPackagesForSearchDocumentUpsert(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
moduleA := sample.Module("mod.com", "v1.2.3",
"A", "A/notinternal", "A/internal", "A/internal/B")
diff --git a/internal/postgres/stdlib_test.go b/internal/postgres/stdlib_test.go
index ce5f2198..c15a4941 100644
--- a/internal/postgres/stdlib_test.go
+++ b/internal/postgres/stdlib_test.go
@@ -17,8 +17,7 @@ func TestGetStdlibPaths(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
// Insert two versions of some stdlib packages.
for _, data := range []struct {
diff --git a/internal/postgres/symbol_test.go b/internal/postgres/symbol_test.go
index cc0766f1..07a289a3 100644
--- a/internal/postgres/symbol_test.go
+++ b/internal/postgres/symbol_test.go
@@ -24,8 +24,7 @@ func TestInsertSymbolNamesAndHistory(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
mod := sample.DefaultModule()
if len(mod.Packages()) != 1 {
@@ -87,8 +86,7 @@ func TestInsertSymbolNamesAndHistory(t *testing.T) {
func TestInsertSymbolHistory_Basic(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
mod := sample.DefaultModule()
if len(mod.Packages()) != 1 {
@@ -115,8 +113,7 @@ func TestInsertSymbolHistory_Basic(t *testing.T) {
func TestInsertSymbolHistory_MultiVersions(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
typ := internal.Symbol{
SymbolMeta: internal.SymbolMeta{
@@ -215,8 +212,7 @@ func TestInsertSymbolHistory_MultiVersions(t *testing.T) {
func TestInsertSymbolHistory_MultiGOOS(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
typ := internal.Symbol{
SymbolMeta: internal.SymbolMeta{
diff --git a/internal/postgres/unit_test.go b/internal/postgres/unit_test.go
index 9c7813c0..5f83af4c 100644
--- a/internal/postgres/unit_test.go
+++ b/internal/postgres/unit_test.go
@@ -24,8 +24,7 @@ import (
func TestGetUnitMeta(t *testing.T) {
t.Parallel()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout*2)
- defer cancel()
+ ctx := context.Background()
testGetUnitMeta(t, ctx)
}
@@ -207,8 +206,7 @@ func TestGetUnitMetaBypass(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
bypassDB := NewBypassingLicenseCheck(testDB.db)
@@ -580,8 +578,7 @@ func TestGetUnit(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
InsertSampleDirectoryTree(ctx, t, testDB)
// Add a module that has READMEs in a directory and a package.
@@ -773,8 +770,7 @@ func TestGetUnit_SubdirectoriesShowNonRedistPackages(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
m := sample.DefaultModule()
m.IsRedistributable = false
@@ -786,8 +782,7 @@ func TestGetUnitFieldSet(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
readme := &internal.Readme{
Filepath: "a.com/m/dir/p/README.md",
@@ -878,8 +873,7 @@ func TestGetUnitBuildContext(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
// Add a module that has documentation for two Go build contexts.
m := sample.Module("a.com/twodoc", "v1.2.3", "p")
@@ -971,8 +965,7 @@ func TestGetUnitBypass(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
bypassDB := NewBypassingLicenseCheck(testDB.db)
m := nonRedistributableModule()
diff --git a/internal/postgres/version_map_test.go b/internal/postgres/version_map_test.go
index 01fff1b4..3cbc325c 100644
--- a/internal/postgres/version_map_test.go
+++ b/internal/postgres/version_map_test.go
@@ -20,8 +20,7 @@ func TestReadAndWriteVersionMap(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
m := sample.Module("golang.org/x/tools", sample.VersionString, "go/packages")
MustInsertModule(ctx, t, testDB, m)
@@ -48,8 +47,7 @@ func TestUpsertVersionMap(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
upsertAndVerifyVersionMap := func(vm *internal.VersionMap) {
err := testDB.UpsertVersionMap(ctx, vm)
@@ -84,8 +82,7 @@ func TestGetVersionMapsWithNon2xxStatus(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
tests := []struct {
path string
diff --git a/internal/postgres/version_test.go b/internal/postgres/version_test.go
index 7b09998b..66c0453e 100644
--- a/internal/postgres/version_test.go
+++ b/internal/postgres/version_test.go
@@ -58,8 +58,7 @@ func TestGetVersions(t *testing.T) {
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
for _, m := range testModules {
goMod := "module " + m.ModulePath
@@ -255,8 +254,7 @@ func TestGetLatestInfo(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
for _, m := range []*internal.Module{
sample.Module("a.com/M", "v99.0.0+incompatible", "all", "most"),
diff --git a/internal/postgres/versionstate_test.go b/internal/postgres/versionstate_test.go
index df15fa5f..8d2100cd 100644
--- a/internal/postgres/versionstate_test.go
+++ b/internal/postgres/versionstate_test.go
@@ -83,8 +83,7 @@ func TestModuleVersionState(t *testing.T) {
t.Parallel()
testDB, release := acquire(t)
defer release()
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
- defer cancel()
+ ctx := context.Background()
// verify that latest index timestamp works
initialTime, err := testDB.LatestIndexTimestamp(ctx)