hghave: add a `rust` keyword to detect the use of compiled rust code
The content of some on disk cache can varies when using rust (because it is
faster to do so in the rust variant). So we need to be able to detect this case
for some test.
Differential Revision: https://phab.mercurial-scm.org/D8162
--- a/tests/hghave.py Fri Feb 28 14:34:37 2020 +0100
+++ b/tests/hghave.py Tue Feb 18 18:32:31 2020 +0100
@@ -332,6 +332,17 @@
return gethgversion() >= (int(major), int(minor))
+@check("rust", "Using the Rust extensions")
+def has_rust():
+ """Check is the mercurial currently running is using some rust code"""
+ cmd = b'hg debuginstall --quiet 2>&1'
+ match = br'checking module policy \(([^)]+)\)'
+ policy = matchoutput(cmd, match)
+ if not policy:
+ return False
+ return b'rust' in policy.group(1)
+
+
@check("hg08", "Mercurial >= 0.8")
def has_hg08():
if checks["hg09"][0]():