@@ -6,6 +6,8 @@ package models
6
6
7
7
import (
8
8
"fmt"
9
+ "io/ioutil"
10
+ "net/url"
9
11
"os"
10
12
"path/filepath"
11
13
"testing"
@@ -18,7 +20,6 @@ import (
18
20
"github.com/go-xorm/xorm"
19
21
"github.com/stretchr/testify/assert"
20
22
"gopkg.in/testfixtures.v2"
21
- "net/url"
22
23
)
23
24
24
25
// NonexistentID an ID that will never exist
@@ -27,32 +28,48 @@ const NonexistentID = 9223372036854775807
27
28
// giteaRoot a path to the gitea root
28
29
var giteaRoot string
29
30
31
+ func fatalTestError (fmtStr string , args ... interface {}) {
32
+ fmt .Fprintf (os .Stderr , fmtStr , args ... )
33
+ os .Exit (1 )
34
+ }
35
+
30
36
// MainTest a reusable TestMain(..) function for unit tests that need to use a
31
37
// test database. Creates the test database, and sets necessary settings.
32
38
func MainTest (m * testing.M , pathToGiteaRoot string ) {
33
39
var err error
34
40
giteaRoot = pathToGiteaRoot
35
41
fixturesDir := filepath .Join (pathToGiteaRoot , "models" , "fixtures" )
36
42
if err = createTestEngine (fixturesDir ); err != nil {
37
- fmt .Fprintf (os .Stderr , "Error creating test engine: %v\n " , err )
38
- os .Exit (1 )
43
+ fatalTestError ("Error creating test engine: %v\n " , err )
39
44
}
40
45
41
46
setting .AppURL = "https://try.gitea.io/"
42
47
setting .RunUser = "runuser"
43
48
setting .SSH .Port = 3000
44
49
setting .SSH .Domain = "try.gitea.io"
45
- setting .RepoRootPath = filepath .Join (os .TempDir (), "repos" )
46
- setting .AppDataPath = filepath .Join (os .TempDir (), "appdata" )
50
+ setting .RepoRootPath , err = ioutil .TempDir (os .TempDir (), "repos" )
51
+ if err != nil {
52
+ fatalTestError ("TempDir: %v\n " , err )
53
+ }
54
+ setting .AppDataPath , err = ioutil .TempDir (os .TempDir (), "appdata" )
55
+ if err != nil {
56
+ fatalTestError ("TempDir: %v\n " , err )
57
+ }
47
58
setting .AppWorkPath = pathToGiteaRoot
48
59
setting .StaticRootPath = pathToGiteaRoot
49
60
setting .GravatarSourceURL , err = url .Parse ("https://secure.gravatar.com/avatar/" )
50
61
if err != nil {
51
- fmt .Fprintf (os .Stderr , "Error url.Parse: %v\n " , err )
52
- os .Exit (1 )
62
+ fatalTestError ("url.Parse: %v\n " , err )
53
63
}
54
64
55
- os .Exit (m .Run ())
65
+ exitStatus := m .Run ()
66
+ if err = removeAllWithRetry (setting .RepoRootPath ); err != nil {
67
+ fatalTestError ("os.RemoveAll: %v\n " , err )
68
+ }
69
+ if err = removeAllWithRetry (setting .AppDataPath ); err != nil {
70
+ fatalTestError ("os.RemoveAll: %v\n " , err )
71
+ }
72
+ os .Exit (exitStatus )
56
73
}
57
74
58
75
func createTestEngine (fixturesDir string ) error {
0 commit comments