MCPcopy
hub / github.com/pingcap/tidb / TestCreateStorage

Function TestCreateStorage

br/pkg/storage/parse_test.go:16–183  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

14)
15
16func TestCreateStorage(t *testing.T) {
17 _, err := ParseBackend("1invalid:", nil)
18 require.Error(t, err)
19 require.Regexp(t, "parse (.*)1invalid:(.*): first path segment in URL cannot contain colon", err.Error())
20
21 _, err = ParseBackend("net:storage", nil)
22 require.Error(t, err)
23 require.Regexp(t, "storage net not support yet.*", err.Error())
24
25 s, err := ParseBackend("local:///tmp/storage", nil)
26 require.NoError(t, err)
27 require.Equal(t, "/tmp/storage", s.GetLocal().GetPath())
28
29 s, err = ParseBackend("file:///tmp/storage", nil)
30 require.NoError(t, err)
31 require.Equal(t, "/tmp/storage", s.GetLocal().GetPath())
32
33 s, err = ParseBackend("noop://", nil)
34 require.NoError(t, err)
35 require.NotNil(t, s.GetNoop())
36
37 s, err = ParseBackend("hdfs://127.0.0.1:1231/backup", nil)
38 require.NoError(t, err)
39 require.Equal(t, "hdfs://127.0.0.1:1231/backup", s.GetHdfs().GetRemote())
40
41 _, err = ParseBackend("s3:///bucket/more/prefix/", &BackendOptions{})
42 require.Error(t, err)
43 require.Regexp(t, `please specify the bucket for s3 in s3:///bucket/more/prefix/.*`, err.Error())
44
45 s3opt := &BackendOptions{
46 S3: S3BackendOptions{
47 Endpoint: "https://s3.example.com/",
48 },
49 }
50 s, err = ParseBackend("s3://bucket2/prefix/", s3opt)
51 require.NoError(t, err)
52 s3 := s.GetS3()
53 require.NotNil(t, s3)
54 require.Equal(t, "bucket2", s3.Bucket)
55 require.Equal(t, "prefix", s3.Prefix)
56 require.Equal(t, "https://s3.example.com", s3.Endpoint)
57 require.False(t, s3.ForcePathStyle)
58
59 s, err = ParseBackend("ks3://bucket2/prefix/", s3opt)
60 require.NoError(t, err)
61 s3 = s.GetS3()
62 require.NotNil(t, s3)
63 require.Equal(t, "bucket2", s3.Bucket)
64 require.Equal(t, "prefix", s3.Prefix)
65 require.Equal(t, "https://s3.example.com", s3.Endpoint)
66 require.Equal(t, ks3SDKProvider, s3.Provider)
67 require.False(t, s3.ForcePathStyle)
68
69 // nolint:lll
70 s, err = ParseBackend(`s3://bucket3/prefix/path?endpoint=https://127.0.0.1:9000&force_path_style=0&SSE=aws:kms&sse-kms-key-id=TestKey&xyz=abc`, nil)
71 require.NoError(t, err)
72 s3 = s.GetS3()
73 require.NotNil(t, s3)

Callers

nothing calls this directly

Calls 7

ParseBackendFunction · 0.85
NotNilMethod · 0.80
ErrorMethod · 0.65
EqualMethod · 0.65
GetLocalMethod · 0.65
JoinMethod · 0.65
WriteFileMethod · 0.65

Tested by

no test coverage detected