diff options
author | Raman Tenneti <rtenneti@google.com> | 2021-09-13 17:40:07 -0700 |
---|---|---|
committer | Raman Tenneti <rtenneti@google.com> | 2021-09-14 21:36:12 +0000 |
commit | 6448a4f2af53c241594b5d12eb0d03b18f889eda (patch) | |
tree | 554753373be6dbd595a659907d2016ac203268cd /tests/test_git_trace2_event_log.py | |
parent | 1328c35a4d0b47c7e8c00fe351f0e587481e28c2 (diff) | |
download | git-repo-6448a4f2af53c241594b5d12eb0d03b18f889eda.tar.gz |
sync: Log repo sync state events as 'data' events.
git_trace2_event_log.py:
+ Added LogDataConfigEvents method to log 'data' events.
Sync's current_sync_state and previous_sync_state are logged
as 'data' events in the current log.
It logs are key/value in the |config| argument. Each key is
prefixed with |prefix| argument.
The following are sample events that are logged during repo sync.
{"event":"data",
"sid":"repo-20210914T181545Z-P000330c0/repo-20210914T181545Z-P000330c0",
"thread":"MainThread",
"time":"2021-09-14T18:16:19.935846Z",
"key":"previous_sync_state/repo.syncstate.main.synctime",
"value":"2021-09-14T17:27:11.573717Z"}
{"event":"data",
"sid":"repo-20210914T181545Z-P000330c0/repo-20210914T181545Z-P000330c0",
"thread":"MainThread",
"time":"2021-09-14T18:16:19.955546Z",
"key":"current_sync_state/repo.syncstate.main.synctime",
"value":"2021-09-14T18:16:19.935979Z"}
tests/test_git_trace2_event_log.py:
+ Added unit tests
sync.py:
+ Changed logging calls to LogDataConfigEvents.
Tested:
$ ./run_tests
Tested it by running the following command multiple times.
$ repo_dev sync -j 20
repo sync has finished successfully
Verified config data is looged in trace2 event logs.
Bug: [google internal] b/199758376
Change-Id: I75fd830e90c1811ec28510538c99a2632b104e85
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/317823
Reviewed-by: Josh Steadmon <steadmon@google.com>
Reviewed-by: Xin Li <delphij@google.com>
Tested-by: Raman Tenneti <rtenneti@google.com>
Diffstat (limited to 'tests/test_git_trace2_event_log.py')
-rw-r--r-- | tests/test_git_trace2_event_log.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_git_trace2_event_log.py b/tests/test_git_trace2_event_log.py index bee5865b..a5a6cbba 100644 --- a/tests/test_git_trace2_event_log.py +++ b/tests/test_git_trace2_event_log.py | |||
@@ -234,6 +234,39 @@ class EventLogTestCase(unittest.TestCase): | |||
234 | self.assertEqual(len(self._log_data), 1) | 234 | self.assertEqual(len(self._log_data), 1) |
235 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') | 235 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') |
236 | 236 | ||
237 | def test_data_event_config(self): | ||
238 | """Test 'data' event data outputs all config keys. | ||
239 | |||
240 | Expected event log: | ||
241 | <version event> | ||
242 | <data event> | ||
243 | <data event> | ||
244 | """ | ||
245 | config = { | ||
246 | 'git.foo': 'bar', | ||
247 | 'repo.partialclone': 'false', | ||
248 | 'repo.syncstate.superproject.hassuperprojecttag': 'true', | ||
249 | } | ||
250 | prefix_value = 'prefix' | ||
251 | self._event_log_module.LogDataConfigEvents(config, prefix_value) | ||
252 | |||
253 | with tempfile.TemporaryDirectory(prefix='event_log_tests') as tempdir: | ||
254 | log_path = self._event_log_module.Write(path=tempdir) | ||
255 | self._log_data = self.readLog(log_path) | ||
256 | |||
257 | self.assertEqual(len(self._log_data), 4) | ||
258 | data_events = self._log_data[1:] | ||
259 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') | ||
260 | |||
261 | for event in data_events: | ||
262 | self.verifyCommonKeys(event, expected_event_name='data') | ||
263 | # Check for 'data' event specific fields. | ||
264 | self.assertIn('key', event) | ||
265 | self.assertIn('value', event) | ||
266 | key = event['key'].removeprefix(f'{prefix_value}/') | ||
267 | value = event['value'] | ||
268 | self.assertTrue(key in config and value == config[key]) | ||
269 | |||
237 | def test_error_event(self): | 270 | def test_error_event(self): |
238 | """Test and validate 'error' event data is valid. | 271 | """Test and validate 'error' event data is valid. |
239 | 272 | ||