Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/git/trace2hooks/trace_helper_test.go')
-rw-r--r--internal/git/trace2hooks/trace_helper_test.go101
1 files changed, 101 insertions, 0 deletions
diff --git a/internal/git/trace2hooks/trace_helper_test.go b/internal/git/trace2hooks/trace_helper_test.go
new file mode 100644
index 000000000..267711990
--- /dev/null
+++ b/internal/git/trace2hooks/trace_helper_test.go
@@ -0,0 +1,101 @@
+package trace2hooks
+
+import (
+ "time"
+
+ "gitlab.com/gitlab-org/gitaly/v16/internal/git/trace2"
+)
+
+func createExampleTrace(startTime time.Time) *trace2.Trace {
+ // 0s 1s 2s 3s 4s 5s 6s 7s
+ // root |---->|---->|---->|---->|---->|---->|---->|
+ // version |---->| | | | | | |
+ // start | |---->| | | | | |
+ // def_repo | | |---->| | | | |
+ // index:do_read_index | | | |---->|---->|---->| |
+ // cache_tree:read | | | |---->| | | |
+ // data:index:read/version | | | | |---->| | |
+ // data:index:read/cache_nr| | | | | |---->| |
+ // submodule:parallel/fetch| | | | | | |---->|
+ return connectChildren(&trace2.Trace{
+ Thread: "main",
+ Name: "root",
+ StartTime: startTime,
+ FinishTime: startTime.Add(7 * time.Second),
+ Depth: 0,
+ Children: []*trace2.Trace{
+ {
+ Thread: "main",
+ Name: "version",
+ StartTime: startTime,
+ FinishTime: startTime.Add(1 * time.Second), Metadata: map[string]string{"exe": "2.42.0"},
+ Depth: 1,
+ },
+ {
+ Thread: "main",
+ Name: "start",
+ StartTime: startTime.Add(1 * time.Second),
+ FinishTime: startTime.Add(2 * time.Second),
+ Metadata: map[string]string{"argv": "git fetch origin master"},
+ Depth: 1,
+ },
+ {
+ Thread: "main",
+ Name: "def_repo",
+ StartTime: startTime.Add(2 * time.Second),
+ FinishTime: startTime.Add(3 * time.Second),
+ Metadata: map[string]string{"worktree": "/Users/userx123/Documents/gitlab-development-kit"},
+ Depth: 1,
+ },
+ connectChildren(&trace2.Trace{
+ Thread: "main",
+ Name: "index:do_read_index",
+ StartTime: startTime.Add(3 * time.Second),
+ FinishTime: startTime.Add(6 * time.Second),
+ Depth: 1,
+ Children: []*trace2.Trace{
+ {
+ Thread: "main",
+ Name: "cache_tree:read",
+ ChildID: "0",
+ StartTime: startTime.Add(3 * time.Second),
+ FinishTime: startTime.Add(4 * time.Second),
+ Depth: 2,
+ },
+ {
+ Thread: "main",
+ ChildID: "0",
+ Name: "data:index:read/version",
+ StartTime: startTime.Add(4 * time.Second),
+ FinishTime: startTime.Add(5 * time.Second),
+ Metadata: map[string]string{"data": "2"},
+ Depth: 2,
+ },
+ {
+ Thread: "main",
+ ChildID: "0",
+ Name: "data:index:read/cache_nr",
+ StartTime: startTime.Add(5 * time.Second),
+ FinishTime: startTime.Add(6 * time.Second),
+ Metadata: map[string]string{"data": "1500"},
+ Depth: 2,
+ },
+ },
+ }),
+ {
+ Thread: "main",
+ Name: "submodule:parallel/fetch",
+ StartTime: startTime.Add(6 * time.Second),
+ FinishTime: startTime.Add(7 * time.Second),
+ Depth: 1,
+ },
+ },
+ })
+}
+
+func connectChildren(trace *trace2.Trace) *trace2.Trace {
+ for _, t := range trace.Children {
+ t.Parent = trace
+ }
+ return trace
+}