mirror of
https://github.com/ceph/go-ceph
synced 2024-12-24 07:03:00 +00:00
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(t *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])
|
||
|
})
|
||
|
}
|