changeset 48312:7dd48d5da64f stable

tests: add guard check for suid support This adds a check for setuid and setgid support and guards a part of a test requiring this particular filesystem feature. Such feature is notably missing in the Nix/NixOS build sandbox and was causing the whole test to fail for the mercurial package. Differential Revision: https://phab.mercurial-scm.org/D11739
author pacien <pacien.trangirard@pacien.net>
date Tue, 09 Nov 2021 02:08:18 +0100
parents ab2dfc993b5c
children bc04a7615c96
files tests/hghave.py tests/test-remotefilelog-permissions.t
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/hghave.py	Tue Nov 09 02:00:25 2021 +0100
+++ b/tests/hghave.py	Tue Nov 09 02:08:18 2021 +0100
@@ -264,6 +264,13 @@
     return not (new_file_has_exec or exec_flags_cannot_flip)
 
 
+@check("suidbit", "setuid and setgid bit")
+def has_suidbit():
+    if getattr(os, "statvfs", None) is None or getattr(os, "ST_NOSUID") is None:
+        return False
+    return bool(os.statvfs('.').f_flag & os.ST_NOSUID)
+
+
 @check("icasefs", "case insensitive file system")
 def has_icasefs():
     # Stolen from mercurial.util
--- a/tests/test-remotefilelog-permissions.t	Tue Nov 09 02:00:25 2021 +0100
+++ b/tests/test-remotefilelog-permissions.t	Tue Nov 09 02:08:18 2021 +0100
@@ -33,6 +33,8 @@
 
   $ chmod -R u+w master/.hg/remotefilelogcache
 
+#if suidbit
+
 # Test setting up shared cache with the right permissions
 # (this is hard to test in a cross platform way, so we just make sure nothing
 # crashes)
@@ -44,3 +46,5 @@
   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   $ ls -ld $CACHEDIR/11
   drwxrws* $TESTTMP/hgcache/11 (glob)
+
+#endif