delve/terminal/command_test.go

101 lines
1.9 KiB
Go
Raw Normal View History

package terminal
2014-05-20 21:28:24 +00:00
2014-05-20 23:09:34 +00:00
import (
2015-05-04 22:31:13 +00:00
"fmt"
"path/filepath"
2014-05-20 23:09:34 +00:00
"testing"
"github.com/derekparker/delve/proc/test"
2014-05-20 23:09:34 +00:00
)
2014-05-20 21:28:24 +00:00
func TestCommandDefault(t *testing.T) {
var (
cmds = Commands{}
2014-05-20 21:28:24 +00:00
cmd = cmds.Find("non-existant-command")
)
err := cmd(nil)
2014-05-20 21:28:24 +00:00
if err == nil {
t.Fatal("cmd() did not default")
}
if err.Error() != "command not available" {
t.Fatal("wrong command output")
}
}
2014-05-20 23:09:34 +00:00
func TestCommandReplay(t *testing.T) {
cmds := DebugCommands(nil)
cmds.Register("foo", func(t *Term, args ...string) error { return fmt.Errorf("registered command") }, "foo command")
cmd := cmds.Find("foo")
err := cmd(nil)
if err.Error() != "registered command" {
t.Fatal("wrong command output")
}
cmd = cmds.Find("")
err = cmd(nil)
if err.Error() != "registered command" {
t.Fatal("wrong command output")
}
}
func TestCommandReplayWithoutPreviousCommand(t *testing.T) {
var (
cmds = DebugCommands(nil)
cmd = cmds.Find("")
err = cmd(nil)
)
if err != nil {
t.Error("Null command not returned", err)
}
}
func TestCommandThread(t *testing.T) {
var (
cmds = DebugCommands(nil)
cmd = cmds.Find("thread")
)
err := cmd(nil)
if err == nil {
t.Fatal("thread terminal command did not default")
}
if err.Error() != "you must specify a thread" {
t.Fatal("wrong command output: ", err.Error())
}
}
func TestExecuteFile(t *testing.T) {
breakCount := 0
traceCount := 0
c := &Commands{
client: nil,
cmds: []command{
{aliases: []string{"trace"}, cmdFn: func(t *Term, args ...string) error {
traceCount++
return nil
}},
{aliases: []string{"break"}, cmdFn: func(t *Term, args ...string) error {
breakCount++
return nil
}},
},
}
fixturesDir := test.FindFixturesDir()
err := c.executeFile(nil, filepath.Join(fixturesDir, "bpfile"))
if err != nil {
t.Fatalf("executeFile: %v", err)
}
if breakCount != 1 || traceCount != 1 {
t.Fatalf("Wrong counts break: %d trace: %d\n", breakCount, traceCount)
}
}