@@ -12,6 +12,9 @@ import (
1212 "strings"
1313 "testing"
1414
15+ "github.com/Azure/azure-extension-platform/pkg/extensionevents"
16+ "github.com/Azure/azure-extension-platform/pkg/handlerenv"
17+ "github.com/Azure/azure-extension-platform/pkg/logging"
1518 "github.com/Azure/run-command-handler-linux/internal/constants"
1619 "github.com/Azure/run-command-handler-linux/internal/files"
1720 "github.com/Azure/run-command-handler-linux/internal/handlersettings"
@@ -74,7 +77,15 @@ func Test_CopyMrseqFiles_MrseqFilesAreCopied(t *testing.T) {
7477 os .Create (filepath .Join (previousStatusDirectory , "ABCD.1.status" ))
7578 os .Create (filepath .Join (previousStatusDirectory , "abc.cs" )) // this should not be copied to currentExtensionVersionDirectory
7679
77- err = CopyStateForUpdate (log .NewContext (log .NewNopLogger ()))
80+ tempDir , _ := os .MkdirTemp ("" , "deletecmd" )
81+ defer os .RemoveAll (tempDir )
82+ handlerEnvironment := handlerenv.HandlerEnvironment {
83+ EventsFolder : tempDir ,
84+ }
85+
86+ extensionLogger := logging .New (nil )
87+ extensionEventManager := extensionevents .New (extensionLogger , & handlerEnvironment )
88+ err = CopyStateForUpdate (log .NewContext (log .NewNopLogger ()), extensionEventManager )
7889 require .Nil (t , err )
7990
8091 files , _ = ioutil .ReadDir (currentExtensionVersionDirectory )
@@ -178,23 +189,24 @@ func Test_checkAndSaveSeqNum(t *testing.T) {
178189
179190func Test_update_e2e_cmd (t * testing.T ) {
180191 tempDir , _ := os .MkdirTemp ("" , "deletecmd" )
192+ defer os .RemoveAll (tempDir )
193+
181194 DataDir , _ = os .MkdirTemp ("" , "datadir" )
195+ defer os .RemoveAll (DataDir )
196+
182197 oldVersionDirectory := filepath .Join (tempDir , "Microsoft.CPlat.Core.RunCommandHandlerLinux-1.3.8" )
183198 newVersionDirectory := filepath .Join (tempDir , "Microsoft.CPlat.Core.RunCommandHandlerLinux-1.3.9" )
184199 err := os .Mkdir (oldVersionDirectory , 0755 )
185200 require .Nil (t , err , "Could not create old version subdirectory" )
186201 err = os .Mkdir (newVersionDirectory , 0755 )
187202 require .Nil (t , err , "Could not create new version subdirectory" )
188- oldStatusPath := filepath .Join (oldVersionDirectory , constants .StatusFileDirectory )
189- err = os .Mkdir (oldStatusPath , 0755 )
190- require .Nil (t , err , "Could not create old version status subdirectory" )
191- newStatusPath := filepath .Join (newVersionDirectory , constants .StatusFileDirectory )
192- err = os .Mkdir (newStatusPath , 0755 )
193- require .Nil (t , err , "Could not create new version status subdirectory" )
203+ oldStatusPath := create_folder (t , oldVersionDirectory , constants .StatusFileDirectory )
204+ newStatusPath := create_folder (t , newVersionDirectory , constants .StatusFileDirectory )
205+ oldEventsPath := create_folder (t , oldVersionDirectory , constants .ExtensionEventsDirectory )
206+ newEventsPath := create_folder (t , newVersionDirectory , constants .ExtensionEventsDirectory )
194207
195208 fakeEnv := types.HandlerEnvironment {}
196- fakeEnv .HandlerEnvironment .ConfigFolder = oldVersionDirectory
197- fakeEnv .HandlerEnvironment .StatusFolder = oldStatusPath
209+ update_handler_env (& fakeEnv , oldStatusPath , oldVersionDirectory , oldEventsPath )
198210
199211 // We start on the old version
200212 os .Setenv (constants .ExtensionPathEnvName , oldVersionDirectory )
@@ -213,8 +225,7 @@ func Test_update_e2e_cmd(t *testing.T) {
213225 os .Setenv (constants .ExtensionVersionEnvName , "1.3.9" )
214226 os .Setenv (constants .ExtensionPathEnvName , newVersionDirectory )
215227 os .Setenv (constants .ExtensionVersionUpdatingFromEnvName , "1.3.8" )
216- fakeEnv .HandlerEnvironment .StatusFolder = newStatusPath
217- fakeEnv .HandlerEnvironment .ConfigFolder = newVersionDirectory
228+ update_handler_env (& fakeEnv , newStatusPath , newVersionDirectory , newEventsPath )
218229 update_handler (t , fakeEnv , tempDir )
219230
220231 // Now, WALA will uninstall the old extension
@@ -230,23 +241,24 @@ func Test_update_e2e_cmd(t *testing.T) {
230241
231242func Test_udpate_e2e_problematic_version (t * testing.T ) {
232243 tempDir , _ := os .MkdirTemp ("" , "deletecmd" )
244+ defer os .RemoveAll (tempDir )
245+
233246 DataDir , _ = os .MkdirTemp ("" , "datadir" )
247+ defer os .RemoveAll (DataDir )
248+
234249 oldVersionDirectory := filepath .Join (tempDir , "Microsoft.CPlat.Core.RunCommandHandlerLinux-1.3.17" )
235250 newVersionDirectory := filepath .Join (tempDir , "Microsoft.CPlat.Core.RunCommandHandlerLinux-1.3.18" )
236251 err := os .Mkdir (oldVersionDirectory , 0755 )
237252 require .Nil (t , err , "Could not create old version subdirectory" )
238253 err = os .Mkdir (newVersionDirectory , 0755 )
239254 require .Nil (t , err , "Could not create new version subdirectory" )
240- oldStatusPath := filepath .Join (oldVersionDirectory , constants .StatusFileDirectory )
241- err = os .Mkdir (oldStatusPath , 0755 )
242- require .Nil (t , err , "Could not create old version status subdirectory" )
243- newStatusPath := filepath .Join (newVersionDirectory , constants .StatusFileDirectory )
244- err = os .Mkdir (newStatusPath , 0755 )
245- require .Nil (t , err , "Could not create new version status subdirectory" )
255+ oldStatusPath := create_folder (t , oldVersionDirectory , constants .StatusFileDirectory )
256+ newStatusPath := create_folder (t , newVersionDirectory , constants .StatusFileDirectory )
257+ oldEventsPath := create_folder (t , oldVersionDirectory , constants .ExtensionEventsDirectory )
258+ newEventsPath := create_folder (t , newVersionDirectory , constants .ExtensionEventsDirectory )
246259
247260 fakeEnv := types.HandlerEnvironment {}
248- fakeEnv .HandlerEnvironment .ConfigFolder = oldVersionDirectory
249- fakeEnv .HandlerEnvironment .StatusFolder = oldStatusPath
261+ update_handler_env (& fakeEnv , oldStatusPath , oldVersionDirectory , oldEventsPath )
250262
251263 // We start on the old version
252264 os .Setenv (constants .ExtensionPathEnvName , oldVersionDirectory )
@@ -280,8 +292,7 @@ func Test_udpate_e2e_problematic_version(t *testing.T) {
280292 os .Setenv (constants .ExtensionVersionEnvName , "1.3.18" )
281293 os .Setenv (constants .ExtensionPathEnvName , newVersionDirectory )
282294 os .Setenv (constants .ExtensionVersionUpdatingFromEnvName , "1.3.17" )
283- fakeEnv .HandlerEnvironment .StatusFolder = newStatusPath
284- fakeEnv .HandlerEnvironment .ConfigFolder = newVersionDirectory
295+ update_handler_env (& fakeEnv , newStatusPath , newVersionDirectory , newEventsPath )
285296 update_handler (t , fakeEnv , tempDir )
286297
287298 // Now, WALA will uninstall the old extension
@@ -301,6 +312,19 @@ func Test_udpate_e2e_problematic_version(t *testing.T) {
301312 enable_extension (t , fakeEnv , newVersionDirectory , "stubbornChipmunk" , true , 1 )
302313}
303314
315+ func create_folder (t * testing.T , versionDirectory string , folderName string ) string {
316+ folderPath := filepath .Join (versionDirectory , folderName )
317+ err := os .Mkdir (folderPath , 0755 )
318+ require .Nil (t , err , "Could not create folder " + folderName )
319+ return folderPath
320+ }
321+
322+ func update_handler_env (fakeEnv * types.HandlerEnvironment , statusFolder string , configFolder string , eventsFolder string ) {
323+ fakeEnv .HandlerEnvironment .StatusFolder = statusFolder
324+ fakeEnv .HandlerEnvironment .ConfigFolder = configFolder
325+ fakeEnv .HandlerEnvironment .EventsFolder = eventsFolder
326+ }
327+
304328func install_handler (t * testing.T , fakeEnv types.HandlerEnvironment , tempDir string ) {
305329 generic_handler_call (t , fakeEnv , tempDir , "install" , types .CmdInstallTemplate , CmdInstall )
306330}
0 commit comments