# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1569236482 -7200
#      Mon Sep 23 13:01:22 2019 +0200
# Node ID 71bc4a30a526ce83a44422d1f2962c435167d807
# Parent  23692a6725739234b5259cf29b2508670fa496a2
benchmark: make discovery benchmark compatible with more version

diff --git a/benchmarks/discovery.py b/benchmarks/discovery.py
--- a/benchmarks/discovery.py
+++ b/benchmarks/discovery.py
@@ -23,9 +23,23 @@
         data = data.get(self.repo_name)
         if data is None:
             raise NotImplementedError("no roles data for this partials' key")
+
+        # first revision with the command available
+        firstperfdiscorev = 'db6cace18765ded16abe0a0369dec9a7771fcdfd'
+        revset = '%s::' % firstperfdiscorev
+        # revision with a backward compatible contrib/perf.py
+        goodperfdiscorev = '39cab871e8801489fcb6022527d47607ada92fb6'
+        # perfdiscovery fails prior to 2.7
+        not_before_revset = '::3d19b81366410f8bb72dbde8969be124fe612def'
+        if self._matchrevset(not_before_revset, self.get_asv_rev()):
+            return float('nan')
+        kwargs = {}
+        if not self._matchrevset(revset, self.get_asv_rev()):
+            kwargs['perfextversion'] = goodperfdiscorev
         source = self.repo_path_from_id(data['source'])
         target = self.repo_path_from_id(data['target'])
-        return self.perfext('perfdiscovery', '--repository', source, target)
+        return self.perfext('perfdiscovery', '--repository', source, target,
+                                **kwargs)
 
 @setup_role
 class DiscoveryIdenticalTimeSuite(BaseDiscoveryTimeSuite):