67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package cli_test
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"git.froth.zone/sam/awl/cli"
|
|
"gotest.tools/v3/assert"
|
|
)
|
|
|
|
func TestEmpty(t *testing.T) {
|
|
old := os.Args
|
|
os.Args = []string{"awl", "-4"}
|
|
opts, err := cli.ParseCLI("TEST")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, (opts.Port == 53))
|
|
assert.Assert(t, opts.IPv4)
|
|
os.Args = old
|
|
}
|
|
|
|
func TestTLSPort(t *testing.T) {
|
|
old := os.Args
|
|
os.Args = []string{"awl", "-T"}
|
|
opts, err := cli.ParseCLI("TEST")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, (opts.Port == 853))
|
|
os.Args = old
|
|
}
|
|
|
|
func TestInvalidFlag(t *testing.T) {
|
|
old := os.Args
|
|
os.Args = []string{"awl", "--treebug"}
|
|
_, err := cli.ParseCLI("TEST")
|
|
assert.ErrorContains(t, err, "unknown flag")
|
|
os.Args = old
|
|
}
|
|
|
|
func TestInvalidDig(t *testing.T) {
|
|
old := os.Args
|
|
os.Args = []string{"awl", "+a"}
|
|
_, err := cli.ParseCLI("TEST")
|
|
assert.ErrorContains(t, err, "dig: unknown flag")
|
|
os.Args = old
|
|
}
|
|
|
|
func TestVersion(t *testing.T) {
|
|
old := os.Args
|
|
os.Args = []string{"awl", "--version"}
|
|
_, err := cli.ParseCLI("TEST")
|
|
assert.ErrorType(t, err, cli.ErrNotError)
|
|
os.Args = old
|
|
}
|
|
|
|
func FuzzFlags(f *testing.F) {
|
|
testcases := []string{"git.froth.zone", "", "!12345", "google.com.edu.org.fr"}
|
|
for _, tc := range testcases {
|
|
f.Add(tc)
|
|
}
|
|
|
|
f.Fuzz(func(t *testing.T, orig string) {
|
|
os.Args = []string{orig}
|
|
//nolint:errcheck // Only make sure the program does not crash
|
|
cli.ParseCLI("TEST")
|
|
})
|
|
}
|