loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'chore: improve preparing tests' (#5948) from gusted/improve-testz into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5948
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>

+78 -46
+22 -21
tests/integration/api_wiki_test.go
··· 9 9 "encoding/base64" 10 10 "fmt" 11 11 "net/http" 12 + "net/url" 12 13 "testing" 13 14 14 15 auth_model "code.gitea.io/gitea/models/auth" ··· 206 207 } 207 208 208 209 func TestAPINewWikiPage(t *testing.T) { 210 + defer tests.PrepareTestEnv(t)() 209 211 for _, title := range []string{ 210 212 "New page", 211 213 "&&&&", 212 214 } { 213 - defer tests.PrepareTestEnv(t)() 214 215 username := "user2" 215 216 session := loginUser(t, username) 216 217 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) ··· 386 387 } 387 388 388 389 func TestAPIWikiNonMasterBranch(t *testing.T) { 389 - defer tests.PrepareTestEnv(t)() 390 + onGiteaRun(t, func(t *testing.T, _ *url.URL) { 391 + user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) 392 + repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ 393 + WikiBranch: optional.Some("main"), 394 + }) 395 + defer f() 390 396 391 - user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) 392 - repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ 393 - WikiBranch: optional.Some("main"), 397 + uris := []string{ 398 + "revisions/Home", 399 + "pages", 400 + "page/Home", 401 + } 402 + baseURL := fmt.Sprintf("/api/v1/repos/%s/wiki", repo.FullName()) 403 + for _, uri := range uris { 404 + t.Run(uri, func(t *testing.T) { 405 + defer tests.PrintCurrentTest(t)() 406 + 407 + req := NewRequestf(t, "GET", "%s/%s", baseURL, uri) 408 + MakeRequest(t, req, http.StatusOK) 409 + }) 410 + } 394 411 }) 395 - defer f() 396 - 397 - uris := []string{ 398 - "revisions/Home", 399 - "pages", 400 - "page/Home", 401 - } 402 - baseURL := fmt.Sprintf("/api/v1/repos/%s/wiki", repo.FullName()) 403 - for _, uri := range uris { 404 - t.Run(uri, func(t *testing.T) { 405 - defer tests.PrintCurrentTest(t)() 406 - 407 - req := NewRequestf(t, "GET", "%s/%s", baseURL, uri) 408 - MakeRequest(t, req, http.StatusOK) 409 - }) 410 - } 411 412 }
+3
tests/integration/easymde_test.go
··· 6 6 import ( 7 7 "net/http" 8 8 "testing" 9 + 10 + "code.gitea.io/gitea/tests" 9 11 ) 10 12 11 13 func TestEasyMDESwitch(t *testing.T) { 14 + defer tests.PrepareTestEnv(t)() 12 15 session := loginUser(t, "user2") 13 16 testEasyMDESwitch(t, session, "user2/glob/issues/1", false) 14 17 testEasyMDESwitch(t, session, "user2/glob/issues/new", false)
-3
tests/integration/git_clone_wiki_test.go
··· 13 13 14 14 "code.gitea.io/gitea/modules/git" 15 15 "code.gitea.io/gitea/modules/util" 16 - "code.gitea.io/gitea/tests" 17 16 18 17 "github.com/stretchr/testify/assert" 19 18 "github.com/stretchr/testify/require" ··· 33 32 34 33 func TestRepoCloneWiki(t *testing.T) { 35 34 onGiteaRun(t, func(t *testing.T, u *url.URL) { 36 - defer tests.PrepareTestEnv(t)() 37 - 38 35 dstPath := t.TempDir() 39 36 40 37 r := fmt.Sprintf("%suser2/repo1.wiki.git", u.String())
+9
tests/integration/git_helper_for_declarative_test.go
··· 12 12 "os" 13 13 "path" 14 14 "path/filepath" 15 + "regexp" 15 16 "strconv" 16 17 "testing" 17 18 "time" ··· 59 60 return &u2 60 61 } 61 62 63 + var rootPathRe = regexp.MustCompile("\\[repository\\]\nROOT\\s=\\s.*") 64 + 62 65 func onGiteaRun[T testing.TB](t T, callback func(T, *url.URL)) { 63 66 defer tests.PrepareTestEnv(t, 1)() 64 67 s := http.Server{ ··· 77 80 require.NoError(t, err) 78 81 u.Host = listener.Addr().String() 79 82 83 + // Override repository root in config. 84 + conf, err := os.ReadFile(setting.CustomConf) 85 + require.NoError(t, err) 86 + require.NoError(t, os.WriteFile(setting.CustomConf, rootPathRe.ReplaceAll(conf, []byte("[repository]\nROOT = "+setting.RepoRootPath)), os.ModePerm)) 87 + 80 88 defer func() { 89 + require.NoError(t, os.WriteFile(setting.CustomConf, conf, os.ModePerm)) 81 90 ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute) 82 91 s.Shutdown(ctx) 83 92 cancel()
+44 -22
tests/test_utils.go
··· 48 48 os.Exit(1) 49 49 } 50 50 51 + var preparedDir string 52 + 51 53 func InitTest(requireGitea bool) { 52 54 log.RegisterEventWriter("test", testlogger.NewTestLoggerWriter) 53 55 ··· 180 182 setting.Database.Path = ":memory:" 181 183 } 182 184 185 + setting.Repository.Local.LocalCopyPath = os.TempDir() 186 + dir, err := os.MkdirTemp("", "prepared-forgejo") 187 + if err != nil { 188 + log.Fatal("os.MkdirTemp: %v", err) 189 + } 190 + preparedDir = dir 191 + 192 + setting.Repository.Local.LocalCopyPath, err = os.MkdirTemp("", "local-upload") 193 + if err != nil { 194 + log.Fatal("os.MkdirTemp: %v", err) 195 + } 196 + 197 + if err := unittest.CopyDir(path.Join(filepath.Dir(setting.AppPath), "tests/gitea-repositories-meta"), dir); err != nil { 198 + log.Fatal("os.RemoveAll: %v", err) 199 + } 200 + ownerDirs, err := os.ReadDir(dir) 201 + if err != nil { 202 + log.Fatal("os.ReadDir: %v", err) 203 + } 204 + fmt.Println(ownerDirs) 205 + 206 + for _, ownerDir := range ownerDirs { 207 + if !ownerDir.Type().IsDir() { 208 + continue 209 + } 210 + repoDirs, err := os.ReadDir(filepath.Join(dir, ownerDir.Name())) 211 + if err != nil { 212 + log.Fatal("os.ReadDir: %v", err) 213 + } 214 + for _, repoDir := range repoDirs { 215 + _ = os.MkdirAll(filepath.Join(dir, ownerDir.Name(), repoDir.Name(), "objects", "pack"), 0o755) 216 + _ = os.MkdirAll(filepath.Join(dir, ownerDir.Name(), repoDir.Name(), "objects", "info"), 0o755) 217 + _ = os.MkdirAll(filepath.Join(dir, ownerDir.Name(), repoDir.Name(), "refs", "heads"), 0o755) 218 + _ = os.MkdirAll(filepath.Join(dir, ownerDir.Name(), repoDir.Name(), "refs", "tag"), 0o755) 219 + _ = os.MkdirAll(filepath.Join(dir, ownerDir.Name(), repoDir.Name(), "refs", "pull"), 0o755) 220 + } 221 + } 222 + 183 223 routers.InitWebInstalled(graceful.GetManager().HammerContext()) 184 224 } 185 225 ··· 228 268 } 229 269 230 270 func PrepareGitRepoDirectory(t testing.TB) { 231 - require.NoError(t, util.RemoveAll(setting.RepoRootPath)) 232 - require.NoError(t, unittest.CopyDir(path.Join(filepath.Dir(setting.AppPath), "tests/gitea-repositories-meta"), setting.RepoRootPath)) 233 - ownerDirs, err := os.ReadDir(setting.RepoRootPath) 234 - if err != nil { 235 - require.NoError(t, err, "unable to read the new repo root: %v\n", err) 236 - } 237 - for _, ownerDir := range ownerDirs { 238 - if !ownerDir.Type().IsDir() { 239 - continue 240 - } 241 - repoDirs, err := os.ReadDir(filepath.Join(setting.RepoRootPath, ownerDir.Name())) 242 - if err != nil { 243 - require.NoError(t, err, "unable to read the new repo root: %v\n", err) 244 - } 245 - for _, repoDir := range repoDirs { 246 - _ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "objects", "pack"), 0o755) 247 - _ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "objects", "info"), 0o755) 248 - _ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "refs", "heads"), 0o755) 249 - _ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "refs", "tag"), 0o755) 250 - _ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "refs", "pull"), 0o755) 251 - } 252 - } 271 + var err error 272 + setting.RepoRootPath, err = os.MkdirTemp(t.TempDir(), "forgejo-repo-rooth") 273 + require.NoError(t, err) 274 + require.NoError(t, unittest.CopyDir(preparedDir, setting.RepoRootPath)) 253 275 } 254 276 255 277 func PrepareArtifactsStorage(t testing.TB) {