diff mbox series

[v3] generic/126: run it inside its own subdirectory

Message ID 20250220-generic126-v3-1-03a061b6ed50@kernel.org (mailing list archive)
State New
Headers show
Series [v3] generic/126: run it inside its own subdirectory | expand

Commit Message

Jeff Layton Feb. 20, 2025, 11:26 a.m. UTC
I had been seeing some failures in generic/126 when running on NFS under
kdevops. The problem turned out to be that kdevops makes the root of the
NFS export mode 01777 by default (i.e. with the sticky bit set). This
causes some of these permission tests to fail because the open() is
called with the O_CREAT bit set.

Make the outcome of this test not depend on the permissions on
$TEST_DIR. Create a new directory to do these tests in, and clean it up
when done.

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v3:
- Add comment explaining the weird setup
- Move all of the cleanup into _cleanup()
- rm -rf $testdir before doing mkdir
- add call to _require_chmod helper
- Link to v2: https://lore.kernel.org/r/20250219-generic126-v2-1-e7537f6c9607@kernel.org

Changes in v2:
- add commands to _cleanup() to clean up test directory (Thanks Darrick!)
- Link to v1: https://lore.kernel.org/r/20250219-generic126-v1-1-018e4e60c811@kernel.org
---
 tests/generic/126 | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)


---
base-commit: 8467552f09e1672a02712653b532a84bd46ea10e
change-id: 20250219-generic126-f81b3022c4b7

Best regards,

Comments

Zorro Lang Feb. 21, 2025, 6:46 a.m. UTC | #1
On Thu, Feb 20, 2025 at 06:26:38AM -0500, Jeff Layton wrote:
> I had been seeing some failures in generic/126 when running on NFS under
> kdevops. The problem turned out to be that kdevops makes the root of the
> NFS export mode 01777 by default (i.e. with the sticky bit set). This
> causes some of these permission tests to fail because the open() is
> called with the O_CREAT bit set.
> 
> Make the outcome of this test not depend on the permissions on
> $TEST_DIR. Create a new directory to do these tests in, and clean it up
> when done.
> 
> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> Changes in v3:
> - Add comment explaining the weird setup
> - Move all of the cleanup into _cleanup()
> - rm -rf $testdir before doing mkdir
> - add call to _require_chmod helper
> - Link to v2: https://lore.kernel.org/r/20250219-generic126-v2-1-e7537f6c9607@kernel.org
> 
> Changes in v2:
> - add commands to _cleanup() to clean up test directory (Thanks Darrick!)
> - Link to v1: https://lore.kernel.org/r/20250219-generic126-v1-1-018e4e60c811@kernel.org
> ---
>  tests/generic/126 | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/generic/126 b/tests/generic/126
> index 142d2bb97db706bafd2152856ef0993c5c273441..97b4a07344bd5d3d5e06b36831978c9ad314b9d7 100755
> --- a/tests/generic/126
> +++ b/tests/generic/126
> @@ -13,6 +13,7 @@ _begin_fstest perms auto quick
>  _cleanup()
>  {
>      cd /
> +    test -n "$testdir" && rm -rf "$testdir"
>  }
>  
>  # Import common functions.
> @@ -20,10 +21,22 @@ _cleanup()
>  
>  _require_test
>  _require_chown
> +_require_chmod
>  
>  QA_FS_PERMS=$here/src/fs_perms
>  
> -cd $TEST_DIR
> +#
> +# This test is testing filesystem permissions. If the sticky bit is set on
> +# the directory, that can affect the outcome. Create a new directory with
> +# known permissions in which to run this test.
> +#
> +testdir="$TEST_DIR/generic-126.$$"

I'll change the 126 to ${seq}, others good to me. Thanks!

Reviewed-by: Zorro Lang <zlang@redhat.com>


> +rm -rf $testdir
> +mkdir $testdir
> +chown 0:0 $testdir
> +chmod 0755 $testdir
> +cd $testdir
> +
>  cp $here/src/testx ./testx.file
>  
>  # file_perm owner_uid owner_gid tester_uid tester_gid perm_to_test expected_result pass=1
> @@ -46,7 +59,5 @@ $QA_FS_PERMS 200 99 99 200 99 w 1
>  $QA_FS_PERMS 040 99 99 99 500 r 1
>  $QA_FS_PERMS 400 99 99 200 99 r 1
>  
> -rm -f ./testx.file
> -
>  status=0
>  exit
> 
> ---
> base-commit: 8467552f09e1672a02712653b532a84bd46ea10e
> change-id: 20250219-generic126-f81b3022c4b7
> 
> Best regards,
> -- 
> Jeff Layton <jlayton@kernel.org>
>
diff mbox series

Patch

diff --git a/tests/generic/126 b/tests/generic/126
index 142d2bb97db706bafd2152856ef0993c5c273441..97b4a07344bd5d3d5e06b36831978c9ad314b9d7 100755
--- a/tests/generic/126
+++ b/tests/generic/126
@@ -13,6 +13,7 @@  _begin_fstest perms auto quick
 _cleanup()
 {
     cd /
+    test -n "$testdir" && rm -rf "$testdir"
 }
 
 # Import common functions.
@@ -20,10 +21,22 @@  _cleanup()
 
 _require_test
 _require_chown
+_require_chmod
 
 QA_FS_PERMS=$here/src/fs_perms
 
-cd $TEST_DIR
+#
+# This test is testing filesystem permissions. If the sticky bit is set on
+# the directory, that can affect the outcome. Create a new directory with
+# known permissions in which to run this test.
+#
+testdir="$TEST_DIR/generic-126.$$"
+rm -rf $testdir
+mkdir $testdir
+chown 0:0 $testdir
+chmod 0755 $testdir
+cd $testdir
+
 cp $here/src/testx ./testx.file
 
 # file_perm owner_uid owner_gid tester_uid tester_gid perm_to_test expected_result pass=1
@@ -46,7 +59,5 @@  $QA_FS_PERMS 200 99 99 200 99 w 1
 $QA_FS_PERMS 040 99 99 99 500 r 1
 $QA_FS_PERMS 400 99 99 200 99 r 1
 
-rm -f ./testx.file
-
 status=0
 exit