[#85] get-service: Fix corrupted chain logic

Should return an error in case of a broken LOB reference chain.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2023-03-09 09:54:12 +03:00
parent 2886b1581b
commit 07de839f18
3 changed files with 19 additions and 15 deletions

View file

@ -1094,8 +1094,8 @@ func TestGetRemoteSmall(t *testing.T) {
p.WithAddress(addr)
err := svc.Get(ctx, p)
require.NoError(t, err) //TODO fix me
//require.Equal(t, err.Error(), "wrong child header")
require.Error(t, err)
require.Equal(t, err.Error(), "wrong child header")
w = NewSimpleObjectWriter()
payloadSz := srcObj.PayloadSize()
@ -1107,9 +1107,8 @@ func TestGetRemoteSmall(t *testing.T) {
rngPrm.WithAddress(addr)
err = svc.GetRange(ctx, rngPrm)
require.ErrorAs(t, err, new(*apistatus.ObjectOutOfRange)) //TODO fix me
//require.Equal(t, err.Error(), "wrong child header")
require.Error(t, err)
require.Equal(t, err.Error(), "wrong child header")
})
t.Run("linked object with parent udefined", func(t *testing.T) {
@ -1180,8 +1179,8 @@ func TestGetRemoteSmall(t *testing.T) {
p.WithAddress(addr)
err := svc.Get(ctx, p)
require.NoError(t, err) //TODO fix me
//require.Equal(t, err.Error(), "received child with empty parent")
require.Error(t, err)
require.Equal(t, err.Error(), "received child with empty parent")
w = NewSimpleObjectWriter()
payloadSz := srcObj.PayloadSize()
@ -1193,8 +1192,8 @@ func TestGetRemoteSmall(t *testing.T) {
rngPrm.WithAddress(addr)
err = svc.GetRange(ctx, rngPrm)
require.NoError(t, err) //TODO fix me
//require.Equal(t, err.Error(), "received child with empty parent")
require.Error(t, err)
require.Equal(t, err.Error(), "received child with empty parent")
})
t.Run("out of range", func(t *testing.T) {
@ -1465,9 +1464,8 @@ func TestGetRemoteSmall(t *testing.T) {
p.WithAddress(addr)
err := svc.Get(ctx, p)
require.NoError(t, err) //TODO fix me, it must be an error, corrupted chain
//require.Equal(t, err.Error(), "parent address in child object differs")
require.Equal(t, srcObj, w.Object())
require.Error(t, err)
require.Equal(t, err.Error(), "parent address in child object differs")
w = NewSimpleObjectWriter()
payloadSz := srcObj.PayloadSize()
@ -1479,9 +1477,8 @@ func TestGetRemoteSmall(t *testing.T) {
rngPrm.WithAddress(addr)
err = svc.GetRange(ctx, rngPrm)
require.NoError(t, err) //TODO fix me, it must be an error, corrupted chain
//require.Equal(t, err.Error(), "parent address in child object differs")
require.Equal(t, payload[off:off+ln], w.Object().Payload())
require.Error(t, err)
require.Equal(t, err.Error(), "parent address in child object differs")
})
t.Run("OK", func(t *testing.T) {