cubefs

Форк
0
/
basic_test.go 
66 строк · 1.7 Кб
1
// Copyright 2022 The CubeFS Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12
// implied. See the License for the specific language governing
13
// permissions and limitations under the License.
14

15
package proto_test
16

17
import (
18
	"testing"
19

20
	"github.com/stretchr/testify/require"
21

22
	"github.com/cubefs/cubefs/blobstore/common/proto"
23
)
24

25
func TestProtoDiskID(t *testing.T) {
26
	id := proto.DiskID(9)
27
	bytes := []byte{0x00, 0x00, 0x00, 0x09}
28
	require.Equal(t, uint32(9), uint32(id))
29
	require.Equal(t, bytes, id.Encode())
30
	require.Equal(t, "9", id.ToString())
31

32
	var dec proto.DiskID
33
	require.Equal(t, id, dec.Decode(bytes))
34
	require.Equal(t, id, dec)
35
}
36

37
func TestProtoVID(t *testing.T) {
38
	id := proto.Vid(123)
39
	require.Equal(t, "123", id.ToString())
40
}
41

42
func TestProtoClusterID(t *testing.T) {
43
	id := proto.ClusterID(10)
44
	require.Equal(t, "10", id.ToString())
45
}
46

47
func TestProtoToken(t *testing.T) {
48
	host := "127.0.0.1:80"
49
	vid := proto.Vid(123)
50
	token := "127.0.0.1:80;123"
51
	require.Equal(t, token, proto.EncodeToken(host, vid))
52
	{
53
		newHost, newVid, err := proto.DecodeToken(token)
54
		require.NoError(t, err)
55
		require.Equal(t, host, newHost)
56
		require.Equal(t, vid, newVid)
57
	}
58
	{
59
		_, _, err := proto.DecodeToken(host)
60
		require.Error(t, err)
61
	}
62
	{
63
		_, _, err := proto.DecodeToken(token + ";")
64
		require.Error(t, err)
65
	}
66
}
67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.