From 75d94db5bbe6087321714621b4873b1ba4d7738e Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 25 Jan 2023 11:26:37 +0100 Subject: [PATCH] Change debug api for tree --- .../mock_objecttree/mock_objecttree.go | 14 +++++------ .../object/tree/objecttree/objecttree.go | 6 ++--- .../object/tree/objecttree/objecttreedebug.go | 25 +++++++++++++++++++ .../{treefactory.go => objecttreefactory.go} | 0 ...reevalidator.go => objecttreevalidator.go} | 0 .../synctree/mock_synctree/mock_synctree.go | 14 +++++------ 6 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 commonspace/object/tree/objecttree/objecttreedebug.go rename commonspace/object/tree/objecttree/{treefactory.go => objecttreefactory.go} (100%) rename commonspace/object/tree/objecttree/{treevalidator.go => objecttreevalidator.go} (100%) diff --git a/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go b/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go index 1198794c..c8dc3841 100644 --- a/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go +++ b/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go @@ -96,19 +96,19 @@ func (mr *MockObjectTreeMockRecorder) Close() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockObjectTree)(nil).Close)) } -// DebugDump mocks base method. -func (m *MockObjectTree) DebugDump(arg0 objecttree.DescriptionParser) (string, error) { +// Debug mocks base method. +func (m *MockObjectTree) Debug(arg0 objecttree.DescriptionParser) (objecttree.DebugInfo, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DebugDump", arg0) - ret0, _ := ret[0].(string) + ret := m.ctrl.Call(m, "Debug", arg0) + ret0, _ := ret[0].(objecttree.DebugInfo) ret1, _ := ret[1].(error) return ret0, ret1 } -// DebugDump indicates an expected call of DebugDump. -func (mr *MockObjectTreeMockRecorder) DebugDump(arg0 interface{}) *gomock.Call { +// Debug indicates an expected call of Debug. +func (mr *MockObjectTreeMockRecorder) Debug(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DebugDump", reflect.TypeOf((*MockObjectTree)(nil).DebugDump), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debug", reflect.TypeOf((*MockObjectTree)(nil).Debug), arg0) } // Delete mocks base method. diff --git a/commonspace/object/tree/objecttree/objecttree.go b/commonspace/object/tree/objecttree/objecttree.go index ee513be1..bc806522 100644 --- a/commonspace/object/tree/objecttree/objecttree.go +++ b/commonspace/object/tree/objecttree/objecttree.go @@ -55,7 +55,7 @@ type ReadableObjectTree interface { HasChanges(...string) bool GetChange(string) (*Change, error) - DebugDump(parser DescriptionParser) (string, error) + Debug(parser DescriptionParser) (DebugInfo, error) IterateRoot(convert ChangeConvertFunc, iterate ChangeIterateFunc) error IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error } @@ -609,6 +609,6 @@ func (ot *objectTree) validateTree(newChanges []*Change) error { return ot.validator.ValidateNewChanges(ot.tree, ot.aclList, newChanges) } -func (ot *objectTree) DebugDump(parser DescriptionParser) (string, error) { - return ot.tree.Graph(parser) +func (ot *objectTree) Debug(parser DescriptionParser) (DebugInfo, error) { + return objectTreeDebug{}.debugInfo(ot, parser) } diff --git a/commonspace/object/tree/objecttree/objecttreedebug.go b/commonspace/object/tree/objecttree/objecttreedebug.go new file mode 100644 index 00000000..ea59c2e8 --- /dev/null +++ b/commonspace/object/tree/objecttree/objecttreedebug.go @@ -0,0 +1,25 @@ +package objecttree + +type objectTreeDebug struct { +} + +type DebugInfo struct { + TreeLen int + TreeString string + Graphviz string + Heads []string + SnapshotPath []string +} + +func (o objectTreeDebug) debugInfo(ot *objectTree, parser DescriptionParser) (di DebugInfo, err error) { + di = DebugInfo{} + di.Graphviz, err = ot.tree.Graph(parser) + if err != nil { + return + } + di.TreeString = ot.tree.String() + di.TreeLen = ot.tree.Len() + di.Heads = ot.Heads() + di.SnapshotPath = ot.SnapshotPath() + return +} diff --git a/commonspace/object/tree/objecttree/treefactory.go b/commonspace/object/tree/objecttree/objecttreefactory.go similarity index 100% rename from commonspace/object/tree/objecttree/treefactory.go rename to commonspace/object/tree/objecttree/objecttreefactory.go diff --git a/commonspace/object/tree/objecttree/treevalidator.go b/commonspace/object/tree/objecttree/objecttreevalidator.go similarity index 100% rename from commonspace/object/tree/objecttree/treevalidator.go rename to commonspace/object/tree/objecttree/objecttreevalidator.go diff --git a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go index c5b05925..73335d45 100644 --- a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go +++ b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go @@ -221,19 +221,19 @@ func (mr *MockSyncTreeMockRecorder) Close() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockSyncTree)(nil).Close)) } -// DebugDump mocks base method. -func (m *MockSyncTree) DebugDump(arg0 objecttree.DescriptionParser) (string, error) { +// Debug mocks base method. +func (m *MockSyncTree) Debug(arg0 objecttree.DescriptionParser) (objecttree.DebugInfo, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DebugDump", arg0) - ret0, _ := ret[0].(string) + ret := m.ctrl.Call(m, "Debug", arg0) + ret0, _ := ret[0].(objecttree.DebugInfo) ret1, _ := ret[1].(error) return ret0, ret1 } -// DebugDump indicates an expected call of DebugDump. -func (mr *MockSyncTreeMockRecorder) DebugDump(arg0 interface{}) *gomock.Call { +// Debug indicates an expected call of Debug. +func (mr *MockSyncTreeMockRecorder) Debug(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DebugDump", reflect.TypeOf((*MockSyncTree)(nil).DebugDump), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debug", reflect.TypeOf((*MockSyncTree)(nil).Debug), arg0) } // Delete mocks base method.