Skip to content

Commit bf7729d

Browse files
committed
Add more linters
1 parent f685b9e commit bf7729d

File tree

5 files changed

+87
-23
lines changed

5 files changed

+87
-23
lines changed

.golangci.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,33 @@ linters-settings:
55
ignore-generated-header: true
66
rules:
77
- name: blank-imports
8+
- name: constant-logical-expr
89
- name: context-as-argument
910
- name: context-keys-type
11+
- name: defer
1012
- name: dot-imports
13+
- name: duplicated-imports
1114
- name: empty-block
1215
- name: error-naming
1316
- name: error-return
1417
- name: error-strings
1518
- name: errorf
1619
- name: exported
20+
- name: import-shadowing
1721
- name: increment-decrement
1822
- name: indent-error-flow
1923
- name: package-comments
2024
- name: range
25+
- name: range-val-address
26+
- name: range-val-in-closure
2127
- name: receiver-naming
2228
- name: redefines-builtin-id
29+
- name: string-of-int
2330
- name: superfluous-else
2431
- name: time-naming
32+
- name: unchecked-type-assertion
2533
- name: unexported-return
34+
- name: unnecessary-stmt
2635
- name: unreachable-code
2736
- name: unused-parameter
2837
- name: var-declaration
@@ -59,6 +68,7 @@ linters:
5968
- ineffassign
6069
- intrange
6170
- makezero
71+
- mirror
6272
- misspell
6373
- musttag
6474
- nilerr
@@ -67,6 +77,7 @@ linters:
6777
- perfsprint
6878
- prealloc
6979
- predeclared
80+
- paralleltest
7081
- reassign
7182
- revive
7283
- staticcheck

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ GOLANGCI_LINT_VERSION = v1.61.0
44
test: unit-test test-integration test-integration-no-stream-block clean
55

66
lint:
7-
docker run --pull always --rm -v $(shell pwd):/nginx-plus-go-client -w /nginx-plus-go-client -v $(shell go env GOCACHE):/cache/go -e GOCACHE=/cache/go -e GOLANGCI_LINT_CACHE=/cache/go -v $(shell go env GOPATH)/pkg:/go/pkg golangci/golangci-lint:$(GOLANGCI_LINT_VERSION) golangci-lint --color always run
7+
go run github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) run --fix
88

99
unit-test:
1010
go test -v -shuffle=on -race client/*.go

client/nginx_test.go

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ func TestDetermineUpdates(t *testing.T) {
1515
t.Parallel()
1616
maxConns := 1
1717
tests := []struct {
18+
name string
1819
updated []UpstreamServer
1920
nginx []UpstreamServer
2021
expectedToAdd []UpstreamServer
@@ -58,6 +59,7 @@ func TestDetermineUpdates(t *testing.T) {
5859
Server: "10.0.0.2:80",
5960
},
6061
},
62+
name: "replace all",
6163
},
6264
{
6365
updated: []UpstreamServer{
@@ -96,6 +98,7 @@ func TestDetermineUpdates(t *testing.T) {
9698
Server: "10.0.0.1:80",
9799
},
98100
},
101+
name: "add and delete",
99102
},
100103
{
101104
updated: []UpstreamServer{
@@ -120,6 +123,7 @@ func TestDetermineUpdates(t *testing.T) {
120123
Server: "10.0.0.3:80",
121124
},
122125
},
126+
name: "same",
123127
},
124128
{
125129
// empty values
@@ -154,21 +158,26 @@ func TestDetermineUpdates(t *testing.T) {
154158
MaxConns: &maxConns,
155159
},
156160
},
161+
name: "update field and delete",
157162
},
158163
}
159164

160165
for _, test := range tests {
161-
toAdd, toDelete, toUpdate := determineUpdates(test.updated, test.nginx)
162-
if !reflect.DeepEqual(toAdd, test.expectedToAdd) || !reflect.DeepEqual(toDelete, test.expectedToDelete) || !reflect.DeepEqual(toUpdate, test.expectedToUpdate) {
163-
t.Errorf("determineUpdates(%v, %v) = (%v, %v, %v)", test.updated, test.nginx, toAdd, toDelete, toUpdate)
164-
}
166+
t.Run(test.name, func(t *testing.T) {
167+
t.Parallel()
168+
toAdd, toDelete, toUpdate := determineUpdates(test.updated, test.nginx)
169+
if !reflect.DeepEqual(toAdd, test.expectedToAdd) || !reflect.DeepEqual(toDelete, test.expectedToDelete) || !reflect.DeepEqual(toUpdate, test.expectedToUpdate) {
170+
t.Errorf("determineUpdates(%v, %v) = (%v, %v, %v)", test.updated, test.nginx, toAdd, toDelete, toUpdate)
171+
}
172+
})
165173
}
166174
}
167175

168176
func TestStreamDetermineUpdates(t *testing.T) {
169177
t.Parallel()
170178
maxConns := 1
171179
tests := []struct {
180+
name string
172181
updated []StreamUpstreamServer
173182
nginx []StreamUpstreamServer
174183
expectedToAdd []StreamUpstreamServer
@@ -212,6 +221,7 @@ func TestStreamDetermineUpdates(t *testing.T) {
212221
Server: "10.0.0.2:80",
213222
},
214223
},
224+
name: "replace all",
215225
},
216226
{
217227
updated: []StreamUpstreamServer{
@@ -250,6 +260,7 @@ func TestStreamDetermineUpdates(t *testing.T) {
250260
Server: "10.0.0.1:80",
251261
},
252262
},
263+
name: "add and delete",
253264
},
254265
{
255266
updated: []StreamUpstreamServer{
@@ -277,6 +288,7 @@ func TestStreamDetermineUpdates(t *testing.T) {
277288
Server: "10.0.0.3:80",
278289
},
279290
},
291+
name: "same",
280292
},
281293
{
282294
// empty values
@@ -311,14 +323,18 @@ func TestStreamDetermineUpdates(t *testing.T) {
311323
MaxConns: &maxConns,
312324
},
313325
},
326+
name: "update field and delete",
314327
},
315328
}
316329

317330
for _, test := range tests {
318-
toAdd, toDelete, toUpdate := determineStreamUpdates(test.updated, test.nginx)
319-
if !reflect.DeepEqual(toAdd, test.expectedToAdd) || !reflect.DeepEqual(toDelete, test.expectedToDelete) || !reflect.DeepEqual(toUpdate, test.expectedToUpdate) {
320-
t.Errorf("determiteUpdates(%v, %v) = (%v, %v, %v)", test.updated, test.nginx, toAdd, toDelete, toUpdate)
321-
}
331+
t.Run(test.name, func(t *testing.T) {
332+
t.Parallel()
333+
toAdd, toDelete, toUpdate := determineStreamUpdates(test.updated, test.nginx)
334+
if !reflect.DeepEqual(toAdd, test.expectedToAdd) || !reflect.DeepEqual(toDelete, test.expectedToDelete) || !reflect.DeepEqual(toUpdate, test.expectedToUpdate) {
335+
t.Errorf("determiteUpdates(%v, %v) = (%v, %v, %v)", test.updated, test.nginx, toAdd, toDelete, toUpdate)
336+
}
337+
})
322338
}
323339
}
324340

@@ -368,16 +384,20 @@ func TestAddPortToServer(t *testing.T) {
368384
}
369385

370386
for _, test := range tests {
371-
result := addPortToServer(test.address)
372-
if result != test.expected {
373-
t.Errorf("addPortToServer(%v) returned %v but expected %v for %v", test.address, result, test.expected, test.msg)
374-
}
387+
t.Run(test.msg, func(t *testing.T) {
388+
t.Parallel()
389+
result := addPortToServer(test.address)
390+
if result != test.expected {
391+
t.Errorf("addPortToServer(%v) returned %v but expected %v for %v", test.address, result, test.expected, test.msg)
392+
}
393+
})
375394
}
376395
}
377396

378397
func TestHaveSameParameters(t *testing.T) {
379398
t.Parallel()
380399
tests := []struct {
400+
msg string
381401
server UpstreamServer
382402
serverNGX UpstreamServer
383403
expected bool
@@ -386,11 +406,13 @@ func TestHaveSameParameters(t *testing.T) {
386406
server: UpstreamServer{},
387407
serverNGX: UpstreamServer{},
388408
expected: true,
409+
msg: "empty",
389410
},
390411
{
391412
server: UpstreamServer{ID: 2},
392413
serverNGX: UpstreamServer{ID: 3},
393414
expected: true,
415+
msg: "different ID",
394416
},
395417
{
396418
server: UpstreamServer{},
@@ -404,6 +426,7 @@ func TestHaveSameParameters(t *testing.T) {
404426
Down: &defaultDown,
405427
},
406428
expected: true,
429+
msg: "default values",
407430
},
408431
{
409432
server: UpstreamServer{
@@ -429,35 +452,43 @@ func TestHaveSameParameters(t *testing.T) {
429452
Down: &defaultDown,
430453
},
431454
expected: true,
455+
msg: "same values",
432456
},
433457
{
434458
server: UpstreamServer{SlowStart: "10s"},
435459
serverNGX: UpstreamServer{},
436460
expected: false,
461+
msg: "different SlowStart",
437462
},
438463
{
439464
server: UpstreamServer{},
440465
serverNGX: UpstreamServer{SlowStart: "10s"},
441466
expected: false,
467+
msg: "different SlowStart 2",
442468
},
443469
{
444470
server: UpstreamServer{SlowStart: "20s"},
445471
serverNGX: UpstreamServer{SlowStart: "10s"},
446472
expected: false,
473+
msg: "different SlowStart 3",
447474
},
448475
}
449476

450477
for _, test := range tests {
451-
result := haveSameParameters(test.server, test.serverNGX)
452-
if result != test.expected {
453-
t.Errorf("haveSameParameters(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
454-
}
478+
t.Run(test.msg, func(t *testing.T) {
479+
t.Parallel()
480+
result := haveSameParameters(test.server, test.serverNGX)
481+
if result != test.expected {
482+
t.Errorf("haveSameParameters(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
483+
}
484+
})
455485
}
456486
}
457487

458488
func TestHaveSameParametersForStream(t *testing.T) {
459489
t.Parallel()
460490
tests := []struct {
491+
msg string
461492
server StreamUpstreamServer
462493
serverNGX StreamUpstreamServer
463494
expected bool
@@ -466,11 +497,13 @@ func TestHaveSameParametersForStream(t *testing.T) {
466497
server: StreamUpstreamServer{},
467498
serverNGX: StreamUpstreamServer{},
468499
expected: true,
500+
msg: "empty",
469501
},
470502
{
471503
server: StreamUpstreamServer{ID: 2},
472504
serverNGX: StreamUpstreamServer{ID: 3},
473505
expected: true,
506+
msg: "different ID",
474507
},
475508
{
476509
server: StreamUpstreamServer{},
@@ -484,6 +517,7 @@ func TestHaveSameParametersForStream(t *testing.T) {
484517
Down: &defaultDown,
485518
},
486519
expected: true,
520+
msg: "default values",
487521
},
488522
{
489523
server: StreamUpstreamServer{
@@ -509,24 +543,30 @@ func TestHaveSameParametersForStream(t *testing.T) {
509543
Down: &defaultDown,
510544
},
511545
expected: true,
546+
msg: "same values",
512547
},
513548
{
514549
server: StreamUpstreamServer{},
515550
serverNGX: StreamUpstreamServer{SlowStart: "10s"},
516551
expected: false,
552+
msg: "different SlowStart",
517553
},
518554
{
519555
server: StreamUpstreamServer{SlowStart: "20s"},
520556
serverNGX: StreamUpstreamServer{SlowStart: "10s"},
521557
expected: false,
558+
msg: "different SlowStart 2",
522559
},
523560
}
524561

525562
for _, test := range tests {
526-
result := haveSameParametersForStream(test.server, test.serverNGX)
527-
if result != test.expected {
528-
t.Errorf("haveSameParametersForStream(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
529-
}
563+
t.Run(test.msg, func(t *testing.T) {
564+
t.Parallel()
565+
result := haveSameParametersForStream(test.server, test.serverNGX)
566+
if result != test.expected {
567+
t.Errorf("haveSameParametersForStream(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
568+
}
569+
})
530570
}
531571
}
532572

@@ -624,6 +664,7 @@ func TestClientWithHTTPClient(t *testing.T) {
624664
}
625665

626666
func TestGetStats_NoStreamEndpoint(t *testing.T) {
667+
t.Parallel()
627668
tests := []struct {
628669
ctx context.Context
629670
name string
@@ -641,7 +682,6 @@ func TestGetStats_NoStreamEndpoint(t *testing.T) {
641682
var client *NginxClient
642683
var writeLock sync.Mutex
643684

644-
t.Parallel()
645685
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
646686
writeLock.Lock()
647687
defer writeLock.Unlock()
@@ -708,6 +748,7 @@ func TestGetStats_NoStreamEndpoint(t *testing.T) {
708748
}
709749

710750
func TestGetStats_SSL(t *testing.T) {
751+
t.Parallel()
711752
tests := []struct {
712753
ctx context.Context
713754
name string
@@ -722,7 +763,6 @@ func TestGetStats_SSL(t *testing.T) {
722763
},
723764
}
724765

725-
t.Parallel()
726766
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
727767
switch {
728768
case r.RequestURI == "/":

tests/client_no_stream_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
// The API returns a special error code that we can use to determine if the API
1313
// is misconfigured or of the stream block is missing.
1414
func TestStatsNoStream(t *testing.T) {
15+
t.Parallel()
1516
c, err := client.NewNginxClient(helpers.GetAPIEndpoint())
1617
if err != nil {
1718
t.Fatalf("Error connecting to nginx: %v", err)

0 commit comments

Comments
 (0)