@@ -36,6 +36,10 @@ func TestNoDeadlockOnError(t *testing.T) {
36
36
PingFunc : func () (* osquery.ExtensionStatus , error ) {
37
37
return & osquery.ExtensionStatus {}, nil
38
38
},
39
+ DeRegisterExtensionFunc : func (uuid osquery.ExtensionRouteUUID ) (* osquery.ExtensionStatus , error ) {
40
+ return & osquery.ExtensionStatus {}, nil
41
+ },
42
+ CloseFunc : func () {},
39
43
}
40
44
server := & ExtensionManagerServer {
41
45
serverClient : mock ,
@@ -70,6 +74,10 @@ func TestShutdownWhenPingFails(t *testing.T) {
70
74
// As if the socket was closed
71
75
return nil , syscall .EPIPE
72
76
},
77
+ DeRegisterExtensionFunc : func (uuid osquery.ExtensionRouteUUID ) (* osquery.ExtensionStatus , error ) {
78
+ return & osquery.ExtensionStatus {}, nil
79
+ },
80
+ CloseFunc : func () {},
73
81
}
74
82
server := & ExtensionManagerServer {
75
83
serverClient : mock ,
@@ -79,6 +87,8 @@ func TestShutdownWhenPingFails(t *testing.T) {
79
87
err := server .Run ()
80
88
assert .Error (t , err )
81
89
assert .Contains (t , err .Error (), "broken pipe" )
90
+ assert .True (t , mock .DeRegisterExtensionFuncInvoked )
91
+ assert .True (t , mock .CloseFuncInvoked )
82
92
}
83
93
84
94
// How many parallel tests to run (because sync issues do not occur on every
@@ -104,6 +114,10 @@ func testShutdownDeadlock(t *testing.T) {
104
114
RegisterExtensionFunc : func (info * osquery.InternalExtensionInfo , registry osquery.ExtensionRegistry ) (* osquery.ExtensionStatus , error ) {
105
115
return & osquery.ExtensionStatus {Code : 0 , UUID : retUUID }, nil
106
116
},
117
+ DeRegisterExtensionFunc : func (uuid osquery.ExtensionRouteUUID ) (* osquery.ExtensionStatus , error ) {
118
+ return & osquery.ExtensionStatus {}, nil
119
+ },
120
+ CloseFunc : func () {},
107
121
}
108
122
server := ExtensionManagerServer {serverClient : mock , sockPath : tempPath .Name ()}
109
123
@@ -172,6 +186,10 @@ func TestShutdownBasic(t *testing.T) {
172
186
RegisterExtensionFunc : func (info * osquery.InternalExtensionInfo , registry osquery.ExtensionRegistry ) (* osquery.ExtensionStatus , error ) {
173
187
return & osquery.ExtensionStatus {Code : 0 , UUID : retUUID }, nil
174
188
},
189
+ DeRegisterExtensionFunc : func (uuid osquery.ExtensionRouteUUID ) (* osquery.ExtensionStatus , error ) {
190
+ return & osquery.ExtensionStatus {}, nil
191
+ },
192
+ CloseFunc : func () {},
175
193
}
176
194
server := ExtensionManagerServer {serverClient : mock , sockPath : tempPath .Name ()}
177
195
0 commit comments