diff --git a/benchmarks/basic_commands.py b/benchmarks/basic_commands.py index 4998bff404541941fa0df3a4bb6c48f4f098cbef_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ==..631ac20986344c4736551919a5b1494fd452147d_YmVuY2htYXJrcy9iYXNpY19jb21tYW5kcy5weQ== 100644 --- a/benchmarks/basic_commands.py +++ b/benchmarks/basic_commands.py @@ -370,10 +370,10 @@ ) -class DiscoveryTimeSuite(BaseExchangeTimeSuite): +class BaseDiscoveryTimeSuite(BaseExchangeTimeSuite): # debugdiscovery does not support revset argument params = BaseTestSuite.params + [ ['local', 'ssh', 'http'], STRIP_VARIANTS_LIST, [None]] @@ -374,9 +374,23 @@ # debugdiscovery does not support revset argument params = BaseTestSuite.params + [ ['local', 'ssh', 'http'], STRIP_VARIANTS_LIST, [None]] + def _track_discovery(self, *args, **kwargs): + data = self.role_data.get(kwargs['strip'], {}) + data = data.get(self.repo_name) + if data is None: + raise NotImplementedError("no roles data for this partials' key") + source = self.repo_path_from_id(data['source']) + target = self.repo_path_from_id(data['target']) + return self.perfext('perfdiscovery', '--repository', source, target) + +@setup_role +class DiscoverySubsetTimeSuite(BaseDiscoveryTimeSuite): + role_action = 'discovery' + role_subtype = 'subset' + @params_as_kwargs @not_broken_hgweb def track_discovery_subset(self, *args, **kwargs): @@ -380,13 +394,14 @@ @params_as_kwargs @not_broken_hgweb def track_discovery_subset(self, *args, **kwargs): - """Local repository is a subset of remote.""" - # self.hg() passes self.repo_path through --cwd, we override - # that with -R - return self.perfext('perfdiscovery', - '--repository', self.clone_path, - self.repo_path) + return self._track_discovery(self, *args, **kwargs) + track_discovery_subset.benchmark_name = 'basic_commands.DiscoveryTimeSuite.track_discovery_subset' + +@setup_role +class DiscoverySupersetTimeSuite(BaseDiscoveryTimeSuite): + role_action = 'discovery' + role_subtype = 'superset' @params_as_kwargs @not_broken_hgweb def track_discovery_superset(self, *args, **kwargs): @@ -389,9 +404,9 @@ @params_as_kwargs @not_broken_hgweb def track_discovery_superset(self, *args, **kwargs): - """Local repository is a superset of remote.""" - return self.perfext('perfdiscovery', self.clone_path) + return self._track_discovery(self, *args, **kwargs) + track_discovery_superset.benchmark_name = 'basic_commands.DiscoveryTimeSuite.track_discovery_superset' class UnbundleTimeSuite(BaseExchangeTimeSuite):