Support for uint and boolean types

This commit is contained in:
epipho
2015-01-19 22:18:17 -05:00
parent 67ad85feec
commit 056df44318
3 changed files with 73 additions and 13 deletions

View File

@ -49,7 +49,6 @@ func TestVariableEvaluation(t *testing.T) {
{"a9", "*main.FooBar nil", "*main.FooBar", nil},
{"baz", "bazburzum", "struct string", nil},
{"neg", "-1", "int", nil},
{"i8", "1", "int8", nil},
{"f32", "1.2", "float32", nil},
{"a6.Baz", "8", "int", nil},
{"a7.Baz", "5", "int", nil},
@ -58,11 +57,18 @@ func TestVariableEvaluation(t *testing.T) {
{"a9.NonExistent", "nil", "int", errors.New("a9 has no member NonExistent")},
{"a8", "main.FooBar2 {Bur: 10, Baz: feh}", "main.FooBar2", nil}, // reread variable after member
{"i32", "[2]int32 [1 2]", "[2]int32", nil},
{"b1", "true", "bool", nil},
{"b2", "false", "bool", nil}, {"i8", "1", "int8", nil},
{"u16", "65535", "uint16", nil},
{"u32", "4294967295", "uint32", nil},
{"u64", "18446744073709551615", "uint64", nil},
{"u8", "255", "uint8", nil},
{"up", "5", "uintptr", nil},
{"NonExistent", "", "", errors.New("could not find symbol value for NonExistent")},
}
withTestProcess(executablePath, t, func(p *DebuggedProcess) {
pc, _, _ := p.GoSymTable.LineToPC(fp, 39)
pc, _, _ := p.GoSymTable.LineToPC(fp, 46)
_, err := p.Break(pc)
assertNoError(err, t, "Break() returned an error")
@ -93,7 +99,7 @@ func TestVariableFunctionScoping(t *testing.T) {
}
withTestProcess(executablePath, t, func(p *DebuggedProcess) {
pc, _, _ := p.GoSymTable.LineToPC(fp, 39)
pc, _, _ := p.GoSymTable.LineToPC(fp, 46)
_, err := p.Break(pc)
assertNoError(err, t, "Break() returned an error")
@ -167,10 +173,17 @@ func TestLocalVariables(t *testing.T) {
{"a7", "*main.FooBar {Baz: 5, Bur: strum}", "*main.FooBar", nil},
{"a8", "main.FooBar2 {Bur: 10, Baz: feh}", "main.FooBar2", nil},
{"a9", "*main.FooBar nil", "*main.FooBar", nil},
{"b1", "true", "bool", nil},
{"b2", "false", "bool", nil},
{"f32", "1.2", "float32", nil},
{"i32", "[2]int32 [1 2]", "[2]int32", nil},
{"i8", "1", "int8", nil},
{"neg", "-1", "int", nil}}},
{"neg", "-1", "int", nil},
{"u16", "65535", "uint16", nil},
{"u32", "4294967295", "uint32", nil},
{"u64", "18446744073709551615", "uint64", nil},
{"u8", "255", "uint8", nil},
{"up", "5", "uintptr", nil}}},
{(*ThreadContext).FunctionArguments,
[]varTest{
{"bar", "main.FooBar {Baz: 10, Bur: lorem}", "main.FooBar", nil},
@ -178,7 +191,7 @@ func TestLocalVariables(t *testing.T) {
}
withTestProcess(executablePath, t, func(p *DebuggedProcess) {
pc, _, _ := p.GoSymTable.LineToPC(fp, 39)
pc, _, _ := p.GoSymTable.LineToPC(fp, 46)
_, err := p.Break(pc)
assertNoError(err, t, "Break() returned an error")