mirror of https://github.com/ceph/go-ceph
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package cephfs
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestUserPerm(t *testing.T) {
|
|
t.Run("newAndDestroy", func(t *testing.T) {
|
|
uperm := NewUserPerm(0, 0, nil)
|
|
assert.NotNil(t, uperm)
|
|
assert.Equal(t, 0, len(uperm.gidList))
|
|
assert.True(t, uperm.managed)
|
|
|
|
// Destroy should be idempotent in our go library
|
|
uperm.Destroy()
|
|
uperm.Destroy()
|
|
})
|
|
t.Run("notManagedDestroy", func(t *testing.T) {
|
|
uperm := &UserPerm{}
|
|
assert.False(t, uperm.managed)
|
|
// Calling destroy shouldn't do much but is safe to call (many times)
|
|
uperm.Destroy()
|
|
uperm.Destroy()
|
|
})
|
|
t.Run("tryForceGc", func(_ *testing.T) {
|
|
func() {
|
|
uperm := NewUserPerm(0, 0, nil)
|
|
_ = uperm
|
|
}()
|
|
runtime.GC()
|
|
})
|
|
t.Run("gidList", func(t *testing.T) {
|
|
uperm := NewUserPerm(1000, 1000, []int{1028, 1192, 2112})
|
|
defer uperm.Destroy()
|
|
assert.Equal(t, 3, len(uperm.gidList))
|
|
assert.EqualValues(t, 1028, uperm.gidList[0])
|
|
assert.EqualValues(t, 1192, uperm.gidList[1])
|
|
assert.EqualValues(t, 2112, uperm.gidList[2])
|
|
})
|
|
}
|