@@ -2,10 +2,10 @@ package examples
2
2
3
3
import (
4
4
"flag"
5
- "go/build"
6
5
"os"
7
6
"os/exec"
8
7
"path/filepath"
8
+ "runtime"
9
9
"testing"
10
10
)
11
11
@@ -14,26 +14,43 @@ var examplesTest = flag.Bool("examples", false, "run the examples tests")
14
14
var defaultURL = "https://github.com/git-fixtures/basic.git"
15
15
16
16
var args = map [string ][]string {
17
- "branch" : {defaultURL , tempFolder ()},
18
- "checkout" : {defaultURL , tempFolder (), "35e85108805c84807bc66a02d91535e1e24b38b9" },
19
- "clone" : {defaultURL , tempFolder ()},
20
- "context" : {defaultURL , tempFolder ()},
21
- "commit" : {cloneRepository (defaultURL , tempFolder ())},
22
- "custom_http" : {defaultURL },
23
- "open" : {cloneRepository (defaultURL , tempFolder ())},
24
- "progress" : {defaultURL , tempFolder ()},
25
- "push" : {setEmptyRemote (cloneRepository (defaultURL , tempFolder ()))},
26
- "revision" : {cloneRepository (defaultURL , tempFolder ()), "master~2^" },
27
- "showcase" : {defaultURL , tempFolder ()},
28
- "tag" : {cloneRepository (defaultURL , tempFolder ())},
29
- "pull" : {createRepositoryWithRemote (tempFolder (), defaultURL )},
30
- "ls" : {cloneRepository (defaultURL , tempFolder ()), "HEAD" , "vendor" },
31
- "merge_base" : {cloneRepository (defaultURL , tempFolder ()), "--is-ancestor" , "HEAD~3" , "HEAD^" },
17
+ "blame" : {defaultURL , "CHANGELOG" },
18
+ "branch" : {defaultURL , tempFolder ()},
19
+ "checkout" : {defaultURL , tempFolder (), "35e85108805c84807bc66a02d91535e1e24b38b9" },
20
+ "checkout-branch" : {defaultURL , tempFolder (), "branch" },
21
+ "clone" : {defaultURL , tempFolder ()},
22
+ "commit" : {cloneRepository (defaultURL , tempFolder ())},
23
+ "context" : {defaultURL , tempFolder ()},
24
+ "custom_http" : {defaultURL },
25
+ "find-if-any-tag-point-head" : {cloneRepository (defaultURL , tempFolder ())},
26
+ "ls" : {cloneRepository (defaultURL , tempFolder ()), "HEAD" , "vendor" },
27
+ "ls-remote" : {defaultURL },
28
+ "merge_base" : {cloneRepository (defaultURL , tempFolder ()), "--is-ancestor" , "HEAD~3" , "HEAD^" },
29
+ "open" : {cloneRepository (defaultURL , tempFolder ())},
30
+ "progress" : {defaultURL , tempFolder ()},
31
+ "pull" : {createRepositoryWithRemote (tempFolder (), defaultURL )},
32
+ "push" : {setEmptyRemote (cloneRepository (defaultURL , tempFolder ()))},
33
+ "revision" : {cloneRepository (defaultURL , tempFolder ()), "master~2^" },
34
+ "sha256" : {tempFolder ()},
35
+ "showcase" : {defaultURL , tempFolder ()},
36
+ "tag" : {cloneRepository (defaultURL , tempFolder ())},
32
37
}
33
38
34
- var ignored = map [string ]bool {}
39
+ // tests not working / set-up
40
+ var ignored = map [string ]bool {
41
+ "azure_devops" : true ,
42
+ "ls" : true ,
43
+ "sha256" : true ,
44
+ "submodule" : true ,
45
+ "tag-create-push" : true ,
46
+ }
47
+
48
+ var (
49
+ tempFolders = []string {}
35
50
36
- var tempFolders = []string {}
51
+ _ , callingFile , _ , _ = runtime .Caller (0 )
52
+ basepath = filepath .Dir (callingFile )
53
+ )
37
54
38
55
func TestExamples (t * testing.T ) {
39
56
flag .Parse ()
@@ -44,13 +61,13 @@ func TestExamples(t *testing.T) {
44
61
45
62
defer deleteTempFolders ()
46
63
47
- examples , err := filepath .Glob (examplesFolder ( ))
64
+ exampleMains , err := filepath .Glob (filepath . Join ( basepath , "*" , "main.go" ))
48
65
if err != nil {
49
66
t .Errorf ("error finding tests: %s" , err )
50
67
}
51
68
52
- for _ , example := range examples {
53
- dir := filepath .Dir (example )
69
+ for _ , main := range exampleMains {
70
+ dir := filepath .Dir (main )
54
71
_ , name := filepath .Split (dir )
55
72
56
73
if ignored [name ] {
@@ -71,20 +88,6 @@ func tempFolder() string {
71
88
return path
72
89
}
73
90
74
- func packageFolder () string {
75
- return filepath .Join (
76
- build .Default .GOPATH ,
77
- "src" , "github.com/go-git/go-git/v5" ,
78
- )
79
- }
80
-
81
- func examplesFolder () string {
82
- return filepath .Join (
83
- packageFolder (),
84
- "_examples" , "*" , "main.go" ,
85
- )
86
- }
87
-
88
91
func cloneRepository (url , folder string ) string {
89
92
cmd := exec .Command ("git" , "clone" , url , folder )
90
93
err := cmd .Run ()
0 commit comments