|
|
|
|
@ -9,6 +9,7 @@ import ( |
|
|
|
|
"encoding/json" |
|
|
|
|
"flag" |
|
|
|
|
"fmt" |
|
|
|
|
"io" |
|
|
|
|
"net/netip" |
|
|
|
|
"reflect" |
|
|
|
|
"strings" |
|
|
|
|
@ -1480,3 +1481,33 @@ func TestParseNLArgs(t *testing.T) { |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestHelpAlias(t *testing.T) { |
|
|
|
|
var stdout, stderr bytes.Buffer |
|
|
|
|
tstest.Replace[io.Writer](t, &Stdout, &stdout) |
|
|
|
|
tstest.Replace[io.Writer](t, &Stderr, &stderr) |
|
|
|
|
|
|
|
|
|
gotExit0 := false |
|
|
|
|
defer func() { |
|
|
|
|
if !gotExit0 { |
|
|
|
|
t.Error("expected os.Exit(0) to be called") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
if !strings.Contains(stderr.String(), "SUBCOMMANDS") { |
|
|
|
|
t.Errorf("expected help output to contain SUBCOMMANDS; got stderr=%q; stdout=%q", stderr.String(), stdout.String()) |
|
|
|
|
} |
|
|
|
|
}() |
|
|
|
|
defer func() { |
|
|
|
|
if e := recover(); e != nil { |
|
|
|
|
if strings.Contains(fmt.Sprint(e), "unexpected call to os.Exit(0)") { |
|
|
|
|
gotExit0 = true |
|
|
|
|
} else { |
|
|
|
|
t.Errorf("unexpected panic: %v", e) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}() |
|
|
|
|
err := Run([]string{"help"}) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("Run: %v", err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|