Compare commits

...

3 commits

Author SHA1 Message Date
be0df7f136 [#1316] lint: Run gofumpt
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-08-20 18:54:50 +03:00
fb1a16438a [#1316] lint: Fix conflicts
Renamed parameters `min/max` to avoid conflicts with
predeclared identifiers.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-08-20 18:54:50 +03:00
bd5cadd3ec [#1316] go.mod: Bump go version to 1.22
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-08-20 18:54:27 +03:00
15 changed files with 35 additions and 34 deletions

View file

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
go_versions: [ '1.21', '1.22' ] go_versions: [ '1.22', '1.23' ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -16,7 +16,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: 1.22 go-version: 1.23
- name: Set up Python - name: Set up Python
run: | run: |
apt update apt update

View file

@ -11,7 +11,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.22' go-version: '1.23'
cache: true cache: true
- name: Install linters - name: Install linters
@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
go_versions: [ '1.21', '1.22' ] go_versions: [ '1.22', '1.23' ]
fail-fast: false fail-fast: false
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -48,7 +48,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.21' go-version: '1.23'
cache: true cache: true
- name: Run tests - name: Run tests
@ -63,7 +63,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.22' go-version: '1.23'
cache: true cache: true
- name: Install staticcheck - name: Install staticcheck
@ -81,7 +81,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.21' go-version: '1.23'
cache: true cache: true
- name: Install gopls - name: Install gopls
@ -99,7 +99,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.22' go-version: '1.23'
cache: true cache: true
- name: Install gofumpt - name: Install gofumpt

View file

@ -13,7 +13,7 @@ jobs:
- name: Setup Go - name: Setup Go
uses: actions/setup-go@v3 uses: actions/setup-go@v3
with: with:
go-version: '1.22' go-version: '1.23'
- name: Install govulncheck - name: Install govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest run: go install golang.org/x/vuln/cmd/govulncheck@latest

View file

@ -49,7 +49,7 @@ The latest version of frostfs-node works with frostfs-contract
# Building # Building
To make all binaries you need Go 1.21+ and `make`: To make all binaries you need Go 1.22+ and `make`:
``` ```
make all make all
``` ```

2
go.mod
View file

@ -1,6 +1,6 @@
module git.frostfs.info/TrueCloudLab/frostfs-node module git.frostfs.info/TrueCloudLab/frostfs-node
go 1.21 go 1.22
require ( require (
code.gitea.io/sdk/gitea v0.17.1 code.gitea.io/sdk/gitea v0.17.1

View file

@ -27,21 +27,21 @@ type objectDesc struct {
storageID []byte storageID []byte
} }
func TestAll(t *testing.T, cons Constructor, min, max uint64) { func TestAll(t *testing.T, cons Constructor, minSize, maxSize uint64) {
t.Run("get", func(t *testing.T) { t.Run("get", func(t *testing.T) {
TestGet(t, cons, min, max) TestGet(t, cons, minSize, maxSize)
}) })
t.Run("get range", func(t *testing.T) { t.Run("get range", func(t *testing.T) {
TestGetRange(t, cons, min, max) TestGetRange(t, cons, minSize, maxSize)
}) })
t.Run("delete", func(t *testing.T) { t.Run("delete", func(t *testing.T) {
TestDelete(t, cons, min, max) TestDelete(t, cons, minSize, maxSize)
}) })
t.Run("exists", func(t *testing.T) { t.Run("exists", func(t *testing.T) {
TestExists(t, cons, min, max) TestExists(t, cons, minSize, maxSize)
}) })
t.Run("iterate", func(t *testing.T) { t.Run("iterate", func(t *testing.T) {
TestIterate(t, cons, min, max) TestIterate(t, cons, minSize, maxSize)
}) })
} }
@ -51,12 +51,12 @@ func TestInfo(t *testing.T, cons Constructor, expectedType string, expectedPath
require.Equal(t, expectedPath, s.Path()) require.Equal(t, expectedPath, s.Path())
} }
func prepare(t *testing.T, count int, s common.Storage, min, max uint64) []objectDesc { func prepare(t *testing.T, count int, s common.Storage, minSize, maxSize uint64) []objectDesc {
objects := make([]objectDesc, count) objects := make([]objectDesc, count)
r := mrand.New(mrand.NewSource(0)) r := mrand.New(mrand.NewSource(0))
for i := range objects { for i := range objects {
objects[i].obj = NewObject(min + uint64(r.Intn(int(max-min+1)))) // not too large objects[i].obj = NewObject(minSize + uint64(r.Intn(int(maxSize-minSize+1)))) // not too large
objects[i].addr = objectCore.AddressOf(objects[i].obj) objects[i].addr = objectCore.AddressOf(objects[i].obj)
raw, err := objects[i].obj.Marshal() raw, err := objects[i].obj.Marshal()

View file

@ -13,12 +13,12 @@ import (
// TestControl checks correctness of a read-only mode. // TestControl checks correctness of a read-only mode.
// cons must return a storage which is NOT opened. // cons must return a storage which is NOT opened.
func TestControl(t *testing.T, cons Constructor, min, max uint64) { func TestControl(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
objects := prepare(t, 10, s, min, max) objects := prepare(t, 10, s, minSize, maxSize)
require.NoError(t, s.Close()) require.NoError(t, s.Close())
require.NoError(t, s.Open(mode.ComponentReadOnly)) require.NoError(t, s.Open(mode.ComponentReadOnly))
@ -34,7 +34,7 @@ func TestControl(t *testing.T, cons Constructor, min, max uint64) {
t.Run("put fails", func(t *testing.T) { t.Run("put fails", func(t *testing.T) {
var prm common.PutPrm var prm common.PutPrm
prm.Object = NewObject(min + uint64(rand.Intn(int(max-min+1)))) prm.Object = NewObject(minSize + uint64(rand.Intn(int(maxSize-minSize+1))))
prm.Address = objectCore.AddressOf(prm.Object) prm.Address = objectCore.AddressOf(prm.Object)
_, err := s.Put(context.Background(), prm) _, err := s.Put(context.Background(), prm)

View file

@ -11,13 +11,13 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestDelete(t *testing.T, cons Constructor, min, max uint64) { func TestDelete(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
defer func() { require.NoError(t, s.Close()) }() defer func() { require.NoError(t, s.Close()) }()
objects := prepare(t, 4, s, min, max) objects := prepare(t, 4, s, minSize, maxSize)
t.Run("delete non-existent", func(t *testing.T) { t.Run("delete non-existent", func(t *testing.T) {
var prm common.DeletePrm var prm common.DeletePrm

View file

@ -10,13 +10,13 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestExists(t *testing.T, cons Constructor, min, max uint64) { func TestExists(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
defer func() { require.NoError(t, s.Close()) }() defer func() { require.NoError(t, s.Close()) }()
objects := prepare(t, 1, s, min, max) objects := prepare(t, 1, s, minSize, maxSize)
t.Run("missing object", func(t *testing.T) { t.Run("missing object", func(t *testing.T) {
prm := common.ExistsPrm{Address: oidtest.Address()} prm := common.ExistsPrm{Address: oidtest.Address()}

View file

@ -11,13 +11,13 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestGet(t *testing.T, cons Constructor, min, max uint64) { func TestGet(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
defer func() { require.NoError(t, s.Close()) }() defer func() { require.NoError(t, s.Close()) }()
objects := prepare(t, 2, s, min, max) objects := prepare(t, 2, s, minSize, maxSize)
t.Run("missing object", func(t *testing.T) { t.Run("missing object", func(t *testing.T) {
gPrm := common.GetPrm{Address: oidtest.Address()} gPrm := common.GetPrm{Address: oidtest.Address()}

View file

@ -13,13 +13,13 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestGetRange(t *testing.T, cons Constructor, min, max uint64) { func TestGetRange(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
defer func() { require.NoError(t, s.Close()) }() defer func() { require.NoError(t, s.Close()) }()
objects := prepare(t, 1, s, min, max) objects := prepare(t, 1, s, minSize, maxSize)
t.Run("missing object", func(t *testing.T) { t.Run("missing object", func(t *testing.T) {
gPrm := common.GetRangePrm{Address: oidtest.Address()} gPrm := common.GetRangePrm{Address: oidtest.Address()}

View file

@ -10,13 +10,13 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestIterate(t *testing.T, cons Constructor, min, max uint64) { func TestIterate(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t) s := cons(t)
require.NoError(t, s.Open(mode.ComponentReadWrite)) require.NoError(t, s.Open(mode.ComponentReadWrite))
require.NoError(t, s.Init()) require.NoError(t, s.Init())
defer func() { require.NoError(t, s.Close()) }() defer func() { require.NoError(t, s.Close()) }()
objects := prepare(t, 10, s, min, max) objects := prepare(t, 10, s, minSize, maxSize)
// Delete random object to ensure it is not iterated over. // Delete random object to ensure it is not iterated over.
const delID = 2 const delID = 2

View file

@ -641,8 +641,8 @@ func (c *Client) notaryTxValidationLimit() (uint32, error) {
return 0, fmt.Errorf("can't get current blockchain height: %w", err) return 0, fmt.Errorf("can't get current blockchain height: %w", err)
} }
min := bc + c.notary.txValidTime minTime := bc + c.notary.txValidTime
rounded := (min/c.notary.roundTime + 1) * c.notary.roundTime rounded := (minTime/c.notary.roundTime + 1) * c.notary.roundTime
return rounded, nil return rounded, nil
} }

View file

@ -213,6 +213,7 @@ func (s putStreamMetric) CloseAndRecv(ctx context.Context) (*object.PutResponse,
return res, err return res, err
} }
func (s patchStreamMetric) Send(ctx context.Context, req *object.PatchRequest) error { func (s patchStreamMetric) Send(ctx context.Context, req *object.PatchRequest) error {
s.metrics.AddPayloadSize("Patch", len(req.GetBody().GetPatch().GetChunk())) s.metrics.AddPayloadSize("Patch", len(req.GetBody().GetPatch().GetChunk()))