! garble stderr 'Garble obfuscates Go code' stderr 'garble \[garble flags\] command' ! stderr 'usage: go build' ! stdout . ! garble -h stderr 'Garble obfuscates Go code' stderr 'garble \[garble flags\] command' ! stdout . ! garble help stderr 'Garble obfuscates Go code' stderr 'garble \[garble flags\] command' ! stdout . ! garble help foo bar stderr 'does not take arguments' ! stdout . ! garble build -h stderr 'garble \[garble flags\] build' stderr 'This command wraps "go build"' stderr 'usage: go build' stderr 'Run .go help build.' ! stderr 'Garble obfuscates Go code' ! stdout . ! garble test -h stderr 'garble \[garble flags\] test' stderr 'This command wraps "go test"' stderr 'usage: go test' stderr 'Run .go help test.' ! stderr 'Garble obfuscates Go code' ! stdout . ! garble reverse -h stderr 'garble \[garble flags\] reverse \[files\]' ! stderr 'usage: go ' ! stdout . ! garble -badflag stderr 'flag provided but not defined' stderr 'garble \[garble flags\] command' ! stdout . ! garble badcmd stderr 'unknown command' ! garble build -badflag stderr 'usage: go build' # TODO: is this confusing? ! stdout . [!windows] ! garble /does/not/exist/compile [windows] ! garble C:\does\not\exist\compile stderr 'not running "garble \[command\]"' garble version stdout 'devel|^v0' ! garble version -flag stderr 'does not take arguments' ! garble version arg stderr 'does not take arguments' # We need a dummy module for "garble build -badflag". -- go.mod -- module dummy -- dummy.go -- package dummy