From 75a8b839465f81526af22d83eb60bc40ae5096fb Mon Sep 17 00:00:00 2001 From: Gusted Date: Thu, 14 Nov 2024 11:18:48 +0100 Subject: [PATCH] chore: improve slow tests - Optimize generting random files. - Reduce big file of 128MiB to 32MiB (git was never made for large files anyways, but simply tests that it works). - Reduce looped git operations from 100 iterations to 10. - Add extra print statements to know what a slow test is doing, this also helps to see if a particular piece of code in a slow test is the culprit or if the test is just very extensive. - Set `[ui.notification].EVENT_SOURCE_UPDATE_TIME` to 1s to speed up `TestEventSourceManagerRun`. - Sneaked in some general test improvements. --- tests/integration/actions_trigger_test.go | 7 +- tests/integration/cmd_admin_test.go | 2 + tests/integration/cmd_forgejo_actions_test.go | 2 + .../git_helper_for_declarative_test.go | 5 +- tests/integration/git_push_test.go | 8 +- tests/integration/git_test.go | 83 +++++++----------- tests/integration/migrate_test.go | 84 ++++++++----------- tests/integration/pull_merge_test.go | 5 +- tests/integration/repo_webhook_test.go | 1 + tests/integration/user_count_test.go | 1 + tests/mysql.ini.tmpl | 3 + tests/pgsql.ini.tmpl | 3 + tests/sqlite.ini.tmpl | 3 + 13 files changed, 94 insertions(+), 113 deletions(-) diff --git a/tests/integration/actions_trigger_test.go b/tests/integration/actions_trigger_test.go index dfd1f75b3c..25bdc8018f 100644 --- a/tests/integration/actions_trigger_test.go +++ b/tests/integration/actions_trigger_test.go @@ -302,12 +302,11 @@ jobs: }, } { t.Run(testCase.onType, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() defer func() { // cleanup leftovers, start from scratch - _, err = db.DeleteByBean(db.DefaultContext, actions_model.ActionRun{RepoID: baseRepo.ID}) - require.NoError(t, err) - _, err = db.DeleteByBean(db.DefaultContext, actions_model.ActionRunJob{RepoID: baseRepo.ID}) - require.NoError(t, err) + unittest.AssertSuccessfulDelete(t, &actions_model.ActionRun{RepoID: baseRepo.ID}) + unittest.AssertSuccessfulDelete(t, &actions_model.ActionRunJob{RepoID: baseRepo.ID}) }() // trigger the onType event diff --git a/tests/integration/cmd_admin_test.go b/tests/integration/cmd_admin_test.go index 576b09eefd..b493dff919 100644 --- a/tests/integration/cmd_admin_test.go +++ b/tests/integration/cmd_admin_test.go @@ -10,6 +10,7 @@ import ( "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" + "code.gitea.io/gitea/tests" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -44,6 +45,7 @@ func Test_Cmd_AdminUser(t *testing.T) { }, } { t.Run(testCase.name, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() name := "testuser" options := []string{"user", "create", "--username", name, "--password", "password", "--email", name + "@example.com"} diff --git a/tests/integration/cmd_forgejo_actions_test.go b/tests/integration/cmd_forgejo_actions_test.go index 067cdefb88..bda69edb80 100644 --- a/tests/integration/cmd_forgejo_actions_test.go +++ b/tests/integration/cmd_forgejo_actions_test.go @@ -15,6 +15,7 @@ import ( repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" + "code.gitea.io/gitea/tests" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -67,6 +68,7 @@ func Test_CmdForgejo_Actions(t *testing.T) { }, } { t.Run(testCase.testName, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() output, err := runMainApp("forgejo-cli", "actions", "register", "--secret", testCase.secret, "--scope", testCase.scope) assert.EqualValues(t, "", output) diff --git a/tests/integration/git_helper_for_declarative_test.go b/tests/integration/git_helper_for_declarative_test.go index 490d4caae0..49e9741e80 100644 --- a/tests/integration/git_helper_for_declarative_test.go +++ b/tests/integration/git_helper_for_declarative_test.go @@ -18,7 +18,6 @@ import ( "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/setting" - "code.gitea.io/gitea/modules/ssh" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/tests" @@ -33,8 +32,10 @@ func withKeyFile(t *testing.T, keyname string, callback func(string)) { require.NoError(t, err) keyFile := filepath.Join(tmpDir, keyname) - err = ssh.GenKeyPair(keyFile) + pubkey, privkey, err := util.GenerateSSHKeypair() require.NoError(t, err) + require.NoError(t, os.WriteFile(keyFile, privkey, 0o600)) + require.NoError(t, os.WriteFile(keyFile+".pub", pubkey, 0o600)) err = os.WriteFile(path.Join(tmpDir, "ssh"), []byte("#!/bin/bash\n"+ "ssh -o \"UserKnownHostsFile=/dev/null\" -o \"StrictHostKeyChecking=no\" -o \"IdentitiesOnly=yes\" -i \""+keyFile+"\" \"$@\""), 0o700) diff --git a/tests/integration/git_push_test.go b/tests/integration/git_push_test.go index c9c33dc110..50b4de9219 100644 --- a/tests/integration/git_push_test.go +++ b/tests/integration/git_push_test.go @@ -19,6 +19,7 @@ import ( repo_module "code.gitea.io/gitea/modules/repository" "code.gitea.io/gitea/modules/test" repo_service "code.gitea.io/gitea/services/repository" + "code.gitea.io/gitea/tests" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -40,7 +41,7 @@ func testGitPush(t *testing.T, u *url.URL) { forEachObjectFormat(t, func(t *testing.T, objectFormat git.ObjectFormat) { t.Run("Push branches at once", func(t *testing.T) { runTestGitPush(t, u, objectFormat, func(t *testing.T, gitPath string) (pushed, deleted []string) { - for i := 0; i < 100; i++ { + for i := 0; i < 10; i++ { branchName := fmt.Sprintf("branch-%d", i) pushed = append(pushed, branchName) doGitCreateBranch(gitPath, branchName)(t) @@ -88,7 +89,7 @@ func testGitPush(t *testing.T, u *url.URL) { t.Run("Push branches one by one", func(t *testing.T) { runTestGitPush(t, u, objectFormat, func(t *testing.T, gitPath string) (pushed, deleted []string) { - for i := 0; i < 100; i++ { + for i := 0; i < 10; i++ { branchName := fmt.Sprintf("branch-%d", i) doGitCreateBranch(gitPath, branchName)(t) doGitPushTestRepository(gitPath, "origin", branchName)(t) @@ -103,7 +104,7 @@ func testGitPush(t *testing.T, u *url.URL) { doGitPushTestRepository(gitPath, "origin", "master")(t) // make sure master is the default branch instead of a branch we are going to delete pushed = append(pushed, "master") - for i := 0; i < 100; i++ { + for i := 0; i < 10; i++ { branchName := fmt.Sprintf("branch-%d", i) pushed = append(pushed, branchName) doGitCreateBranch(gitPath, branchName)(t) @@ -139,6 +140,7 @@ func testGitPush(t *testing.T, u *url.URL) { } func runTestGitPush(t *testing.T, u *url.URL, objectFormat git.ObjectFormat, gitOperation func(t *testing.T, gitPath string) (pushed, deleted []string)) { + defer tests.PrintCurrentTest(t, 1)() user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) repo, err := repo_service.CreateRepository(db.DefaultContext, user, user, repo_service.CreateRepoOptions{ Name: "repo-to-push", diff --git a/tests/integration/git_test.go b/tests/integration/git_test.go index e16be82aff..551912b273 100644 --- a/tests/integration/git_test.go +++ b/tests/integration/git_test.go @@ -8,6 +8,7 @@ import ( "crypto/rand" "encoding/hex" "fmt" + "io" "net/http" "net/url" "os" @@ -39,8 +40,8 @@ import ( ) const ( - littleSize = 1024 // 1ko - bigSize = 128 * 1024 * 1024 // 128Mo + littleSize = 1024 // 1KiB + bigSize = 32 * 1024 * 1024 // 32MiB ) func TestGit(t *testing.T) { @@ -299,53 +300,26 @@ func lockFileTest(t *testing.T, filename, repoPath string) { require.NoError(t, err) } -func doCommitAndPush(t *testing.T, size int, repoPath, prefix string) string { - name, err := generateCommitWithNewData(size, repoPath, "user2@example.com", "User Two", prefix) - require.NoError(t, err) - _, _, err = git.NewCommand(git.DefaultContext, "push", "origin", "master").RunStdString(&git.RunOpts{Dir: repoPath}) // Push +func doCommitAndPush(t *testing.T, size int64, repoPath, prefix string) string { + name := generateCommitWithNewData(t, size, repoPath, "user2@example.com", "User Two", prefix) + _, _, err := git.NewCommand(git.DefaultContext, "push", "origin", "master").RunStdString(&git.RunOpts{Dir: repoPath}) // Push require.NoError(t, err) return name } -func generateCommitWithNewData(size int, repoPath, email, fullName, prefix string) (string, error) { - // Generate random file - bufSize := 4 * 1024 - if bufSize > size { - bufSize = size - } - - buffer := make([]byte, bufSize) - +func generateCommitWithNewData(t *testing.T, size int64, repoPath, email, fullName, prefix string) string { + t.Helper() tmpFile, err := os.CreateTemp(repoPath, prefix) - if err != nil { - return "", err - } + require.NoError(t, err) defer tmpFile.Close() - written := 0 - for written < size { - n := size - written - if n > bufSize { - n = bufSize - } - _, err := rand.Read(buffer[:n]) - if err != nil { - return "", err - } - n, err = tmpFile.Write(buffer[:n]) - if err != nil { - return "", err - } - written += n - } + _, err = io.CopyN(tmpFile, rand.Reader, size) + require.NoError(t, err) // Commit // Now here we should explicitly allow lfs filters to run globalArgs := git.AllowLFSFiltersArgs() - err = git.AddChangesWithArgs(repoPath, globalArgs, false, filepath.Base(tmpFile.Name())) - if err != nil { - return "", err - } - err = git.CommitChangesWithArgs(repoPath, globalArgs, git.CommitChangesOptions{ + require.NoError(t, git.AddChangesWithArgs(repoPath, globalArgs, false, filepath.Base(tmpFile.Name()))) + require.NoError(t, git.CommitChangesWithArgs(repoPath, globalArgs, git.CommitChangesOptions{ Committer: &git.Signature{ Email: email, Name: fullName, @@ -357,8 +331,8 @@ func generateCommitWithNewData(size int, repoPath, email, fullName, prefix strin When: time.Now(), }, Message: fmt.Sprintf("Testing commit @ %v", time.Now()), - }) - return filepath.Base(tmpFile.Name()), err + })) + return filepath.Base(tmpFile.Name()) } func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) { @@ -370,6 +344,7 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) ctx := NewAPITestContext(t, baseCtx.Username, baseCtx.Reponame, auth_model.AccessTokenScopeWriteRepository) t.Run("PushToNewProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("CreateBranchProtected", doGitCreateBranch(dstPath, "before-create-1")) t.Run("ProtectProtectedBranch", doProtectBranch(ctx, "before-create-1", parameterProtectBranch{ "enable_push": "all", @@ -378,8 +353,7 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) t.Run("PushProtectedBranch", doGitPushTestRepository(dstPath, "origin", "before-create-1")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "protected-file-data-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "protected-file-data-") }) t.Run("ProtectProtectedBranch", doProtectBranch(ctx, "before-create-2", parameterProtectBranch{ @@ -392,11 +366,11 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) }) t.Run("FailToPushToProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("ProtectProtectedBranch", doProtectBranch(ctx, "protected")) t.Run("Create modified-protected-branch", doGitCheckoutBranch(dstPath, "-b", "modified-protected-branch", "protected")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") }) doGitPushTestRepositoryFail(dstPath, "origin", "modified-protected-branch:protected")(t) @@ -405,10 +379,10 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) t.Run("PushToUnprotectedBranch", doGitPushTestRepository(dstPath, "origin", "modified-protected-branch:unprotected")) t.Run("FailToPushProtectedFilesToProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("Create modified-protected-file-protected-branch", doGitCheckoutBranch(dstPath, "-b", "modified-protected-file-protected-branch", "protected")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "protected-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "protected-file-") }) t.Run("ProtectedFilePathsApplyToAdmins", doProtectBranch(ctx, "protected")) @@ -419,13 +393,13 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) }) t.Run("PushUnprotectedFilesToProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("Create modified-unprotected-file-protected-branch", doGitCheckoutBranch(dstPath, "-b", "modified-unprotected-file-protected-branch", "protected")) t.Run("UnprotectedFilePaths", doProtectBranch(ctx, "protected", parameterProtectBranch{ "unprotected_file_patterns": "unprotected-file-*", })) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "unprotected-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "unprotected-file-") }) doGitPushTestRepository(dstPath, "origin", "modified-unprotected-file-protected-branch:protected")(t) doGitCheckoutBranch(dstPath, "protected")(t) @@ -441,19 +415,19 @@ func doBranchProtect(baseCtx *APITestContext, dstPath string) func(t *testing.T) })) t.Run("WhitelistedUserFailToForcePushToProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("Create toforce", doGitCheckoutBranch(dstPath, "-b", "toforce", "master")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") }) doGitPushTestRepositoryFail(dstPath, "-f", "origin", "toforce:protected")(t) }) t.Run("WhitelistedUserPushToProtectedBranch", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("Create topush", doGitCheckoutBranch(dstPath, "-b", "topush", "protected")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") }) doGitPushTestRepository(dstPath, "origin", "topush:protected")(t) }) @@ -693,8 +667,7 @@ func doAutoPRMerge(baseCtx *APITestContext, dstPath string) func(t *testing.T) { t.Run("CheckoutProtected", doGitCheckoutBranch(dstPath, "protected")) t.Run("PullProtected", doGitPull(dstPath, "origin", "protected")) t.Run("GenerateCommit", func(t *testing.T) { - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", "branch-data-file-") }) t.Run("PushToUnprotectedBranch", doGitPushTestRepository(dstPath, "origin", "protected:unprotected3")) var pr api.PullRequest diff --git a/tests/integration/migrate_test.go b/tests/integration/migrate_test.go index 43cfc4f37d..343cf752cc 100644 --- a/tests/integration/migrate_test.go +++ b/tests/integration/migrate_test.go @@ -5,7 +5,6 @@ package integration import ( - "context" "fmt" "net/http" "net/url" @@ -21,9 +20,10 @@ import ( user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/structs" + "code.gitea.io/gitea/modules/test" "code.gitea.io/gitea/modules/translation" "code.gitea.io/gitea/services/migrations" - "code.gitea.io/gitea/services/repository" + "code.gitea.io/gitea/tests" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -58,16 +58,8 @@ func TestMigrateLocalPath(t *testing.T) { func TestMigrate(t *testing.T) { onGiteaRun(t, func(t *testing.T, u *url.URL) { - AllowLocalNetworks := setting.Migrations.AllowLocalNetworks - setting.Migrations.AllowLocalNetworks = true - AppVer := setting.AppVer - // Gitea SDK (go-sdk) need to parse the AppVer from server response, so we must set it to a valid version string. - setting.AppVer = "1.16.0" - defer func() { - setting.Migrations.AllowLocalNetworks = AllowLocalNetworks - setting.AppVer = AppVer - migrations.Init() - }() + defer test.MockVariableValue(&setting.Migrations.AllowLocalNetworks, true)() + defer test.MockVariableValue(&setting.AppVer, "1.16.0")() require.NoError(t, migrations.Init()) ownerName := "user2" @@ -82,42 +74,40 @@ func TestMigrate(t *testing.T) { {svc: structs.GiteaService}, {svc: structs.ForgejoService}, } { - // Step 0: verify the repo is available - req := NewRequestf(t, "GET", "/%s/%s", ownerName, repoName) - _ = session.MakeRequest(t, req, http.StatusOK) - // Step 1: get the Gitea migration form - req = NewRequestf(t, "GET", "/repo/migrate/?service_type=%d", s.svc) - resp := session.MakeRequest(t, req, http.StatusOK) - // Step 2: load the form - htmlDoc := NewHTMLParser(t, resp.Body) - // Check form title - title := htmlDoc.doc.Find("title").Text() - assert.Contains(t, title, translation.NewLocale("en-US").TrString("new_migrate.title")) - // Get the link of migration button - link, exists := htmlDoc.doc.Find(`form.ui.form[action^="/repo/migrate"]`).Attr("action") - assert.True(t, exists, "The template has changed") - // Step 4: submit the migration to only migrate issues - migratedRepoName := "otherrepo" - req = NewRequestWithValues(t, "POST", link, map[string]string{ - "_csrf": htmlDoc.GetCSRF(), - "service": fmt.Sprintf("%d", s.svc), - "clone_addr": fmt.Sprintf("%s%s/%s", u, ownerName, repoName), - "auth_token": token, - "issues": "on", - "repo_name": migratedRepoName, - "description": "", - "uid": fmt.Sprintf("%d", repoOwner.ID), + t.Run(s.svc.Name(), func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + // Step 0: verify the repo is available + req := NewRequestf(t, "GET", "/%s/%s", ownerName, repoName) + _ = session.MakeRequest(t, req, http.StatusOK) + // Step 1: get the Gitea migration form + req = NewRequestf(t, "GET", "/repo/migrate/?service_type=%d", s.svc) + resp := session.MakeRequest(t, req, http.StatusOK) + // Step 2: load the form + htmlDoc := NewHTMLParser(t, resp.Body) + // Check form title + title := htmlDoc.doc.Find("title").Text() + assert.Contains(t, title, translation.NewLocale("en-US").TrString("new_migrate.title")) + // Get the link of migration button + link, exists := htmlDoc.doc.Find(`form.ui.form[action^="/repo/migrate"]`).Attr("action") + assert.True(t, exists, "The template has changed") + // Step 4: submit the migration to only migrate issues + migratedRepoName := "otherrepo-" + s.svc.Name() + req = NewRequestWithValues(t, "POST", link, map[string]string{ + "_csrf": htmlDoc.GetCSRF(), + "service": fmt.Sprintf("%d", s.svc), + "clone_addr": fmt.Sprintf("%s%s/%s", u, ownerName, repoName), + "auth_token": token, + "issues": "on", + "repo_name": migratedRepoName, + "description": "", + "uid": fmt.Sprintf("%d", repoOwner.ID), + }) + resp = session.MakeRequest(t, req, http.StatusSeeOther) + // Step 5: a redirection displays the migrated repository + assert.EqualValues(t, fmt.Sprintf("/%s/%s", ownerName, migratedRepoName), test.RedirectURL(resp)) + // Step 6: check the repo was created + unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{Name: migratedRepoName}) }) - resp = session.MakeRequest(t, req, http.StatusSeeOther) - // Step 5: a redirection displays the migrated repository - loc := resp.Header().Get("Location") - assert.EqualValues(t, fmt.Sprintf("/%s/%s", ownerName, migratedRepoName), loc) - // Step 6: check the repo was created - repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{Name: migratedRepoName}) - - // Step 7: delete the repository, so we can test with other services - err := repository.DeleteRepository(context.Background(), repoOwner, repo, false) - require.NoError(t, err) } }) } diff --git a/tests/integration/pull_merge_test.go b/tests/integration/pull_merge_test.go index 175f8a48de..a0ba99f3b9 100644 --- a/tests/integration/pull_merge_test.go +++ b/tests/integration/pull_merge_test.go @@ -822,6 +822,7 @@ func TestPullMergeBranchProtect(t *testing.T) { } for _, withAPIOrWeb := range []string{"api", "web"} { t.Run(testCase.name+" "+withAPIOrWeb, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() branch := testCase.name + "-" + withAPIOrWeb unprotected := branch + "-unprotected" doGitCheckoutBranch(dstPath, "master")(t) @@ -834,8 +835,7 @@ func TestPullMergeBranchProtect(t *testing.T) { ctx = NewAPITestContext(t, testCase.doer, "not used", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) ctx.Username = owner ctx.Reponame = repo - _, err := generateCommitWithNewData(littleSize, dstPath, "user2@example.com", "User Two", testCase.filename) - require.NoError(t, err) + generateCommitWithNewData(t, littleSize, dstPath, "user2@example.com", "User Two", testCase.filename) doGitPushTestRepository(dstPath, "origin", branch+":"+unprotected)(t) pr, err := doAPICreatePullRequest(ctx, owner, repo, branch, unprotected)(t) require.NoError(t, err) @@ -1015,6 +1015,7 @@ func TestPullAutoMergeAfterCommitStatusSucceed(t *testing.T) { // perform all tests with API and web routes for _, withAPI := range []bool{false, true} { t.Run(testCase.name, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() protectedBranch := parameterProtectBranch{ "enable_push": "true", "enable_status_check": "true", diff --git a/tests/integration/repo_webhook_test.go b/tests/integration/repo_webhook_test.go index 8f65b5c34f..37bad56b9e 100644 --- a/tests/integration/repo_webhook_test.go +++ b/tests/integration/repo_webhook_test.go @@ -316,6 +316,7 @@ func assertInput(t testing.TB, form *goquery.Selection, name string) string { func testWebhookForms(name string, session *TestSession, validFields map[string]string, invalidPatches ...map[string]string) func(t *testing.T) { return func(t *testing.T) { + defer tests.PrintCurrentTest(t)() t.Run("repo1", func(t *testing.T) { testWebhookFormsShared(t, "/user2/repo1/settings/hooks", name, session, validFields, invalidPatches...) }) diff --git a/tests/integration/user_count_test.go b/tests/integration/user_count_test.go index e76c30c1d4..db3a9b11a7 100644 --- a/tests/integration/user_count_test.go +++ b/tests/integration/user_count_test.go @@ -98,6 +98,7 @@ func (countTest *userCountTest) getCount(doc *goquery.Document, name string) (in func (countTest *userCountTest) TestPage(t *testing.T, page string, orgLink bool) { t.Run(page, func(t *testing.T) { + defer tests.PrintCurrentTest(t)() var userLink string if orgLink { diff --git a/tests/mysql.ini.tmpl b/tests/mysql.ini.tmpl index f24590a76b..e15e79952b 100644 --- a/tests/mysql.ini.tmpl +++ b/tests/mysql.ini.tmpl @@ -113,3 +113,6 @@ REPLY_TO_ADDRESS = incoming+%{token}@localhost [actions] ENABLED = true + +[ui.notification] +EVENT_SOURCE_UPDATE_TIME = 1s diff --git a/tests/pgsql.ini.tmpl b/tests/pgsql.ini.tmpl index 01d018c5b7..340531fb38 100644 --- a/tests/pgsql.ini.tmpl +++ b/tests/pgsql.ini.tmpl @@ -127,3 +127,6 @@ ENABLED = true [actions] ENABLED = true + +[ui.notification] +EVENT_SOURCE_UPDATE_TIME = 1s diff --git a/tests/sqlite.ini.tmpl b/tests/sqlite.ini.tmpl index 51234e3c8f..9229b62265 100644 --- a/tests/sqlite.ini.tmpl +++ b/tests/sqlite.ini.tmpl @@ -113,3 +113,6 @@ RENDER_CONTENT_MODE=sanitized [actions] ENABLED = true + +[ui.notification] +EVENT_SOURCE_UPDATE_TIME = 1s