diff options
author | Josip Sokcevic <sokcevic@google.com> | 2024-11-22 00:02:40 +0000 |
---|---|---|
committer | LUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2024-11-22 18:39:41 +0000 |
commit | fafd1ec23e8001dc7bdf87f2aa1f59051e33224d (patch) | |
tree | 4fb04d40f9f0c389cf7574228f7390653698df78 | |
parent | b1613d741e47d4f2a1d4c184daec73c110425385 (diff) | |
download | git-repo-fafd1ec23e8001dc7bdf87f2aa1f59051e33224d.tar.gz |
Fix event log command event hierarchy.
command should be cmd_name, to match what git is emitting. This also
fixes arguments, so that only relevant arguments are passed instead
of the entire sys.args, which will contain wrapper information
Change-Id: Id436accfff511292ec2c56798fffb2306dda38fc
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/443741
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Tested-by: Josip Sokcevic <sokcevic@google.com>
-rw-r--r-- | git_trace2_event_log_base.py | 10 | ||||
-rwxr-xr-x | main.py | 2 | ||||
-rw-r--r-- | tests/test_git_trace2_event_log.py | 22 |
3 files changed, 16 insertions, 18 deletions
diff --git a/git_trace2_event_log_base.py b/git_trace2_event_log_base.py index 2f1aac76..56db7a8f 100644 --- a/git_trace2_event_log_base.py +++ b/git_trace2_event_log_base.py | |||
@@ -130,10 +130,10 @@ class BaseEventLog: | |||
130 | "time": datetime.datetime.now(datetime.timezone.utc).isoformat(), | 130 | "time": datetime.datetime.now(datetime.timezone.utc).isoformat(), |
131 | } | 131 | } |
132 | 132 | ||
133 | def StartEvent(self): | 133 | def StartEvent(self, argv): |
134 | """Append a 'start' event to the current log.""" | 134 | """Append a 'start' event to the current log.""" |
135 | start_event = self._CreateEventDict("start") | 135 | start_event = self._CreateEventDict("start") |
136 | start_event["argv"] = sys.argv | 136 | start_event["argv"] = argv |
137 | self._log.append(start_event) | 137 | self._log.append(start_event) |
138 | 138 | ||
139 | def ExitEvent(self, result): | 139 | def ExitEvent(self, result): |
@@ -159,9 +159,11 @@ class BaseEventLog: | |||
159 | name: Name of the primary command (ex: repo, git) | 159 | name: Name of the primary command (ex: repo, git) |
160 | subcommands: List of the sub-commands (ex: version, init, sync) | 160 | subcommands: List of the sub-commands (ex: version, init, sync) |
161 | """ | 161 | """ |
162 | command_event = self._CreateEventDict("command") | 162 | command_event = self._CreateEventDict("cmd_name") |
163 | name = f"{name}-" | ||
164 | name += "-".join(subcommands) | ||
163 | command_event["name"] = name | 165 | command_event["name"] = name |
164 | command_event["subcommands"] = subcommands | 166 | command_event["hierarchy"] = name |
165 | self._log.append(command_event) | 167 | self._log.append(command_event) |
166 | 168 | ||
167 | def LogConfigEvents(self, config, event_dict_name): | 169 | def LogConfigEvents(self, config, event_dict_name): |
@@ -357,7 +357,7 @@ class _Repo: | |||
357 | start = time.time() | 357 | start = time.time() |
358 | cmd_event = cmd.event_log.Add(name, event_log.TASK_COMMAND, start) | 358 | cmd_event = cmd.event_log.Add(name, event_log.TASK_COMMAND, start) |
359 | cmd.event_log.SetParent(cmd_event) | 359 | cmd.event_log.SetParent(cmd_event) |
360 | git_trace2_event_log.StartEvent() | 360 | git_trace2_event_log.StartEvent(["repo", name] + argv) |
361 | git_trace2_event_log.CommandEvent(name="repo", subcommands=[name]) | 361 | git_trace2_event_log.CommandEvent(name="repo", subcommands=[name]) |
362 | 362 | ||
363 | def execute_command_helper(): | 363 | def execute_command_helper(): |
diff --git a/tests/test_git_trace2_event_log.py b/tests/test_git_trace2_event_log.py index 4658a793..d3214887 100644 --- a/tests/test_git_trace2_event_log.py +++ b/tests/test_git_trace2_event_log.py | |||
@@ -150,7 +150,7 @@ class EventLogTestCase(unittest.TestCase): | |||
150 | <version event> | 150 | <version event> |
151 | <start event> | 151 | <start event> |
152 | """ | 152 | """ |
153 | self._event_log_module.StartEvent() | 153 | self._event_log_module.StartEvent([]) |
154 | with tempfile.TemporaryDirectory(prefix="event_log_tests") as tempdir: | 154 | with tempfile.TemporaryDirectory(prefix="event_log_tests") as tempdir: |
155 | log_path = self._event_log_module.Write(path=tempdir) | 155 | log_path = self._event_log_module.Write(path=tempdir) |
156 | self._log_data = self.readLog(log_path) | 156 | self._log_data = self.readLog(log_path) |
@@ -213,10 +213,8 @@ class EventLogTestCase(unittest.TestCase): | |||
213 | <version event> | 213 | <version event> |
214 | <command event> | 214 | <command event> |
215 | """ | 215 | """ |
216 | name = "repo" | ||
217 | subcommands = ["init" "this"] | ||
218 | self._event_log_module.CommandEvent( | 216 | self._event_log_module.CommandEvent( |
219 | name="repo", subcommands=subcommands | 217 | name="repo", subcommands=["init", "this"] |
220 | ) | 218 | ) |
221 | with tempfile.TemporaryDirectory(prefix="event_log_tests") as tempdir: | 219 | with tempfile.TemporaryDirectory(prefix="event_log_tests") as tempdir: |
222 | log_path = self._event_log_module.Write(path=tempdir) | 220 | log_path = self._event_log_module.Write(path=tempdir) |
@@ -225,12 +223,10 @@ class EventLogTestCase(unittest.TestCase): | |||
225 | self.assertEqual(len(self._log_data), 2) | 223 | self.assertEqual(len(self._log_data), 2) |
226 | command_event = self._log_data[1] | 224 | command_event = self._log_data[1] |
227 | self.verifyCommonKeys(self._log_data[0], expected_event_name="version") | 225 | self.verifyCommonKeys(self._log_data[0], expected_event_name="version") |
228 | self.verifyCommonKeys(command_event, expected_event_name="command") | 226 | self.verifyCommonKeys(command_event, expected_event_name="cmd_name") |
229 | # Check for 'command' event specific fields. | 227 | # Check for 'command' event specific fields. |
230 | self.assertIn("name", command_event) | 228 | self.assertIn("name", command_event) |
231 | self.assertIn("subcommands", command_event) | 229 | self.assertEqual(command_event["name"], "repo-init-this") |
232 | self.assertEqual(command_event["name"], name) | ||
233 | self.assertEqual(command_event["subcommands"], subcommands) | ||
234 | 230 | ||
235 | def test_def_params_event_repo_config(self): | 231 | def test_def_params_event_repo_config(self): |
236 | """Test 'def_params' event data outputs only repo config keys. | 232 | """Test 'def_params' event data outputs only repo config keys. |
@@ -382,17 +378,17 @@ class EventLogTestCase(unittest.TestCase): | |||
382 | socket_path = os.path.join(tempdir, "server.sock") | 378 | socket_path = os.path.join(tempdir, "server.sock") |
383 | server_ready = threading.Condition() | 379 | server_ready = threading.Condition() |
384 | # Start "server" listening on Unix domain socket at socket_path. | 380 | # Start "server" listening on Unix domain socket at socket_path. |
381 | server_thread = threading.Thread( | ||
382 | target=serverLoggingThread, | ||
383 | args=(socket_path, server_ready, received_traces), | ||
384 | ) | ||
385 | try: | 385 | try: |
386 | server_thread = threading.Thread( | ||
387 | target=serverLoggingThread, | ||
388 | args=(socket_path, server_ready, received_traces), | ||
389 | ) | ||
390 | server_thread.start() | 386 | server_thread.start() |
391 | 387 | ||
392 | with server_ready: | 388 | with server_ready: |
393 | server_ready.wait(timeout=120) | 389 | server_ready.wait(timeout=120) |
394 | 390 | ||
395 | self._event_log_module.StartEvent() | 391 | self._event_log_module.StartEvent([]) |
396 | path = self._event_log_module.Write( | 392 | path = self._event_log_module.Write( |
397 | path=f"af_unix:{socket_path}" | 393 | path=f"af_unix:{socket_path}" |
398 | ) | 394 | ) |