From c78ae7a79a7a8c932711d40930e0c748505ecbac Mon Sep 17 00:00:00 2001 From: MatteoPologruto Date: Wed, 13 Sep 2023 16:10:14 +0200 Subject: [PATCH] Include pre-uninstall script run into the unit test --- .../packagemanager/package_manager_test.go | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/arduino/cores/packagemanager/package_manager_test.go b/arduino/cores/packagemanager/package_manager_test.go index 0a0542aed7a..cef49a8ff10 100644 --- a/arduino/cores/packagemanager/package_manager_test.go +++ b/arduino/cores/packagemanager/package_manager_test.go @@ -930,24 +930,39 @@ func TestRunPostInstall(t *testing.T) { // prepare dummy post install script dir := paths.New(t.TempDir()) - var scriptPath *paths.Path + var postScriptPath *paths.Path + var preScriptPath *paths.Path var err error if runtime.GOOS == "windows" { - scriptPath = dir.Join("post_install.bat") + postScriptPath = dir.Join("post_install.bat") + preScriptPath = dir.Join("pre_uninstall.bat") - err = scriptPath.WriteFile([]byte( + err = postScriptPath.WriteFile([]byte( + `@echo off + echo sent in stdout + echo sent in stderr 1>&2`)) + require.NoError(t, err) + err = preScriptPath.WriteFile([]byte( `@echo off echo sent in stdout echo sent in stderr 1>&2`)) } else { - scriptPath = dir.Join("post_install.sh") - err = scriptPath.WriteFile([]byte( + postScriptPath = dir.Join("post_install.sh") + preScriptPath = dir.Join("pre_uninstall.sh") + err = postScriptPath.WriteFile([]byte( + `#!/bin/sh + echo "sent in stdout" + echo "sent in stderr" 1>&2`)) + require.NoError(t, err) + err = preScriptPath.WriteFile([]byte( `#!/bin/sh echo "sent in stdout" echo "sent in stderr" 1>&2`)) } require.NoError(t, err) - err = os.Chmod(scriptPath.String(), 0777) + err = os.Chmod(postScriptPath.String(), 0777) + require.NoError(t, err) + err = os.Chmod(preScriptPath.String(), 0777) require.NoError(t, err) stdout, stderr, err := pme.RunPreOrPostScript(dir, "post_install") require.NoError(t, err) @@ -955,4 +970,11 @@ func TestRunPostInstall(t *testing.T) { // `HasPrefix` because windows seem to add a trailing space at the end require.Equal(t, "sent in stdout", strings.Trim(string(stdout), "\n\r ")) require.Equal(t, "sent in stderr", strings.Trim(string(stderr), "\n\r ")) + + stdout, stderr, err = pme.RunPreOrPostScript(dir, "pre_uninstall") + require.NoError(t, err) + + // `HasPrefix` because windows seem to add a trailing space at the end + require.Equal(t, "sent in stdout", strings.Trim(string(stdout), "\n\r ")) + require.Equal(t, "sent in stderr", strings.Trim(string(stderr), "\n\r ")) }