Update go-plugin

This commit is contained in:
Jeff Mitchell 2018-02-06 13:31:13 -05:00
parent 99a75c871a
commit 3297d3dc92
2 changed files with 25 additions and 4 deletions

View File

@ -3,6 +3,7 @@ package plugin
import (
"bytes"
"context"
"io"
"net"
"net/rpc"
@ -10,6 +11,18 @@ import (
"google.golang.org/grpc"
)
// TestOptions allows specifying options that can affect the behavior of the
// test functions
type TestOptions struct {
//ServerStdout causes the given value to be used in place of a blank buffer
//for RPCServer's Stdout
ServerStdout io.ReadCloser
//ServerStderr causes the given value to be used in place of a blank buffer
//for RPCServer's Stderr
ServerStderr io.ReadCloser
}
// The testing file contains test helpers that you can use outside of
// this package for making it easier to test plugins themselves.
@ -61,12 +74,20 @@ func TestRPCConn(t testing.T) (*rpc.Client, *rpc.Server) {
// TestPluginRPCConn returns a plugin RPC client and server that are connected
// together and configured.
func TestPluginRPCConn(t testing.T, ps map[string]Plugin) (*RPCClient, *RPCServer) {
func TestPluginRPCConn(t testing.T, ps map[string]Plugin, opts *TestOptions) (*RPCClient, *RPCServer) {
// Create two net.Conns we can use to shuttle our control connection
clientConn, serverConn := TestConn(t)
// Start up the server
server := &RPCServer{Plugins: ps, Stdout: new(bytes.Buffer), Stderr: new(bytes.Buffer)}
if opts != nil {
if opts.ServerStdout != nil {
server.Stdout = opts.ServerStdout
}
if opts.ServerStderr != nil {
server.Stderr = opts.ServerStderr
}
}
go server.ServeConn(serverConn)
// Connect the client to the server

6
vendor/vendor.json vendored
View File

@ -1003,10 +1003,10 @@
"revisionTime": "2017-12-04T18:29:08Z"
},
{
"checksumSHA1": "y3op+t01flBlSBKlzUNqH5d4XHQ=",
"checksumSHA1": "7SheX5w6+xGsTMxPI3LiJx0iz7s=",
"path": "github.com/hashicorp/go-plugin",
"revision": "e53f54cbf51efde642d4711313e829a1ff0c236d",
"revisionTime": "2018-01-25T19:04:38Z"
"revision": "4b17561773d85e482ea040884ee3e288425d4174",
"revisionTime": "2018-02-06T18:30:35Z"
},
{
"checksumSHA1": "yzoWV7yrS/TvOrKy5ZrdUjsYaOA=",