From f521d58a96b6c149a77da1b96ab66885ed3e3288 Mon Sep 17 00:00:00 2001 From: sulakshm Date: Wed, 28 Aug 2024 07:01:21 +0000 Subject: [PATCH] fix ut for shared block Signed-off-by: sulakshm --- csi/controller_test.go | 57 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/csi/controller_test.go b/csi/controller_test.go index f7152a69b..ae0832752 100644 --- a/csi/controller_test.go +++ b/csi/controller_test.go @@ -2547,7 +2547,7 @@ func TestControllerCreateVolumeBlock(t *testing.T) { assert.NotEqual(t, "true", volumeInfo.GetVolumeContext()[api.SpecSharedv4]) } -func TestControllerCreateVolumeBlockSharedInvalid(t *testing.T) { +func TestControllerCreateVolumeBlockSharedValid(t *testing.T) { // Create server and client connection s := newTestServer(t) defer s.Stop() @@ -2568,8 +2568,6 @@ func TestControllerCreateVolumeBlockSharedInvalid(t *testing.T) { AccessType: &csi.VolumeCapability_Block{ Block: &csi.VolumeCapability_BlockVolume{}, }, - }, - { AccessMode: &csi.VolumeCapability_AccessMode{ Mode: csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER, }, @@ -2579,13 +2577,60 @@ func TestControllerCreateVolumeBlockSharedInvalid(t *testing.T) { RequiredBytes: size, }, Secrets: secretsMap, + Parameters: map[string]string{ + api.SpecSharedBlock: "true", + }, } // Setup mock functions - _, err := c.CreateVolume(context.Background(), req) - assert.Error(t, err) - assert.Contains(t, err.Error(), "Shared raw block volumes are not supported") + id := "myid" + gomock.InOrder( + s.MockDriver(). + EXPECT(). + Inspect([]string{name}). + Return(nil, fmt.Errorf("not found")). + Times(1), + s.MockDriver(). + EXPECT(). + Enumerate(&api.VolumeLocator{Name: name}, nil). + Return(nil, fmt.Errorf("not found")). + Times(1), + + s.MockDriver(). + EXPECT(). + Create(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(id, nil). + Times(1), + + s.MockDriver(). + EXPECT(). + Enumerate(&api.VolumeLocator{VolumeIds: []string{id}}, nil). + Return([]*api.Volume{ + { + Id: id, + Locator: &api.VolumeLocator{ + Name: name, + VolumeLabels: secretsMap, + }, + Spec: &api.VolumeSpec{ + Size: uint64(size), + SharedBlock: true, + }, + }, + }, nil). + Times(1), + ) + + r, err := c.CreateVolume(context.Background(), req) + assert.Nil(t, err) + assert.NotNil(t, r) + volumeInfo := r.GetVolume() + + assert.Equal(t, id, volumeInfo.GetVolumeId()) + assert.Equal(t, size, volumeInfo.GetCapacityBytes()) + assert.Equal(t, "true", volumeInfo.GetVolumeContext()[api.SpecSharedBlock]) + assert.NotEqual(t, "true", volumeInfo.GetVolumeContext()[api.SpecSharedv4]) } func TestControllerCreateVolumeWithoutTopology(t *testing.T) {