diff options
| author | Raman Tenneti <rtenneti@google.com> | 2021-07-28 14:36:49 -0700 |
|---|---|---|
| committer | Raman Tenneti <rtenneti@google.com> | 2021-07-29 19:20:57 +0000 |
| commit | 7954de13b79182e299163307c430ad96f9cdbd38 (patch) | |
| tree | e9b8cf74daa7c4827cb55d63a90dfd040492c150 /tests/test_git_config.py | |
| parent | ae86a460222c34b2f9cd600e6d17f8fd4f467fae (diff) | |
| download | git-repo-7954de13b79182e299163307c430ad96f9cdbd38.tar.gz | |
sync: Added logging of repo sync state and config options for analysis.
git_config.py:
+ Added SyncAnalysisState class, which saves the following data
into the config object.
++ sys.argv, options, superproject's logging data.
++ repo.*, branch.* and remote.* parameters from config object.
++ current time as synctime.
++ Version number of the object.
+ All the keys for the above data are prepended with 'repo.syncstate.'
+ Added GetSyncAnalysisStateData and UpdateSyncAnalysisState methods
to GitConfig object to save/get the above data.
git_trace2_event_log.py:
+ Added LogConfigEvents method with code from DefParamRepoEvents
to log events.
sync.py:
+ superproject_logging_data is a dictionary that collects all the
superproject data that is to be logged as trace2 event.
+ Sync at the end logs the previously saved syncstate.* parameters
as previous_sync_state. Then it calls config's UpdateSyncAnalysisState
to save and log all the current options, superproject logged data.
docs/internal-fs-layout.md:
+ Added doc string explaining [repo.syncstate ...] sections of
.repo/manifests.git/config file.
test_git_config.py:
+ Added unit test for the new methods of GitConfig object.
Tested:
$ ./run_tests
$ repo_dev init --use-superproject -u https://android.googlesource.com/platform/manifest
Tested it by running the following command multiple times.
$ repo_dev sync -j 20
repo sync has finished successfully
Verified config file has [syncstate ...] data saved.
Bug: [google internal] b/188573450
Change-Id: I1f914ce50f3382111b72940ca56de7c41b53d460
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/313123
Tested-by: Raman Tenneti <rtenneti@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Xin Li <delphij@google.com>
Diffstat (limited to 'tests/test_git_config.py')
| -rw-r--r-- | tests/test_git_config.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_git_config.py b/tests/test_git_config.py index 3300c12f..44ff5974 100644 --- a/tests/test_git_config.py +++ b/tests/test_git_config.py | |||
| @@ -104,6 +104,23 @@ class GitConfigReadOnlyTests(unittest.TestCase): | |||
| 104 | for key, value in TESTS: | 104 | for key, value in TESTS: |
| 105 | self.assertEqual(value, self.config.GetInt('section.%s' % (key,))) | 105 | self.assertEqual(value, self.config.GetInt('section.%s' % (key,))) |
| 106 | 106 | ||
| 107 | def test_GetSyncAnalysisStateData(self): | ||
| 108 | """Test config entries with a sync state analysis data.""" | ||
| 109 | superproject_logging_data = {} | ||
| 110 | superproject_logging_data['test'] = False | ||
| 111 | options = type('options', (object,), {})() | ||
| 112 | options.verbose = 'true' | ||
| 113 | TESTS = ( | ||
| 114 | ('superproject.test', 'false'), | ||
| 115 | ('options.verbose', 'true'), | ||
| 116 | ('main.version', '1'), | ||
| 117 | ) | ||
| 118 | self.config.UpdateSyncAnalysisState(options, superproject_logging_data) | ||
| 119 | sync_data = self.config.GetSyncAnalysisStateData() | ||
| 120 | for key, value in TESTS: | ||
| 121 | self.assertEqual(sync_data[f'{git_config.SYNC_STATE_PREFIX}{key}'], value) | ||
| 122 | self.assertTrue(sync_data[f'{git_config.SYNC_STATE_PREFIX}main.synctime']) | ||
| 123 | |||
| 107 | 124 | ||
| 108 | class GitConfigReadWriteTests(unittest.TestCase): | 125 | class GitConfigReadWriteTests(unittest.TestCase): |
| 109 | """Read/write tests of the GitConfig class.""" | 126 | """Read/write tests of the GitConfig class.""" |
