diff options
Diffstat (limited to 'plugin/rpcplugin/supervisor_test.go')
-rw-r--r-- | plugin/rpcplugin/supervisor_test.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugin/rpcplugin/supervisor_test.go b/plugin/rpcplugin/supervisor_test.go index bad38b2d7..6a2b5ec5d 100644 --- a/plugin/rpcplugin/supervisor_test.go +++ b/plugin/rpcplugin/supervisor_test.go @@ -56,6 +56,21 @@ func TestSupervisor_InvalidExecutablePath(t *testing.T) { assert.Error(t, err) } +func TestSupervisor_NonExistentExecutablePath(t *testing.T) { + dir, err := ioutil.TempDir("", "") + require.NoError(t, err) + defer os.RemoveAll(dir) + + ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "thisfileshouldnotexist"}}`), 0600) + + bundle := model.BundleInfoForPath(dir) + supervisor, err := SupervisorProvider(bundle) + require.NotNil(t, supervisor) + require.NoError(t, err) + + require.Error(t, supervisor.Start()) +} + // If plugin development goes really wrong, let's make sure plugin activation won't block forever. func TestSupervisor_StartTimeout(t *testing.T) { dir, err := ioutil.TempDir("", "") @@ -104,6 +119,10 @@ func TestSupervisor_PluginCrash(t *testing.T) { return nil } + func (p *MyPlugin) OnDeactivate() error { + return nil + } + func main() { rpcplugin.Main(&MyPlugin{}) } |