Browse Source

Force remove test repo root path in case previous test is still locking it (#3528)

Signed-off-by: Lauris Bukšis-Haberkorns <lauris@nix.lv>
tags/v1.21.12.1
Lauris BH GitHub 7 years ago
parent
commit
3a9c698821
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 1 deletions
  1. +14
    -1
      models/unit_tests.go

+ 14
- 1
models/unit_tests.go View File

@@ -9,6 +9,7 @@ import (
"os"
"path/filepath"
"testing"
"time"

"code.gitea.io/gitea/modules/setting"

@@ -72,6 +73,18 @@ func createTestEngine(fixturesDir string) error {
return InitFixtures(&testfixtures.SQLite{}, fixturesDir)
}

func removeAllWithRetry(dir string) error {
var err error
for i := 0; i < 20; i++ {
err = os.RemoveAll(dir)
if err == nil {
break
}
time.Sleep(100 * time.Millisecond)
}
return err
}

// PrepareTestDatabase load test fixtures into test database
func PrepareTestDatabase() error {
return LoadFixtures()
@@ -81,7 +94,7 @@ func PrepareTestDatabase() error {
// by tests that use the above MainTest(..) function.
func PrepareTestEnv(t testing.TB) {
assert.NoError(t, PrepareTestDatabase())
assert.NoError(t, os.RemoveAll(setting.RepoRootPath))
assert.NoError(t, removeAllWithRetry(setting.RepoRootPath))
metaPath := filepath.Join(giteaRoot, "integrations", "gitea-repositories-meta")
assert.NoError(t, com.CopyDir(metaPath, setting.RepoRootPath))
}


Loading…
Cancel
Save