Evgenii Stratonikov
c7a12ca3d8
All checks were successful
DCO action / DCO (pull_request) Successful in 5m33s
Vulncheck / Vulncheck (pull_request) Successful in 5m54s
Build / Build Components (1.21) (pull_request) Successful in 10m3s
Tests and linters / gopls check (pull_request) Successful in 11m49s
Build / Build Components (1.20) (pull_request) Successful in 12m47s
Tests and linters / Staticcheck (pull_request) Successful in 13m21s
Tests and linters / Lint (pull_request) Successful in 14m21s
Tests and linters / Tests (1.20) (pull_request) Successful in 16m39s
Tests and linters / Tests with -race (pull_request) Successful in 16m46s
Tests and linters / Tests (1.21) (pull_request) Successful in 16m59s
No big deal, but it is called multiple times in sorting routine, this easily results in 20 allocations per group traversal. ``` goos: linux goarch: amd64 pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/network cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz │ old │ new │ │ sec/op │ sec/op vs base │ AddressTLSEnabled-8 184.6n ± 1% 103.3n ± 6% -44.04% (p=0.000 n=10) │ old │ new │ │ B/op │ B/op vs base │ AddressTLSEnabled-8 704.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10) │ old │ new │ │ allocs/op │ allocs/op vs base │ AddressTLSEnabled-8 1.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10) ``` Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
44 lines
868 B
Go
44 lines
868 B
Go
package network
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAddress_TLSEnabled(t *testing.T) {
|
|
testCases := [...]struct {
|
|
input string
|
|
wantTLS bool
|
|
}{
|
|
{"/dns4/localhost/tcp/8080", false},
|
|
{"/dns4/localhost/tcp/8080/tls", true},
|
|
{"/tls/dns4/localhost/tcp/8080", true},
|
|
{"grpc://localhost:8080", false},
|
|
{"grpcs://localhost:8080", true},
|
|
}
|
|
|
|
var addr Address
|
|
|
|
for _, test := range testCases {
|
|
err := addr.FromString(test.input)
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, test.wantTLS, addr.IsTLSEnabled(), test.input)
|
|
}
|
|
}
|
|
|
|
func BenchmarkAddressTLSEnabled(b *testing.B) {
|
|
var addr Address
|
|
err := addr.FromString("/dns4/localhost/tcp/8080/tls")
|
|
require.NoError(b, err)
|
|
|
|
b.ResetTimer()
|
|
b.ReportAllocs()
|
|
|
|
var enabled bool
|
|
for i := 0; i < b.N; i++ {
|
|
enabled = addr.IsTLSEnabled()
|
|
}
|
|
require.True(b, enabled)
|
|
}
|