| // Copyright 2015 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | package main | 
 |  | 
 | import "os" | 
 |  | 
 | var cmds = map[string]func(){} | 
 |  | 
 | func register(name string, f func()) { | 
 | 	if cmds[name] != nil { | 
 | 		panic("duplicate registration: " + name) | 
 | 	} | 
 | 	cmds[name] = f | 
 | } | 
 |  | 
 | func registerInit(name string, f func()) { | 
 | 	if len(os.Args) >= 2 && os.Args[1] == name { | 
 | 		f() | 
 | 	} | 
 | } | 
 |  | 
 | func main() { | 
 | 	if len(os.Args) < 2 { | 
 | 		println("usage: " + os.Args[0] + " name-of-test") | 
 | 		return | 
 | 	} | 
 | 	f := cmds[os.Args[1]] | 
 | 	if f == nil { | 
 | 		println("unknown function: " + os.Args[1]) | 
 | 		return | 
 | 	} | 
 | 	f() | 
 | } |