cmd/vet: add subtestnames analyzer; fix all existing violations
Add a new vet analyzer that checks t.Run subtest names don't contain characters requiring quoting when re-running via "go test -run". This enforces the style guide rule: don't use spaces or punctuation in subtest names. The analyzer flags: - Direct t.Run calls with string literal names containing spaces, regex metacharacters, quotes, or other problematic characters - Table-driven t.Run(tt.name, ...) calls where tt ranges over a slice/map literal with bad name field values Also fix all 978 existing violations across 81 test files, replacing spaces with hyphens and shortening long sentence-like names to concise hyphenated forms. Updates #19242 Change-Id: Ib0ad96a111bd8e764582d1d4902fe2599454ab65 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
0f02c20c5e
commit
5ef3713c9f
+22
-22
@@ -619,49 +619,49 @@ func TestServeHTTPProxyPath(t *testing.T) {
|
||||
wantRequestPath string
|
||||
}{
|
||||
{
|
||||
name: "/foo -> /foo, with mount point and path /foo",
|
||||
name: "foo-to-foo-mount-foo",
|
||||
mountPoint: "/foo",
|
||||
proxyPath: "/foo",
|
||||
requestPath: "/foo",
|
||||
wantRequestPath: "/foo",
|
||||
},
|
||||
{
|
||||
name: "/foo/ -> /foo/, with mount point and path /foo",
|
||||
name: "foo-slash-to-foo-slash-mount-foo",
|
||||
mountPoint: "/foo",
|
||||
proxyPath: "/foo",
|
||||
requestPath: "/foo/",
|
||||
wantRequestPath: "/foo/",
|
||||
},
|
||||
{
|
||||
name: "/foo -> /foo/, with mount point and path /foo/",
|
||||
name: "foo-to-foo-slash-mount-foo-slash",
|
||||
mountPoint: "/foo/",
|
||||
proxyPath: "/foo/",
|
||||
requestPath: "/foo",
|
||||
wantRequestPath: "/foo/",
|
||||
},
|
||||
{
|
||||
name: "/-> /, with mount point and path /",
|
||||
name: "root-to-root-mount-root",
|
||||
mountPoint: "/",
|
||||
proxyPath: "/",
|
||||
requestPath: "/",
|
||||
wantRequestPath: "/",
|
||||
},
|
||||
{
|
||||
name: "/foo -> /foo, with mount point and path /",
|
||||
name: "foo-to-foo-mount-root",
|
||||
mountPoint: "/",
|
||||
proxyPath: "/",
|
||||
requestPath: "/foo",
|
||||
wantRequestPath: "/foo",
|
||||
},
|
||||
{
|
||||
name: "/foo/bar -> /foo/bar, with mount point and path /foo",
|
||||
name: "foo-bar-to-foo-bar-mount-foo",
|
||||
mountPoint: "/foo",
|
||||
proxyPath: "/foo",
|
||||
requestPath: "/foo/bar",
|
||||
wantRequestPath: "/foo/bar",
|
||||
},
|
||||
{
|
||||
name: "/foo/bar/baz -> /foo/bar/baz, with mount point and path /foo",
|
||||
name: "foo-bar-baz-to-foo-bar-baz-mount-foo",
|
||||
mountPoint: "/foo",
|
||||
proxyPath: "/foo",
|
||||
requestPath: "/foo/bar/baz",
|
||||
@@ -1457,7 +1457,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError bool
|
||||
}{
|
||||
{
|
||||
name: "empty existing config",
|
||||
name: "empty-existing-config",
|
||||
description: "should be able to update with empty existing config",
|
||||
existing: &ipn.ServeConfig{},
|
||||
incoming: &ipn.ServeConfig{
|
||||
@@ -1468,7 +1468,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "no existing config",
|
||||
name: "no-existing-config",
|
||||
description: "should be able to update with no existing config",
|
||||
existing: nil,
|
||||
incoming: &ipn.ServeConfig{
|
||||
@@ -1479,7 +1479,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "empty incoming config",
|
||||
name: "empty-incoming-config",
|
||||
description: "wiping config should work",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1490,7 +1490,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "no incoming config",
|
||||
name: "no-incoming-config",
|
||||
description: "missing incoming config should not result in an error",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1501,7 +1501,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "non-overlapping update",
|
||||
name: "non-overlapping-update",
|
||||
description: "non-overlapping update should work",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1516,7 +1516,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "overwriting background port",
|
||||
name: "overwriting-background-port",
|
||||
description: "should be able to overwrite a background port",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1535,7 +1535,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "broken existing config",
|
||||
name: "broken-existing-config",
|
||||
description: "broken existing config should not prevent new config updates",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1573,7 +1573,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "services same port as background",
|
||||
name: "services-same-port-as-background",
|
||||
description: "services should be able to use the same port as background listeners",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1592,7 +1592,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: false,
|
||||
},
|
||||
{
|
||||
name: "services tun mode",
|
||||
name: "services-tun-mode",
|
||||
description: "TUN mode should be mutually exclusive with TCP or web handlers for new Services",
|
||||
existing: &ipn.ServeConfig{},
|
||||
incoming: &ipn.ServeConfig{
|
||||
@@ -1608,7 +1608,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "new foreground listener",
|
||||
name: "new-foreground-listener",
|
||||
description: "new foreground listeners must be on open ports",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1627,7 +1627,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "new background listener",
|
||||
name: "new-background-listener",
|
||||
description: "new background listers cannot overwrite foreground listeners",
|
||||
existing: &ipn.ServeConfig{
|
||||
Foreground: map[string]*ipn.ServeConfig{
|
||||
@@ -1646,7 +1646,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "serve type overwrite",
|
||||
name: "serve-type-overwrite",
|
||||
description: "incoming configuration cannot change the serve type in use by a port",
|
||||
existing: &ipn.ServeConfig{
|
||||
TCP: map[uint16]*ipn.TCPPortHandler{
|
||||
@@ -1665,7 +1665,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "serve type overwrite services",
|
||||
name: "serve-type-overwrite-services",
|
||||
description: "incoming Services configuration cannot change the serve type in use by a port",
|
||||
existing: &ipn.ServeConfig{
|
||||
Services: map[tailcfg.ServiceName]*ipn.ServiceConfig{
|
||||
@@ -1692,7 +1692,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "tun mode with handlers",
|
||||
name: "tun-mode-with-handlers",
|
||||
description: "Services cannot enable TUN mode if L4 or L7 handlers already exist",
|
||||
existing: &ipn.ServeConfig{
|
||||
Services: map[tailcfg.ServiceName]*ipn.ServiceConfig{
|
||||
@@ -1720,7 +1720,7 @@ func TestValidateServeConfigUpdate(t *testing.T) {
|
||||
wantError: true,
|
||||
},
|
||||
{
|
||||
name: "handlers with tun mode",
|
||||
name: "handlers-with-tun-mode",
|
||||
description: "Services cannot add L4 or L7 handlers if TUN mode is already enabled",
|
||||
existing: &ipn.ServeConfig{
|
||||
Services: map[tailcfg.ServiceName]*ipn.ServiceConfig{
|
||||
|
||||
Reference in New Issue
Block a user