Fix: rpc.(*RPCClient).EvalVariableFor

Original implementation was passing the wrong argument.
This commit is contained in:
aarzilli 2015-08-07 09:30:01 +02:00 committed by Derek Parker
parent 8e8d2660ef
commit fd08e96b24
2 changed files with 39 additions and 1 deletions

@ -147,7 +147,7 @@ func (c *RPCClient) EvalVariable(symbol string) (*api.Variable, error) {
func (c *RPCClient) EvalVariableFor(threadID int, symbol string) (*api.Variable, error) {
v := new(api.Variable)
err := c.call("EvalThreadSymbol", threadID, v)
err := c.call("EvalThreadSymbol", ThreadSymbolArgs{threadID, symbol}, v)
return v, err
}

@ -601,3 +601,41 @@ func TestClientServer_FindLocations(t *testing.T) {
findLocationHelper(t, c, "main.stacktraceme", false, 1, stacktracemeAddr)
})
}
func TestClientServer_EvalVariableFor(t *testing.T) {
withTestClient("testvariables", t, func(c service.Client) {
fp := testProgPath(t, "testvariables")
_, err := c.CreateBreakpoint(&api.Breakpoint{File: fp, Line: 59})
if err != nil {
t.Fatalf("CreateBreakpoint(): %v", err)
}
state := <-c.Continue()
if state.Err != nil {
t.Fatalf("Continue(): %v\n", state.Err)
}
var1, err := c.EvalVariable("a1")
if err != nil {
t.Fatalf("EvalVariable(): %v", err)
}
t.Logf("var1: <%s>", var1.Value)
if var1.Value != "foofoofoofoofoofoo" {
t.Fatalf("Wrong variable value (EvalVariable)", var1.Value)
}
var2, err := c.EvalVariableFor(state.CurrentThread.ID, "a1")
if err != nil {
t.Fatalf("EvalVariableFor(): %v", err)
}
t.Logf("var2: <%s>", var2.Value)
if var2.Value != var1.Value {
t.Fatalf("Wrong variable value (EvalVariableFor)", var2.Value)
}
})
}