mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Fixes #15500. Does a simple filename check if the binary names ends with _linux_amd64 or _darwin_amd64 then sets the file mode to 755.
81 lines
2.8 KiB
Go
81 lines
2.8 KiB
Go
package commands
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func TestFoldernameReplacement(t *testing.T) {
|
|
Convey("path containing git commit path", t, func() {
|
|
pluginName := "datasource-plugin-kairosdb"
|
|
|
|
paths := map[string]string{
|
|
"datasource-plugin-kairosdb-cc4a3965ef5d3eb1ae0ee4f93e9e78ec7db69e64/": "datasource-plugin-kairosdb/",
|
|
"datasource-plugin-kairosdb-cc4a3965ef5d3eb1ae0ee4f93e9e78ec7db69e64/README.md": "datasource-plugin-kairosdb/README.md",
|
|
"datasource-plugin-kairosdb-cc4a3965ef5d3eb1ae0ee4f93e9e78ec7db69e64/partials/": "datasource-plugin-kairosdb/partials/",
|
|
"datasource-plugin-kairosdb-cc4a3965ef5d3eb1ae0ee4f93e9e78ec7db69e64/partials/config.html": "datasource-plugin-kairosdb/partials/config.html",
|
|
}
|
|
|
|
Convey("should be replaced with plugin name", func() {
|
|
for k, v := range paths {
|
|
So(RemoveGitBuildFromName(pluginName, k), ShouldEqual, v)
|
|
}
|
|
})
|
|
})
|
|
|
|
Convey("path containing git commit path", t, func() {
|
|
pluginName := "app-example"
|
|
paths := map[string]string{
|
|
"app-plugin-example-3c28f65ac6fb7f1e234b0364b97081d836495439/": "app-example/",
|
|
}
|
|
|
|
Convey("should be replaced with plugin name", func() {
|
|
for k, v := range paths {
|
|
So(RemoveGitBuildFromName(pluginName, k), ShouldEqual, v)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
func TestExtractFiles(t *testing.T) {
|
|
Convey("Should preserve file permissions for plugin backend binaries for linux and darwin", t, func() {
|
|
err := os.RemoveAll("testdata/fake-plugins-dir")
|
|
So(err, ShouldBeNil)
|
|
|
|
err = os.MkdirAll("testdata/fake-plugins-dir", 0774)
|
|
So(err, ShouldBeNil)
|
|
|
|
body, err := ioutil.ReadFile("testdata/grafana-simple-json-datasource-ec18fa4da8096a952608a7e4c7782b4260b41bcf.zip")
|
|
So(err, ShouldBeNil)
|
|
|
|
err = extractFiles(body, "grafana-simple-json-datasource", "testdata/fake-plugins-dir")
|
|
So(err, ShouldBeNil)
|
|
|
|
//File in zip has permissions 777
|
|
fileInfo, err := os.Stat("testdata/fake-plugins-dir/grafana-simple-json-datasource/simple-plugin_darwin_amd64")
|
|
So(err, ShouldBeNil)
|
|
So(fileInfo.Mode().String(), ShouldEqual, "-rwxr-xr-x")
|
|
|
|
//File in zip has permission 664
|
|
fileInfo, err = os.Stat("testdata/fake-plugins-dir/grafana-simple-json-datasource/simple-plugin_linux_amd64")
|
|
So(err, ShouldBeNil)
|
|
So(fileInfo.Mode().String(), ShouldEqual, "-rwxr-xr-x")
|
|
|
|
//File in zip has permission 644
|
|
fileInfo, err = os.Stat("testdata/fake-plugins-dir/grafana-simple-json-datasource/simple-plugin_windows_amd64.exe")
|
|
So(err, ShouldBeNil)
|
|
So(fileInfo.Mode().String(), ShouldEqual, "-rw-r--r--")
|
|
|
|
//File in zip has permission 755
|
|
fileInfo, err = os.Stat("testdata/fake-plugins-dir/grafana-simple-json-datasource/non-plugin-binary")
|
|
So(err, ShouldBeNil)
|
|
So(fileInfo.Mode().String(), ShouldEqual, "-rwxr-xr-x")
|
|
|
|
err = os.RemoveAll("testdata/fake-plugins-dir")
|
|
So(err, ShouldBeNil)
|
|
})
|
|
}
|