@@ -23,38 +23,58 @@ func TestMain(m *testing.M) {
23
23
defer cleanup ()
24
24
25
25
setting .Git .HomePath = gitHomePath
26
+ os .Exit (m .Run ())
26
27
}
27
28
28
29
func TestRunWithContextStd (t * testing.T ) {
29
- cmd := NewCommand ("--version" )
30
- stdout , stderr , err := cmd .RunStdString (t .Context ())
31
- assert .NoError (t , err )
32
- assert .Empty (t , stderr )
33
- assert .Contains (t , stdout , "git version" )
34
-
35
- cmd = NewCommand ("--no-such-arg" )
36
- stdout , stderr , err = cmd .RunStdString (t .Context ())
37
- if assert .Error (t , err ) {
38
- assert .Equal (t , stderr , err .Stderr ())
39
- assert .Contains (t , err .Stderr (), "unknown option:" )
40
- assert .Contains (t , err .Error (), "exit status 129 - unknown option:" )
41
- assert .Empty (t , stdout )
30
+ {
31
+ cmd := NewCommand ("--version" )
32
+ stdout , stderr , err := cmd .RunStdString (t .Context ())
33
+ assert .NoError (t , err )
34
+ assert .Empty (t , stderr )
35
+ assert .Contains (t , stdout , "git version" )
42
36
}
43
37
44
- cmd = NewCommand ()
45
- cmd .AddDynamicArguments ("-test" )
46
- assert .ErrorIs (t , cmd .Run (t .Context ()), ErrBrokenCommand )
38
+ {
39
+ cmd := NewCommand ("ls-tree" , "no-such" )
40
+ stdout , stderr , err := cmd .RunStdString (t .Context ())
41
+ if assert .Error (t , err ) {
42
+ assert .Equal (t , stderr , err .Stderr ())
43
+ assert .Equal (t , "fatal: Not a valid object name no-such\n " , err .Stderr ())
44
+ assert .Equal (t , "exit status 128 - fatal: Not a valid object name no-such\n " , err .Error ())
45
+ assert .Empty (t , stdout )
46
+ }
47
+ }
48
+
49
+ {
50
+ cmd := NewCommand ("ls-tree" , "no-such" )
51
+ stdout , stderr , err := cmd .RunStdBytes (t .Context ())
52
+ if assert .Error (t , err ) {
53
+ assert .Equal (t , string (stderr ), err .Stderr ())
54
+ assert .Equal (t , "fatal: Not a valid object name no-such\n " , err .Stderr ())
55
+ assert .Equal (t , "exit status 128 - fatal: Not a valid object name no-such\n " , err .Error ())
56
+ assert .Empty (t , stdout )
57
+ }
58
+ }
47
59
48
- cmd = NewCommand ()
49
- cmd .AddDynamicArguments ("--test" )
50
- assert .ErrorIs (t , cmd .Run (t .Context ()), ErrBrokenCommand )
60
+ {
61
+ cmd := NewCommand ()
62
+ cmd .AddDynamicArguments ("-test" )
63
+ assert .ErrorIs (t , cmd .Run (t .Context ()), ErrBrokenCommand )
51
64
52
- subCmd := "version"
53
- cmd = NewCommand ().AddDynamicArguments (subCmd ) // for test purpose only, the sub-command should never be dynamic for production
54
- stdout , stderr , err = cmd .RunStdString (t .Context ())
55
- assert .NoError (t , err )
56
- assert .Empty (t , stderr )
57
- assert .Contains (t , stdout , "git version" )
65
+ cmd = NewCommand ()
66
+ cmd .AddDynamicArguments ("--test" )
67
+ assert .ErrorIs (t , cmd .Run (t .Context ()), ErrBrokenCommand )
68
+ }
69
+
70
+ {
71
+ subCmd := "version"
72
+ cmd := NewCommand ().AddDynamicArguments (subCmd ) // for test purpose only, the sub-command should never be dynamic for production
73
+ stdout , stderr , err := cmd .RunStdString (t .Context ())
74
+ assert .NoError (t , err )
75
+ assert .Empty (t , stderr )
76
+ assert .Contains (t , stdout , "git version" )
77
+ }
58
78
}
59
79
60
80
func TestGitArgument (t * testing.T ) {
0 commit comments