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:
Brad Fitzpatrick
2026-04-04 21:32:14 +00:00
committed by Brad Fitzpatrick
parent 0f02c20c5e
commit 5ef3713c9f
87 changed files with 1405 additions and 982 deletions
+19 -19
View File
@@ -48,7 +48,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantEndpoints []netip.AddrPort
}{
{
name: "no changes non-nil port previously running",
name: "no-changes-non-nil-port-running",
fields: fields{
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -62,7 +62,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "set addr ports unchanged port previously running",
name: "set-addr-ports-unchanged-running",
fields: fields{
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -77,7 +77,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantEndpoints: prefsWithPortOneRelayEndpoints.RelayServerStaticEndpoints,
},
{
name: "set addr ports not previously running",
name: "set-addr-ports-not-running",
fields: fields{
port: nil,
rs: nil,
@@ -92,7 +92,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantEndpoints: prefsWithPortOneRelayEndpoints.RelayServerStaticEndpoints,
},
{
name: "clear addr ports unchanged port previously running",
name: "clear-addr-ports-unchanged-running",
fields: fields{
port: new(uint16(1)),
staticEndpoints: views.SliceOf(prefsWithPortOneRelayEndpoints.RelayServerStaticEndpoints),
@@ -108,7 +108,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantEndpoints: nil,
},
{
name: "prefs port nil",
name: "prefs-port-nil",
fields: fields{
port: new(uint16(1)),
},
@@ -121,7 +121,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "prefs port nil previously running",
name: "prefs-port-nil-running",
fields: fields{
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -135,7 +135,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "prefs port changed",
name: "prefs-port-changed",
fields: fields{
port: new(uint16(2)),
},
@@ -148,7 +148,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "prefs port changed previously running",
name: "prefs-port-changed-running",
fields: fields{
port: new(uint16(2)),
rs: mockRelayServerNotZeroVal(),
@@ -162,7 +162,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "sameNode false",
name: "sameNode-false",
fields: fields{
port: new(uint16(1)),
},
@@ -175,7 +175,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "sameNode false previously running",
name: "sameNode-false-running",
fields: fields{
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -189,7 +189,7 @@ func Test_extension_profileStateChanged(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "prefs port non-nil extension port nil",
name: "prefs-port-non-nil-ext-nil",
fields: fields{
port: nil,
},
@@ -277,7 +277,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated bool
}{
{
name: "want running",
name: "want-running",
shutdown: false,
port: new(uint16(1)),
hasNodeAttrDisableRelayServer: false,
@@ -285,7 +285,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "want running previously running",
name: "want-running-previously-running",
shutdown: false,
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -294,7 +294,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "shutdown true",
name: "shutdown-true",
shutdown: true,
port: new(uint16(1)),
hasNodeAttrDisableRelayServer: false,
@@ -302,7 +302,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "shutdown true previously running",
name: "shutdown-true-previously-running",
shutdown: true,
port: new(uint16(1)),
rs: mockRelayServerNotZeroVal(),
@@ -311,7 +311,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "port nil",
name: "port-nil",
shutdown: false,
port: nil,
hasNodeAttrDisableRelayServer: false,
@@ -319,7 +319,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "port nil previously running",
name: "port-nil-previously-running",
shutdown: false,
port: nil,
rs: mockRelayServerNotZeroVal(),
@@ -328,7 +328,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: true,
},
{
name: "hasNodeAttrDisableRelayServer true",
name: "hasNodeAttrDisableRelayServer-true",
shutdown: false,
port: nil,
hasNodeAttrDisableRelayServer: true,
@@ -336,7 +336,7 @@ func Test_extension_handleRelayServerLifetimeLocked(t *testing.T) {
wantRelayServerFieldMutated: false,
},
{
name: "hasNodeAttrDisableRelayServer true previously running",
name: "hasNodeAttrDisableRelayServer-true-running",
shutdown: false,
port: nil,
rs: mockRelayServerNotZeroVal(),