mirror of https://github.com/ceph/go-ceph
42 lines
942 B
Go
42 lines
942 B
Go
|
package cephfs
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestMdsCommand(t *testing.T) {
|
||
|
mount := fsConnect(t)
|
||
|
defer fsDisconnect(t, mount)
|
||
|
|
||
|
cmd := []byte(`{"prefix": "client ls"}`)
|
||
|
buf, info, err := mount.MdsCommand(
|
||
|
testMdsName,
|
||
|
[][]byte{cmd})
|
||
|
assert.NoError(t, err)
|
||
|
assert.NotEqual(t, "", string(buf))
|
||
|
assert.Equal(t, "", string(info))
|
||
|
assert.Contains(t, string(buf), "ceph_version")
|
||
|
// response should also be valid json
|
||
|
var j []interface{}
|
||
|
err = json.Unmarshal(buf, &j)
|
||
|
assert.NoError(t, err)
|
||
|
assert.GreaterOrEqual(t, len(j), 1)
|
||
|
}
|
||
|
|
||
|
func TestMdsCommandError(t *testing.T) {
|
||
|
mount := fsConnect(t)
|
||
|
defer fsDisconnect(t, mount)
|
||
|
|
||
|
cmd := []byte("iAMinValId~~~")
|
||
|
buf, info, err := mount.MdsCommand(
|
||
|
testMdsName,
|
||
|
[][]byte{cmd})
|
||
|
assert.Error(t, err)
|
||
|
assert.Equal(t, "", string(buf))
|
||
|
assert.NotEqual(t, "", string(info))
|
||
|
assert.Contains(t, string(info), "unparseable JSON")
|
||
|
}
|