mirror of
https://github.com/go-gitea/gitea.git
synced 2024-09-01 14:56:30 +00:00
fix: use PutVarint instead of AppendVarint
This commit is contained in:
parent
ef4b3673dd
commit
ae018b6b48
@ -204,7 +204,7 @@ func (task *Task) GenerateToken() error {
|
|||||||
|
|
||||||
type LogIndexes []int64
|
type LogIndexes []int64
|
||||||
|
|
||||||
func (i *LogIndexes) FromDB(b []byte) error {
|
func (indexes *LogIndexes) FromDB(b []byte) error {
|
||||||
reader := bytes.NewReader(b)
|
reader := bytes.NewReader(b)
|
||||||
for {
|
for {
|
||||||
v, err := binary.ReadVarint(reader)
|
v, err := binary.ReadVarint(reader)
|
||||||
@ -214,16 +214,17 @@ func (i *LogIndexes) FromDB(b []byte) error {
|
|||||||
}
|
}
|
||||||
return fmt.Errorf("binary ReadVarint: %w", err)
|
return fmt.Errorf("binary ReadVarint: %w", err)
|
||||||
}
|
}
|
||||||
*i = append(*i, v)
|
*indexes = append(*indexes, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *LogIndexes) ToDB() ([]byte, error) {
|
func (indexes *LogIndexes) ToDB() ([]byte, error) {
|
||||||
var buf []byte
|
buf, i := make([]byte, binary.MaxVarintLen64*len(*indexes)), 0
|
||||||
for _, v := range *i {
|
for _, v := range *indexes {
|
||||||
buf = binary.AppendVarint(buf, v)
|
n := binary.PutVarint(buf[i:], v)
|
||||||
|
i += n
|
||||||
}
|
}
|
||||||
return buf, nil
|
return buf[:i], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetTaskByID(ctx context.Context, id int64) (*Task, error) {
|
func GetTaskByID(ctx context.Context, id int64) (*Task, error) {
|
||||||
|
34
models/bots/task_test.go
Normal file
34
models/bots/task_test.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package bots
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLogIndexes_ToDB(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
indexes LogIndexes
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
indexes: []int64{1, 2, 0, -1, -2, math.MaxInt64, math.MinInt64},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run("", func(t *testing.T) {
|
||||||
|
got, err := tt.indexes.ToDB()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
indexes := LogIndexes{}
|
||||||
|
require.NoError(t, indexes.FromDB(got))
|
||||||
|
|
||||||
|
assert.Equal(t, tt.indexes, indexes)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user