Re: [PATCH] overlay: deprecate test t_truncate_self

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Fri, Aug 30, 2024 at 09:45:46PM +0200, Amir Goldstein wrote:
> Since kernel commit 2a010c412853 ("fs: don't block i_writecount during
> exec"), truncating an executable file while it is being executed is
> allowed. Therefore, the test t_truncate_self now fails, so remove it.
> 
> Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
> ---
> 
> Zorro,
> 
> This is a fix for a test regression since v6.11-rc1.
> My fix is to deprecate the test, because the change of behavior is
> desired (at least until a non test user complains).


Makes sense to me,
Reviewed-by: Zorro Lang <zlang@xxxxxxxxxx>

> 
> Thanks,
> Amir.
> 
>  .gitignore            |  1 -
>  src/Makefile          |  2 +-
>  src/t_truncate_self.c | 26 --------------------------
>  tests/overlay/013     | 41 -----------------------------------------
>  tests/overlay/013.out |  2 --
>  5 files changed, 1 insertion(+), 71 deletions(-)
>  delete mode 100644 src/t_truncate_self.c
>  delete mode 100755 tests/overlay/013
>  delete mode 100644 tests/overlay/013.out
> 
> diff --git a/.gitignore b/.gitignore
> index 36083e9d..94f6b564 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -171,7 +171,6 @@ tags
>  /src/t_snapshot_deleted_subvolume
>  /src/t_stripealign
>  /src/t_truncate_cmtime
> -/src/t_truncate_self
>  /src/test-nextquota
>  /src/testx
>  /src/trunc
> diff --git a/src/Makefile b/src/Makefile
> index b3da59a0..52299b4c 100644
> --- a/src/Makefile
> +++ b/src/Makefile
> @@ -13,7 +13,7 @@ TARGETS = dirstress fill fill2 getpagesize holes lstat64 \
>  	godown resvtest writemod writev_on_pagefault makeextents itrash rename \
>  	multi_open_unlink unwritten_sync genhashnames t_holes \
>  	t_mmap_writev t_truncate_cmtime dirhash_collide t_rename_overwrite \
> -	holetest t_truncate_self af_unix t_mmap_stale_pmd \
> +	holetest af_unix t_mmap_stale_pmd \
>  	t_mmap_cow_race t_mmap_fallocate fsync-err t_mmap_write_ro \
>  	t_ext4_dax_journal_corruption t_ext4_dax_inline_corruption \
>  	t_ofd_locks t_mmap_collision mmap-write-concurrent \
> diff --git a/src/t_truncate_self.c b/src/t_truncate_self.c
> deleted file mode 100644
> index a11f7d5a..00000000
> --- a/src/t_truncate_self.c
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -#include <stdio.h>
> -#include <string.h>
> -#include <errno.h>
> -#include <unistd.h>
> -#include <libgen.h>
> -
> -int main(int argc, char *argv[])
> -{
> -	const char *progname = basename(argv[0]);
> -	int ret;
> -
> -	ret = truncate(argv[0], 4096);
> -	if (ret != -1) {
> -		if (argc == 2 && strcmp(argv[1], "--may-succeed") == 0)
> -			return 0;
> -		fprintf(stderr, "truncate(%s) should have failed\n",
> -			progname);
> -		return 1;
> -	}
> -	if (errno != ETXTBSY) {
> -		perror(progname);
> -		return 1;
> -	}
> -
> -	return 0;
> -}
> diff --git a/tests/overlay/013 b/tests/overlay/013
> deleted file mode 100755
> index 73c72c30..00000000
> --- a/tests/overlay/013
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -#! /bin/bash
> -# SPDX-License-Identifier: GPL-2.0
> -# Copyright (c) 2016 Red Hat Inc.  All Rights Reserved.
> -#
> -# FS QA Test 013
> -#
> -# Test truncate running executable binaries from lower and upper dirs.
> -# truncate(2) should return ETXTBSY, not other errno nor segfault
> -#
> -# Commit 03bea6040932 ("ovl: get_write_access() in truncate") fixed this issue.
> -. ./common/preamble
> -_begin_fstest auto quick copyup
> -
> -# Import common functions.
> -. ./common/filter
> -
> -_require_scratch
> -_require_test_program "t_truncate_self"
> -
> -# remove all files from previous runs
> -_scratch_mkfs
> -
> -# copy test program to lower and upper dir
> -lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
> -upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
> -mkdir -p $lowerdir
> -mkdir -p $upperdir
> -cp $here/src/t_truncate_self $lowerdir/test_lower
> -cp $here/src/t_truncate_self $upperdir/test_upper
> -
> -_scratch_mount
> -
> -# run test program from lower and upper dir
> -# test programs truncate themselfs, all should fail with ETXTBSY
> -$SCRATCH_MNT/test_lower --may-succeed
> -$SCRATCH_MNT/test_upper
> -
> -# success, all done
> -echo "Silence is golden"
> -status=0
> -exit
> diff --git a/tests/overlay/013.out b/tests/overlay/013.out
> deleted file mode 100644
> index 3e66423b..00000000
> --- a/tests/overlay/013.out
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -QA output created by 013
> -Silence is golden
> -- 
> 2.34.1
> 





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux