diff --git a/internal/rand.go b/internal/rand.go new file mode 100644 index 00000000..23ab1a79 --- /dev/null +++ b/internal/rand.go @@ -0,0 +1,12 @@ +package internal + +import ( + "math/rand" + "time" +) + +// RandUint32 returns random uint32 value [0, max). +func RandUint32(max uint32) uint32 { + rand.Seed(time.Now().UnixNano()) + return rand.Uint32() % max +} diff --git a/object/test/generate.go b/object/test/generate.go index 215ff78e..22646f75 100644 --- a/object/test/generate.go +++ b/object/test/generate.go @@ -1,6 +1,7 @@ package objecttest import ( + "github.com/nspcc-dev/neofs-api-go/v2/internal" "github.com/nspcc-dev/neofs-api-go/v2/object" "github.com/nspcc-dev/neofs-api-go/v2/refs" refstest "github.com/nspcc-dev/neofs-api-go/v2/refs/test" @@ -185,7 +186,14 @@ func GenerateGetResponseBody(empty bool) *object.GetResponseBody { m := new(object.GetResponseBody) if !empty { - m.SetObjectPart(GenerateGetObjectPartInit(false)) + switch internal.RandUint32(3) { + case 0: + m.SetObjectPart(GenerateGetObjectPartInit(false)) + case 1: + m.SetObjectPart(GenerateGetObjectPartChunk(false)) + case 2: + m.SetObjectPart(GenerateSplitInfo(false)) + } } return m @@ -232,7 +240,12 @@ func GeneratePutRequestBody(empty bool) *object.PutRequestBody { m := new(object.PutRequestBody) if !empty { - m.SetObjectPart(GeneratePutObjectPartInit(false)) + switch internal.RandUint32(2) { + case 0: + m.SetObjectPart(GeneratePutObjectPartInit(false)) + case 1: + m.SetObjectPart(GeneratePutObjectPartChunk(false)) + } } return m @@ -349,7 +362,14 @@ func GenerateHeadResponseBody(empty bool) *object.HeadResponseBody { m := new(object.HeadResponseBody) if !empty { - m.SetHeaderPart(GenerateHeaderWithSignature(false)) + switch internal.RandUint32(3) { + case 0: + m.SetHeaderPart(GenerateHeaderWithSignature(false)) + case 1: + m.SetHeaderPart(GenerateShortHeader(false)) + case 2: + m.SetHeaderPart(GenerateSplitInfo(false)) + } } return m @@ -504,7 +524,12 @@ func GenerateGetRangeResponseBody(empty bool) *object.GetRangeResponseBody { m := new(object.GetRangeResponseBody) if !empty { - m.SetRangePart(GenerateGetRangePartChunk(false)) + switch internal.RandUint32(2) { + case 0: + m.SetRangePart(GenerateGetRangePartChunk(false)) + case 1: + m.SetRangePart(GenerateSplitInfo(false)) + } } return m diff --git a/session/test/generate.go b/session/test/generate.go index be7cd5fc..e040b817 100644 --- a/session/test/generate.go +++ b/session/test/generate.go @@ -2,6 +2,7 @@ package sessiontest import ( acltest "github.com/nspcc-dev/neofs-api-go/v2/acl/test" + "github.com/nspcc-dev/neofs-api-go/v2/internal" refstest "github.com/nspcc-dev/neofs-api-go/v2/refs/test" "github.com/nspcc-dev/neofs-api-go/v2/session" statustest "github.com/nspcc-dev/neofs-api-go/v2/status/test" @@ -165,7 +166,13 @@ func GenerateSessionTokenBody(empty bool) *session.TokenBody { m.SetSessionKey([]byte{2}) m.SetOwnerID(refstest.GenerateOwnerID(false)) m.SetLifetime(GenerateTokenLifetime(false)) - m.SetContext(GenerateObjectSessionContext(false)) + + switch internal.RandUint32(2) { + case 0: + m.SetContext(GenerateObjectSessionContext(false)) + case 1: + m.SetContext(GenerateContainerSessionContext(false)) + } } return m