@@ -921,7 +921,7 @@ func TestVariantAndCoreSelection(t *testing.T) {
921
921
})
922
922
}
923
923
924
- func TestRunPostInstall (t * testing.T ) {
924
+ func TestRunScript (t * testing.T ) {
925
925
pmb := NewBuilder (nil , nil , nil , nil , "test" )
926
926
pm := pmb .Build ()
927
927
pme , release := pm .NewExplorer ()
@@ -930,29 +930,49 @@ func TestRunPostInstall(t *testing.T) {
930
930
// prepare dummy post install script
931
931
dir := paths .New (t .TempDir ())
932
932
933
- var scriptPath * paths.Path
934
- var err error
935
- if runtime .GOOS == "windows" {
936
- scriptPath = dir .Join ("post_install.bat" )
937
-
938
- err = scriptPath .WriteFile ([]byte (
939
- `@echo off
940
- echo sent in stdout
941
- echo sent in stderr 1>&2` ))
942
- } else {
943
- scriptPath = dir .Join ("post_install.sh" )
944
- err = scriptPath .WriteFile ([]byte (
945
- `#!/bin/sh
946
- echo "sent in stdout"
947
- echo "sent in stderr" 1>&2` ))
933
+ type Test struct {
934
+ testName string
935
+ scriptName string
936
+ }
937
+
938
+ tests := []Test {
939
+ {
940
+ testName : "PostInstallScript" ,
941
+ scriptName : "post_install" ,
942
+ },
943
+ {
944
+ testName : "PreUninstallScript" ,
945
+ scriptName : "pre_uninstall" ,
946
+ },
948
947
}
949
- require .NoError (t , err )
950
- err = os .Chmod (scriptPath .String (), 0777 )
951
- require .NoError (t , err )
952
- stdout , stderr , err := pme .RunPreOrPostScript (dir , "post_install" )
953
- require .NoError (t , err )
954
948
955
- // `HasPrefix` because windows seem to add a trailing space at the end
956
- require .Equal (t , "sent in stdout" , strings .Trim (string (stdout ), "\n \r " ))
957
- require .Equal (t , "sent in stderr" , strings .Trim (string (stderr ), "\n \r " ))
949
+ for _ , test := range tests {
950
+ t .Run (test .testName , func (t * testing.T ) {
951
+ var scriptPath * paths.Path
952
+ var err error
953
+ if runtime .GOOS == "windows" {
954
+ scriptPath = dir .Join (test .scriptName + ".bat" )
955
+
956
+ err = scriptPath .WriteFile ([]byte (
957
+ `@echo off
958
+ echo sent in stdout
959
+ echo sent in stderr 1>&2` ))
960
+ } else {
961
+ scriptPath = dir .Join (test .scriptName + ".sh" )
962
+ err = scriptPath .WriteFile ([]byte (
963
+ `#!/bin/sh
964
+ echo "sent in stdout"
965
+ echo "sent in stderr" 1>&2` ))
966
+ }
967
+ require .NoError (t , err )
968
+ err = os .Chmod (scriptPath .String (), 0777 )
969
+ require .NoError (t , err )
970
+ stdout , stderr , err := pme .RunPreOrPostScript (dir , test .scriptName )
971
+ require .NoError (t , err )
972
+
973
+ // `HasPrefix` because windows seem to add a trailing space at the end
974
+ require .Equal (t , "sent in stdout" , strings .Trim (string (stdout ), "\n \r " ))
975
+ require .Equal (t , "sent in stderr" , strings .Trim (string (stderr ), "\n \r " ))
976
+ })
977
+ }
958
978
}
0 commit comments