mirror of
https://github.com/ceph/go-ceph
synced 2025-01-30 10:06:32 +00:00
6c944e8b65
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>
80 lines
1.8 KiB
Go
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)
|
|
}
|