ソースを参照

test for plugin path builder

Carl Bergquist 8 年 前
コミット
d2ea5415da
2 ファイル変更17 行追加1 行削除
  1. 5 1
      pkg/plugins/datasource_plugin.go
  2. 12 0
      pkg/plugins/datasource_plugin_test.go

+ 5 - 1
pkg/plugins/datasource_plugin.go

@@ -64,10 +64,14 @@ var handshakeConfig = plugin.HandshakeConfig{
 	MagicCookieValue: "55d2200a-6492-493a-9353-73b728d468aa",
 }
 
+func buildExecutablePath(pluginDir, executable, os, arch string) string {
+	return path.Join(pluginDir, fmt.Sprintf("%s_%s_%s", executable, strings.ToLower(os), strings.ToLower(arch)))
+}
+
 func (p *DataSourcePlugin) initBackendPlugin(log log.Logger) error {
 	p.log = log.New("plugin-id", p.Id)
 
-	cmd := path.Join(p.PluginDir, fmt.Sprintf("%s_%s_%s", p.Executable, strings.ToLower(runtime.GOOS), strings.ToLower(runtime.GOARCH)))
+	cmd := buildExecutablePath(p.PluginDir, p.Executable, runtime.GOOS, runtime.GOARCH)
 
 	p.client = plugin.NewClient(&plugin.ClientConfig{
 		HandshakeConfig:  handshakeConfig,

+ 12 - 0
pkg/plugins/datasource_plugin_test.go

@@ -0,0 +1,12 @@
+package plugins
+
+import "testing"
+
+func TestExecutablePathBuilder(t *testing.T) {
+
+	have := buildExecutablePath("/var/grafana/plugins/grafana-simple-json-datasource", "simple-json", "linux", "amd64")
+	want := `/var/grafana/plugins/grafana-simple-json-datasource/simple-json_linux_amd64`
+	if have != want {
+		t.Errorf("expected %s got %s", want, have)
+	}
+}