diff --git a/cephfs/admin/fsadmin_test.go b/cephfs/admin/fsadmin_test.go index dfc1294..517398a 100644 --- a/cephfs/admin/fsadmin_test.go +++ b/cephfs/admin/fsadmin_test.go @@ -4,7 +4,6 @@ package admin import ( "errors" - "fmt" "os" "strconv" "testing" @@ -12,6 +11,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/ceph/go-ceph/internal/commands" ) var ( @@ -53,49 +54,6 @@ func TestServerSentinel(t *testing.T) { } } -// tracingCommander serves two purposes: first, it allows one to trace the -// input and output json when running the tests. It can help with actually -// debugging the tests. Second, it demonstrates the rationale for using an -// interface in FSAdmin. You can layer any sort of debugging, error injection, -// or whatnot between the FSAdmin layer and the RADOS layer. -type tracingCommander struct { - conn RadosCommander -} - -func tracer(c RadosCommander) RadosCommander { - return &tracingCommander{c} -} - -func (t *tracingCommander) MgrCommand(buf [][]byte) ([]byte, string, error) { - fmt.Println("(MGR Command)") - for i := range buf { - fmt.Println("IN:", string(buf[i])) - } - r, s, err := t.conn.MgrCommand(buf) - fmt.Println("OUT(result):", string(r)) - if s != "" { - fmt.Println("OUT(status):", s) - } - if err != nil { - fmt.Println("OUT(error):", err.Error()) - } - return r, s, err -} - -func (t *tracingCommander) MonCommand(buf []byte) ([]byte, string, error) { - fmt.Println("(MON Command)") - fmt.Println("IN:", string(buf)) - r, s, err := t.conn.MonCommand(buf) - fmt.Println("OUT(result):", string(r)) - if s != "" { - fmt.Println("OUT(status):", s) - } - if err != nil { - fmt.Println("OUT(error):", err.Error()) - } - return r, s, err -} - func getFSAdmin(t *testing.T) *FSAdmin { if cachedFSAdmin != nil { return cachedFSAdmin @@ -107,7 +65,7 @@ func getFSAdmin(t *testing.T) *FSAdmin { // optional tracer. c := fsa.conn if debugTrace { - c = tracer(c) + c = commands.NewTraceCommander(c) } cachedFSAdmin = NewFromConn(c) // We sleep briefly before returning in order to ensure we have a mgr map @@ -163,20 +121,20 @@ func TestParseListNames(t *testing.T) { func TestCheckEmptyResponseExpected(t *testing.T) { R := newResponse t.Run("error", func(t *testing.T) { - err := R(nil, "", errors.New("bonk")).noData().End() + err := R(nil, "", errors.New("bonk")).NoData().End() assert.Error(t, err) assert.Equal(t, "bonk", err.Error()) }) t.Run("statusSet", func(t *testing.T) { - err := R(nil, "unexpected!", nil).noData().End() + err := R(nil, "unexpected!", nil).NoData().End() assert.Error(t, err) }) t.Run("someJSON", func(t *testing.T) { - err := R([]byte(`{"trouble": true}`), "", nil).noData().End() + err := R([]byte(`{"trouble": true}`), "", nil).NoData().End() assert.Error(t, err) }) t.Run("ok", func(t *testing.T) { - err := R([]byte{}, "", nil).noData().End() + err := R([]byte{}, "", nil).NoData().End() assert.NoError(t, err) }) }