mirror of
				https://github.com/go-delve/delve.git
				synced 2025-10-31 02:36:18 +08:00 
			
		
		
		
	Add ability to register commands
This commit is contained in:
		| @ -19,6 +19,10 @@ func DebugCommands() *Commands { | ||||
| 	return &Commands{cmds} | ||||
| } | ||||
|  | ||||
| func (c *Commands) Register(cmdstr string, cf cmdfunc) { | ||||
| 	c.cmds[cmdstr] = cf | ||||
| } | ||||
|  | ||||
| func (c *Commands) Find(cmdstr string) cmdfunc { | ||||
| 	cmd, ok := c.cmds[cmdstr] | ||||
| 	if !ok { | ||||
|  | ||||
| @ -1,6 +1,9 @@ | ||||
| package command | ||||
|  | ||||
| import "testing" | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"testing" | ||||
| ) | ||||
|  | ||||
| func TestCommandDefault(t *testing.T) { | ||||
| 	var ( | ||||
| @ -17,3 +20,20 @@ func TestCommandDefault(t *testing.T) { | ||||
| 		t.Fatal("wrong command output") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestCommandRegister(t *testing.T) { | ||||
| 	cmds := Commands{make(map[string]cmdfunc)} | ||||
|  | ||||
| 	cmds.Register("foo", func() error { return fmt.Errorf("registered command") }) | ||||
|  | ||||
| 	cmd := cmds.Find("foo") | ||||
|  | ||||
| 	err := cmd() | ||||
| 	if err == nil { | ||||
| 		t.Fatal("cmd was not found") | ||||
| 	} | ||||
|  | ||||
| 	if err.Error() != "registered command" { | ||||
| 		t.Fatal("wrong command output") | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Derek Parker
					Derek Parker