go-ceph/rbd/rbd_nautilus_test.go
Sven Anderson 6c944e8b65 rbd: make RBDError type unexported
In order to avoid external dependencies on implementation details,
this change replaces RBDError with the unexported rbdError. In case
some application really needs access to the integer value, it can use
the pattern
  var errno interface{ Errno() int }
  if errors.As(err, errno) { ... errno.Errno() ... }

Signed-off-by: Sven Anderson <sven@redhat.com>
2020-07-17 13:47:32 -04:00

80 lines
1.8 KiB
Go

// +build !luminous,!mimic
package rbd
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestImagePropertiesNautilus(t *testing.T) {
conn := radosConnect(t)
defer conn.Shutdown()
poolname := GetUUID()
err := conn.MakePool(poolname)
require.NoError(t, err)
defer func() { assert.NoError(t, conn.DeletePool(poolname)) }()
ioctx, err := conn.OpenIOContext(poolname)
require.NoError(t, err)
defer ioctx.Destroy()
name := GetUUID()
err = quickCreate(ioctx, name, testImageSize, testImageOrder)
require.NoError(t, err)
img, err := OpenImage(ioctx, name, NoSnapshot)
require.NoError(t, err)
defer func() { assert.NoError(t, img.Remove()) }()
defer func() { assert.NoError(t, img.Close()) }()
_, err = img.GetCreateTimestamp()
assert.NoError(t, err)
_, err = img.GetAccessTimestamp()
assert.NoError(t, err)
_, err = img.GetModifyTimestamp()
assert.NoError(t, err)
}
func TestClosedImageNautilus(t *testing.T) {
conn := radosConnect(t)
defer conn.Shutdown()
poolname := GetUUID()
err := conn.MakePool(poolname)
assert.NoError(t, err)
defer func() { assert.NoError(t, conn.DeletePool(poolname)) }()
ioctx, err := conn.OpenIOContext(poolname)
require.NoError(t, err)
defer ioctx.Destroy()
name := GetUUID()
err = quickCreate(ioctx, name, testImageSize, testImageOrder)
assert.NoError(t, err)
image, err := OpenImage(ioctx, name, NoSnapshot)
assert.NoError(t, err)
defer func() { assert.NoError(t, image.Remove()) }()
// close the image
err = image.Close()
assert.NoError(t, err)
// functions should now fail with an rbdError
_, err = image.GetCreateTimestamp()
assert.Error(t, err)
_, err = image.GetAccessTimestamp()
assert.Error(t, err)
_, err = image.GetModifyTimestamp()
assert.Error(t, err)
}