diff options
author | Chris <ccbrown112@gmail.com> | 2017-11-15 16:08:02 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-15 16:08:02 -0600 |
commit | 6eb4b4604c79b0052cb7ab8ac97c9b90fa61e918 (patch) | |
tree | f5a1684a174f5946729dc2498d67e4ddaee370c7 /plugin/rpcplugin | |
parent | 96e3686dd51a2c9d2967a8ce4736c83f36a387ff (diff) | |
download | chat-6eb4b4604c79b0052cb7ab8ac97c9b90fa61e918.tar.gz chat-6eb4b4604c79b0052cb7ab8ac97c9b90fa61e918.tar.bz2 chat-6eb4b4604c79b0052cb7ab8ac97c9b90fa61e918.zip |
improve rpcplugin tests (#7837)
Diffstat (limited to 'plugin/rpcplugin')
-rw-r--r-- | plugin/rpcplugin/process_test.go | 7 | ||||
-rw-r--r-- | plugin/rpcplugin/supervisor_test.go | 19 |
2 files changed, 26 insertions, 0 deletions
diff --git a/plugin/rpcplugin/process_test.go b/plugin/rpcplugin/process_test.go index f58a19107..473cc026b 100644 --- a/plugin/rpcplugin/process_test.go +++ b/plugin/rpcplugin/process_test.go @@ -62,3 +62,10 @@ func TestProcess(t *testing.T) { assert.Equal(t, "ping", string(b[:4])) require.NoError(t, p.Wait()) } + +func TestInvalidProcess(t *testing.T) { + p, ipc, err := NewProcess(context.Background(), "thisfileshouldnotexist") + require.Nil(t, p) + require.Nil(t, ipc) + require.Error(t, err) +} 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{}) } |