From fa929b47148cfb19877a25ab128686ca4ae0208f Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Sat, 11 Jul 2020 21:00:45 +0300 Subject: Check that hg is actually working. --- run_unittests.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/run_unittests.py b/run_unittests.py index 5fd790c42..820b705b5 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -2834,9 +2834,25 @@ class AllPlatformTests(BasePlatformTests): # fails sometimes. pass - def test_dist_hg(self): + def has_working_hg(self): if not shutil.which('hg'): - raise unittest.SkipTest('Mercurial not found') + return False + try: + # This check should not be necessary, but + # CI under macOS passes the above test even + # though Mercurial is not installed. + if subprocess.call(['hg', '--version'], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) != 0: + return False + return True + except FileNotFoundError: + return False + + + def test_dist_hg(self): + if not self.has_working_hg(): + raise unittest.SkipTest('Mercurial not found or broken.') if self.backend is not Backend.ninja: raise unittest.SkipTest('Dist is only supported with Ninja') -- cgit v1.2.3