*: Consolidate service/debugger config
Embed the debugger config object in the service config object to avoid needless duplication of fields.
This commit is contained in:
parent
ad9d13c671
commit
e5d24a96bf
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/go-delve/delve/service"
|
"github.com/go-delve/delve/service"
|
||||||
"github.com/go-delve/delve/service/api"
|
"github.com/go-delve/delve/service/api"
|
||||||
"github.com/go-delve/delve/service/dap"
|
"github.com/go-delve/delve/service/dap"
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
"github.com/go-delve/delve/service/rpc2"
|
"github.com/go-delve/delve/service/rpc2"
|
||||||
"github.com/go-delve/delve/service/rpccommon"
|
"github.com/go-delve/delve/service/rpccommon"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@ -401,13 +402,15 @@ func dapCmd(cmd *cobra.Command, args []string) {
|
|||||||
}
|
}
|
||||||
disconnectChan := make(chan struct{})
|
disconnectChan := make(chan struct{})
|
||||||
server := dap.NewServer(&service.Config{
|
server := dap.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
Backend: backend,
|
DisconnectChan: disconnectChan,
|
||||||
Foreground: (headless && tty == ""),
|
Debugger: debugger.Config{
|
||||||
DebugInfoDirectories: conf.DebugInfoDirectories,
|
Backend: backend,
|
||||||
CheckGoVersion: checkGoVersion,
|
Foreground: headless && tty == "",
|
||||||
DisconnectChan: disconnectChan,
|
DebugInfoDirectories: conf.DebugInfoDirectories,
|
||||||
TTY: tty,
|
CheckGoVersion: checkGoVersion,
|
||||||
|
TTY: tty,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
defer server.Stop()
|
defer server.Stop()
|
||||||
|
|
||||||
@ -505,13 +508,15 @@ func traceCmd(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
// Create and start a debug server
|
// Create and start a debug server
|
||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: processArgs,
|
ProcessArgs: processArgs,
|
||||||
AttachPid: traceAttachPid,
|
APIVersion: 2,
|
||||||
APIVersion: 2,
|
Debugger: debugger.Config{
|
||||||
WorkingDir: workingDir,
|
AttachPid: traceAttachPid,
|
||||||
Backend: backend,
|
WorkingDir: workingDir,
|
||||||
CheckGoVersion: checkGoVersion,
|
Backend: backend,
|
||||||
|
CheckGoVersion: checkGoVersion,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err)
|
fmt.Fprintln(os.Stderr, err)
|
||||||
@ -739,20 +744,22 @@ func execute(attachPid int, processArgs []string, conf *config.Config, coreFile
|
|||||||
switch apiVersion {
|
switch apiVersion {
|
||||||
case 1, 2:
|
case 1, 2:
|
||||||
server = rpccommon.NewServer(&service.Config{
|
server = rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: processArgs,
|
ProcessArgs: processArgs,
|
||||||
AttachPid: attachPid,
|
AcceptMulti: acceptMulti,
|
||||||
AcceptMulti: acceptMulti,
|
APIVersion: apiVersion,
|
||||||
APIVersion: apiVersion,
|
CheckLocalConnUser: checkLocalConnUser,
|
||||||
WorkingDir: workingDir,
|
DisconnectChan: disconnectChan,
|
||||||
Backend: backend,
|
Debugger: debugger.Config{
|
||||||
CoreFile: coreFile,
|
AttachPid: attachPid,
|
||||||
Foreground: (headless && tty == ""),
|
WorkingDir: workingDir,
|
||||||
DebugInfoDirectories: conf.DebugInfoDirectories,
|
Backend: backend,
|
||||||
CheckGoVersion: checkGoVersion,
|
CoreFile: coreFile,
|
||||||
CheckLocalConnUser: checkLocalConnUser,
|
Foreground: headless && tty == "",
|
||||||
DisconnectChan: disconnectChan,
|
DebugInfoDirectories: conf.DebugInfoDirectories,
|
||||||
TTY: tty,
|
CheckGoVersion: checkGoVersion,
|
||||||
|
TTY: tty,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
default:
|
default:
|
||||||
fmt.Printf("Unknown API version: %d\n", apiVersion)
|
fmt.Printf("Unknown API version: %d\n", apiVersion)
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/go-delve/delve/pkg/proc/test"
|
"github.com/go-delve/delve/pkg/proc/test"
|
||||||
"github.com/go-delve/delve/service"
|
"github.com/go-delve/delve/service"
|
||||||
"github.com/go-delve/delve/service/api"
|
"github.com/go-delve/delve/service/api"
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
"github.com/go-delve/delve/service/rpc2"
|
"github.com/go-delve/delve/service/rpc2"
|
||||||
"github.com/go-delve/delve/service/rpccommon"
|
"github.com/go-delve/delve/service/rpccommon"
|
||||||
)
|
)
|
||||||
@ -154,7 +155,9 @@ func withTestTerminalBuildFlags(name string, t testing.TB, buildFlags test.Build
|
|||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{test.BuildFixture(name, buildFlags).Path},
|
ProcessArgs: []string{test.BuildFixture(name, buildFlags).Path},
|
||||||
Backend: testBackend,
|
Debugger: debugger.Config{
|
||||||
|
Backend: testBackend,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import "net"
|
import (
|
||||||
|
"net"
|
||||||
|
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
|
)
|
||||||
|
|
||||||
// Config provides the configuration to start a Debugger and expose it with a
|
// Config provides the configuration to start a Debugger and expose it with a
|
||||||
// service.
|
// service.
|
||||||
@ -9,41 +13,23 @@ import "net"
|
|||||||
// provided, a new process will be launched. Otherwise, the debugger will try
|
// provided, a new process will be launched. Otherwise, the debugger will try
|
||||||
// to attach to an existing process with AttachPid.
|
// to attach to an existing process with AttachPid.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
// Debugger configuration object, used to configure the underlying
|
||||||
|
// debugger used by the server.
|
||||||
|
Debugger debugger.Config
|
||||||
|
|
||||||
// Listener is used to serve requests.
|
// Listener is used to serve requests.
|
||||||
Listener net.Listener
|
Listener net.Listener
|
||||||
|
|
||||||
// ProcessArgs are the arguments to launch a new process.
|
// ProcessArgs are the arguments to launch a new process.
|
||||||
ProcessArgs []string
|
ProcessArgs []string
|
||||||
// WorkingDir is working directory of the new process. This field is used
|
|
||||||
// only when launching a new process.
|
|
||||||
WorkingDir string
|
|
||||||
|
|
||||||
// AttachPid is the PID of an existing process to which the debugger should
|
|
||||||
// attach.
|
|
||||||
AttachPid int
|
|
||||||
// AcceptMulti configures the server to accept multiple connection.
|
// AcceptMulti configures the server to accept multiple connection.
|
||||||
// Note that the server API is not reentrant and clients will have to coordinate.
|
// Note that the server API is not reentrant and clients will have to coordinate.
|
||||||
AcceptMulti bool
|
AcceptMulti bool
|
||||||
|
|
||||||
// APIVersion selects which version of the API to serve (default: 1).
|
// APIVersion selects which version of the API to serve (default: 1).
|
||||||
APIVersion int
|
APIVersion int
|
||||||
|
|
||||||
// CoreFile specifies the path to the core dump to open.
|
|
||||||
CoreFile string
|
|
||||||
|
|
||||||
// DebugInfoDirectories is the list of directories to look for
|
|
||||||
// when resolving external debug info files.
|
|
||||||
DebugInfoDirectories []string
|
|
||||||
|
|
||||||
// Selects server backend.
|
|
||||||
Backend string
|
|
||||||
|
|
||||||
// Foreground lets target process access stdin.
|
|
||||||
Foreground bool
|
|
||||||
|
|
||||||
// CheckGoVersion is true if the debugger should check the version of Go
|
|
||||||
// used to compile the executable and refuse to work on incompatible
|
|
||||||
// versions.
|
|
||||||
CheckGoVersion bool
|
|
||||||
|
|
||||||
// CheckLocalConnUser is true if the debugger should check that local
|
// CheckLocalConnUser is true if the debugger should check that local
|
||||||
// connections come from the same user that started the headless server
|
// connections come from the same user that started the headless server
|
||||||
CheckLocalConnUser bool
|
CheckLocalConnUser bool
|
||||||
|
@ -89,7 +89,7 @@ func (s *Server) Stop() {
|
|||||||
s.conn.Close()
|
s.conn.Close()
|
||||||
}
|
}
|
||||||
if s.debugger != nil {
|
if s.debugger != nil {
|
||||||
kill := s.config.AttachPid == 0
|
kill := s.config.Debugger.AttachPid == 0
|
||||||
if err := s.debugger.Detach(kill); err != nil {
|
if err := s.debugger.Detach(kill); err != nil {
|
||||||
s.log.Error(err)
|
s.log.Error(err)
|
||||||
}
|
}
|
||||||
@ -354,24 +354,15 @@ func (s *Server) onLaunchRequest(request *dap.LaunchRequest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stop, ok := request.Arguments["stopOnEntry"]
|
stop, ok := request.Arguments["stopOnEntry"]
|
||||||
s.stopOnEntry = (ok && stop == true)
|
s.stopOnEntry = ok && stop == true
|
||||||
|
|
||||||
// TODO(polina): support target args
|
// TODO(polina): support target args
|
||||||
s.config.ProcessArgs = []string{program}
|
s.config.ProcessArgs = []string{program}
|
||||||
s.config.WorkingDir = filepath.Dir(program)
|
s.config.Debugger.WorkingDir = filepath.Dir(program)
|
||||||
|
|
||||||
config := &debugger.Config{
|
config := s.config.Debugger
|
||||||
WorkingDir: s.config.WorkingDir,
|
|
||||||
AttachPid: 0,
|
|
||||||
CoreFile: "",
|
|
||||||
Backend: s.config.Backend,
|
|
||||||
Foreground: s.config.Foreground,
|
|
||||||
DebugInfoDirectories: s.config.DebugInfoDirectories,
|
|
||||||
CheckGoVersion: s.config.CheckGoVersion,
|
|
||||||
TTY: s.config.TTY,
|
|
||||||
}
|
|
||||||
var err error
|
var err error
|
||||||
if s.debugger, err = debugger.New(config, s.config.ProcessArgs); err != nil {
|
if s.debugger, err = debugger.New(&config, s.config.ProcessArgs); err != nil {
|
||||||
s.sendErrorResponse(request.Request,
|
s.sendErrorResponse(request.Request,
|
||||||
FailedToContinue, "Failed to launch", err.Error())
|
FailedToContinue, "Failed to launch", err.Error())
|
||||||
return
|
return
|
||||||
@ -394,7 +385,7 @@ func (s *Server) onDisconnectRequest(request *dap.DisconnectRequest) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Error(err)
|
s.log.Error(err)
|
||||||
}
|
}
|
||||||
kill := s.config.AttachPid == 0
|
kill := s.config.Debugger.AttachPid == 0
|
||||||
err = s.debugger.Detach(kill)
|
err = s.debugger.Detach(kill)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Error(err)
|
s.log.Error(err)
|
||||||
|
@ -16,6 +16,7 @@ import (
|
|||||||
protest "github.com/go-delve/delve/pkg/proc/test"
|
protest "github.com/go-delve/delve/pkg/proc/test"
|
||||||
"github.com/go-delve/delve/service"
|
"github.com/go-delve/delve/service"
|
||||||
"github.com/go-delve/delve/service/dap/daptest"
|
"github.com/go-delve/delve/service/dap/daptest"
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
"github.com/google/go-dap"
|
"github.com/google/go-dap"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -42,8 +43,10 @@ func runTest(t *testing.T, name string, test func(c *daptest.Client, f protest.F
|
|||||||
disconnectChan := make(chan struct{})
|
disconnectChan := make(chan struct{})
|
||||||
server := NewServer(&service.Config{
|
server := NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
Backend: "default",
|
|
||||||
DisconnectChan: disconnectChan,
|
DisconnectChan: disconnectChan,
|
||||||
|
Debugger: debugger.Config{
|
||||||
|
Backend: "default",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
server.Run()
|
server.Run()
|
||||||
// Give server time to start listening for clients
|
// Give server time to start listening for clients
|
||||||
|
@ -77,6 +77,7 @@ type Config struct {
|
|||||||
|
|
||||||
// CoreFile specifies the path to the core dump to open.
|
// CoreFile specifies the path to the core dump to open.
|
||||||
CoreFile string
|
CoreFile string
|
||||||
|
|
||||||
// Backend specifies the debugger backend.
|
// Backend specifies the debugger backend.
|
||||||
Backend string
|
Backend string
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ func (s *RPCServer) Detach(kill bool, ret *int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *RPCServer) Restart(arg1 interface{}, arg2 *int) error {
|
func (s *RPCServer) Restart(arg1 interface{}, arg2 *int) error {
|
||||||
if s.config.AttachPid != 0 {
|
if s.config.Debugger.AttachPid != 0 {
|
||||||
return errors.New("cannot restart process Delve did not create")
|
return errors.New("cannot restart process Delve did not create")
|
||||||
}
|
}
|
||||||
_, err := s.debugger.Restart(false, "", false, nil)
|
_, err := s.debugger.Restart(false, "", false, nil)
|
||||||
@ -298,7 +298,7 @@ func (s *RPCServer) ListGoroutines(arg interface{}, goroutines *[]*api.Goroutine
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *RPCServer) AttachedToExistingProcess(arg interface{}, answer *bool) error {
|
func (c *RPCServer) AttachedToExistingProcess(arg interface{}, answer *bool) error {
|
||||||
if c.config.AttachPid != 0 {
|
if c.config.Debugger.AttachPid != 0 {
|
||||||
*answer = true
|
*answer = true
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -84,7 +84,7 @@ type RestartOut struct {
|
|||||||
|
|
||||||
// Restart restarts program.
|
// Restart restarts program.
|
||||||
func (s *RPCServer) Restart(arg RestartIn, cb service.RPCCallback) {
|
func (s *RPCServer) Restart(arg RestartIn, cb service.RPCCallback) {
|
||||||
if s.config.AttachPid != 0 {
|
if s.config.Debugger.AttachPid != 0 {
|
||||||
cb.Return(nil, errors.New("cannot restart process Delve did not create"))
|
cb.Return(nil, errors.New("cannot restart process Delve did not create"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -571,7 +571,7 @@ type AttachedToExistingProcessOut struct {
|
|||||||
|
|
||||||
// AttachedToExistingProcess returns whether we attached to a running process or not
|
// AttachedToExistingProcess returns whether we attached to a running process or not
|
||||||
func (c *RPCServer) AttachedToExistingProcess(arg AttachedToExistingProcessIn, out *AttachedToExistingProcessOut) error {
|
func (c *RPCServer) AttachedToExistingProcess(arg AttachedToExistingProcessIn, out *AttachedToExistingProcessOut) error {
|
||||||
if c.config.AttachPid != 0 {
|
if c.config.Debugger.AttachPid != 0 {
|
||||||
out.Answer = true
|
out.Answer = true
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -71,7 +71,7 @@ func NewServer(config *service.Config) *ServerImpl {
|
|||||||
if config.APIVersion < 2 {
|
if config.APIVersion < 2 {
|
||||||
logger.Info("Using API v1")
|
logger.Info("Using API v1")
|
||||||
}
|
}
|
||||||
if config.Foreground {
|
if config.Debugger.Foreground {
|
||||||
// Print listener address
|
// Print listener address
|
||||||
logflags.WriteAPIListeningMessage(config.Listener.Addr().String())
|
logflags.WriteAPIListeningMessage(config.Listener.Addr().String())
|
||||||
logger.Debug("API server pid = ", os.Getpid())
|
logger.Debug("API server pid = ", os.Getpid())
|
||||||
@ -90,7 +90,7 @@ func (s *ServerImpl) Stop() error {
|
|||||||
close(s.stopChan)
|
close(s.stopChan)
|
||||||
s.listener.Close()
|
s.listener.Close()
|
||||||
}
|
}
|
||||||
kill := s.config.AttachPid == 0
|
kill := s.config.Debugger.AttachPid == 0
|
||||||
return s.debugger.Detach(kill)
|
return s.debugger.Detach(kill)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,17 +108,8 @@ func (s *ServerImpl) Run() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create and start the debugger
|
// Create and start the debugger
|
||||||
if s.debugger, err = debugger.New(&debugger.Config{
|
config := s.config.Debugger
|
||||||
AttachPid: s.config.AttachPid,
|
if s.debugger, err = debugger.New(&config, s.config.ProcessArgs); err != nil {
|
||||||
WorkingDir: s.config.WorkingDir,
|
|
||||||
CoreFile: s.config.CoreFile,
|
|
||||||
Backend: s.config.Backend,
|
|
||||||
Foreground: s.config.Foreground,
|
|
||||||
DebugInfoDirectories: s.config.DebugInfoDirectories,
|
|
||||||
CheckGoVersion: s.config.CheckGoVersion,
|
|
||||||
TTY: s.config.TTY,
|
|
||||||
},
|
|
||||||
s.config.ProcessArgs); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
protest "github.com/go-delve/delve/pkg/proc/test"
|
protest "github.com/go-delve/delve/pkg/proc/test"
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
|
|
||||||
"github.com/go-delve/delve/pkg/goversion"
|
"github.com/go-delve/delve/pkg/goversion"
|
||||||
"github.com/go-delve/delve/service"
|
"github.com/go-delve/delve/service"
|
||||||
@ -43,7 +44,9 @@ func withTestClient1Extended(name string, t *testing.T, fn func(c *rpc1.RPCClien
|
|||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{fixture.Path},
|
ProcessArgs: []string{fixture.Path},
|
||||||
Backend: testBackend,
|
Debugger: debugger.Config{
|
||||||
|
Backend: testBackend,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -71,7 +74,9 @@ func Test1RunWithInvalidPath(t *testing.T) {
|
|||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{"invalid_path"},
|
ProcessArgs: []string{"invalid_path"},
|
||||||
Backend: testBackend,
|
Debugger: debugger.Config{
|
||||||
|
Backend: testBackend,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err == nil {
|
if err := server.Run(); err == nil {
|
||||||
t.Fatal("Expected Run to return error for invalid program path")
|
t.Fatal("Expected Run to return error for invalid program path")
|
||||||
|
@ -17,6 +17,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
protest "github.com/go-delve/delve/pkg/proc/test"
|
protest "github.com/go-delve/delve/pkg/proc/test"
|
||||||
|
"github.com/go-delve/delve/service/debugger"
|
||||||
|
|
||||||
"github.com/go-delve/delve/pkg/goversion"
|
"github.com/go-delve/delve/pkg/goversion"
|
||||||
"github.com/go-delve/delve/pkg/logflags"
|
"github.com/go-delve/delve/pkg/logflags"
|
||||||
@ -68,10 +69,12 @@ func startServer(name string, buildFlags protest.BuildFlags, t *testing.T) (clie
|
|||||||
}
|
}
|
||||||
fixture = protest.BuildFixture(name, buildFlags)
|
fixture = protest.BuildFixture(name, buildFlags)
|
||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{fixture.Path},
|
ProcessArgs: []string{fixture.Path},
|
||||||
Backend: testBackend,
|
Debugger: debugger.Config{
|
||||||
CheckGoVersion: true,
|
Backend: testBackend,
|
||||||
|
CheckGoVersion: true,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -105,7 +108,9 @@ func TestRunWithInvalidPath(t *testing.T) {
|
|||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{"invalid_path"},
|
ProcessArgs: []string{"invalid_path"},
|
||||||
APIVersion: 2,
|
APIVersion: 2,
|
||||||
Backend: testBackend,
|
Debugger: debugger.Config{
|
||||||
|
Backend: testBackend,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err == nil {
|
if err := server.Run(); err == nil {
|
||||||
t.Fatal("Expected Run to return error for invalid program path")
|
t.Fatal("Expected Run to return error for invalid program path")
|
||||||
@ -1566,9 +1571,11 @@ func TestAcceptMulticlient(t *testing.T) {
|
|||||||
server := rpccommon.NewServer(&service.Config{
|
server := rpccommon.NewServer(&service.Config{
|
||||||
Listener: listener,
|
Listener: listener,
|
||||||
ProcessArgs: []string{protest.BuildFixture("testvariables2", 0).Path},
|
ProcessArgs: []string{protest.BuildFixture("testvariables2", 0).Path},
|
||||||
Backend: testBackend,
|
|
||||||
AcceptMulti: true,
|
AcceptMulti: true,
|
||||||
DisconnectChan: disconnectChan,
|
DisconnectChan: disconnectChan,
|
||||||
|
Debugger: debugger.Config{
|
||||||
|
Backend: testBackend,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user