diff --git a/tests/hghave.py b/tests/hghave.py --- a/tests/hghave.py +++ b/tests/hghave.py @@ -673,6 +673,13 @@ return False +@check("xz", "xz compression utility") +def has_xz(): + # When Windows invokes a subprocess in shell mode, it uses `cmd.exe`, which + # only knows `where`, not `which`. So invoke MSYS shell explicitly. + return matchoutput("sh -c 'test -x \"`which xz`\"'", b'') + + @check("msys", "Windows with MSYS") def has_msys(): return os.getenv('MSYSTEM') diff --git a/tests/test-archive.t b/tests/test-archive.t --- a/tests/test-archive.t +++ b/tests/test-archive.t @@ -574,8 +574,8 @@ #if py3 $ hg archive ../archive.txz - $ xz -l ../archive.txz | head -n1 - Strms Blocks Compressed Uncompressed Ratio Check Filename + $ which xz >/dev/null && xz -l ../archive.txz | head -n1 || true + Strms Blocks Compressed Uncompressed Ratio Check Filename (xz !) $ rm -f ../archive.txz #else $ hg archive ../archive.txz