git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git 2.30.0 and failed self tests

From
JWJeffrey Walton <noloader@gmail.com>
Date
Jan 9, 2021, 19:40 UTC
Message-ID
<CAH8yC8kdOrramqggwQ0HBLpub8_+7N+kuvfaCHRokamKFjer4Q@mail.gmail.com>
In-Reply-To
<CAP8UFD30et-kL8dFoWvh7aPf4AKbzGxSzTuA=B3YNHZL_1axFA@mail.gmail.com>

On Sat, Jan 9, 2021 at 7:44 AM Christian Couder <christian.couder@gmail.com> wrote:

Show 16 quoted lines
>
> On Sat, Jan 9, 2021 at 12:33 PM Jeffrey Walton <noloader@gmail.com> wrote:
>
> > I'm seeing a failed self test with 2.30.0 on Alpine Linux 3.10,
> > x86_64. Alpine Linux uses Musl and BusyBox, so things may be a bit
> > sideways because of them.
>
> When a test script fails, could you try going into the "t" directory,
> running the test script with -i -v -x and sending the output?
>
> > *** t4129-apply-samemode.sh ***
>
> For example you could run the above test script with:
>
> $ cd t
> $ ./t4129-apply-samemode.sh -i -v -x
Thanks Christian and Matheus,
Attached is the redirected output of t4129.
I noticed Alpine does not provide setfacl:
    $ setfacl -k newdir
    -sh: setfacl: not found
Jeff
Initialized empty Git repository in /home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/.git/
expecting success of 4129.1 'setup': 
	echo original >file &&
	git add file &&
	test_tick &&
	git commit -m initial &&
	git tag initial &&
	echo modified >file &&
	git diff --stat -p >patch-0.txt &&
	chmod +x file &&
	git diff --stat -p >patch-1.txt &&
	sed "s/^\(new mode \).*/\1/" <patch-1.txt >patch-empty-mode.txt &&
	sed "s/^\(new mode \).*/\1garbage/" <patch-1.txt >patch-bogus-mode.txt
+ echo original
+ git add file
+ test_tick
+ test -z 
+ test_tick=1112911993
+ GIT_COMMITTER_DATE='1112911993 -0700'
+ GIT_AUTHOR_DATE='1112911993 -0700'
+ export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
+ git commit -m initial
[master (root-commit) e950771] initial
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 file
+ git tag initial
+ echo modified
+ git diff --stat -p
+ chmod +x file
+ git diff --stat -p
+ sed 's/^\(new mode \).*/\1/'
+ sed 's/^\(new mode \).*/\1garbage/'
ok 1 - setup
checking prerequisite: FILEMODE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" &&
	test "$(git config --bool core.filemode)" = true
)
+ mkdir -p '/home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/prereq-test-dir-FILEMODE'
+ cd '/home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/prereq-test-dir-FILEMODE'
+ git config --bool core.filemode
+ test true '=' true
prerequisite FILEMODE ok
expecting success of 4129.2 'same mode (no index)': 
	git reset --hard &&
	chmod +x file &&
	git apply patch-0.txt &&
	test -x file
+ git reset --hard
HEAD is now at e950771 initial
+ chmod +x file
+ git apply patch-0.txt
warning: file has type 100755, expected 100644
+ test -x file
ok 2 - same mode (no index)
expecting success of 4129.3 'same mode (with index)': 
	git reset --hard &&
	chmod +x file &&
	git add file &&
	git apply --index patch-0.txt &&
	test -x file &&
	git diff --exit-code
+ git reset --hard
HEAD is now at e950771 initial
+ chmod +x file
+ git add file
+ git apply --index patch-0.txt
warning: file has type 100755, expected 100644
+ test -x file
+ git diff --exit-code
ok 3 - same mode (with index)
expecting success of 4129.4 'same mode (index only)': 
	git reset --hard &&
	chmod +x file &&
	git add file &&
	git apply --cached patch-0.txt &&
	git ls-files -s file | grep "^100755"
+ git reset --hard
HEAD is now at e950771 initial
+ chmod +x file
+ git add file
+ git apply --cached patch-0.txt
warning: file has type 100755, expected 100644
+ git ls-files -s file
+ grep ^100755
100755 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0	file
ok 4 - same mode (index only)
expecting success of 4129.5 'mode update (no index)': 
	git reset --hard &&
	git apply patch-1.txt &&
	test -x file
+ git reset --hard
HEAD is now at e950771 initial
+ git apply patch-1.txt
+ test -x file
ok 5 - mode update (no index)
expecting success of 4129.6 'mode update (with index)': 
	git reset --hard &&
	git apply --index patch-1.txt &&
	test -x file &&
	git diff --exit-code
+ git reset --hard
HEAD is now at e950771 initial
+ git apply --index patch-1.txt
+ test -x file
+ git diff --exit-code
ok 6 - mode update (with index)
expecting success of 4129.7 'mode update (index only)': 
	git reset --hard &&
	git apply --cached patch-1.txt &&
	git ls-files -s file | grep "^100755"
+ git reset --hard
HEAD is now at e950771 initial
+ git apply --cached patch-1.txt
+ git ls-files -s file
+ grep ^100755
100755 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0	file
ok 7 - mode update (index only)
expecting success of 4129.8 'empty mode is rejected': 
	git reset --hard &&
	test_must_fail git apply patch-empty-mode.txt 2>err &&
	test_i18ngrep "invalid mode" err
+ git reset --hard
HEAD is now at e950771 initial
+ test_must_fail git apply patch-empty-mode.txt
+ _test_ok=
+ test_must_fail_acceptable git apply patch-empty-mode.txt
+ test git '=' env
+ return 0
+ git apply patch-empty-mode.txt
+ exit_code=128
+ test 128 -eq 0
+ test_match_signal 13 128
+ test 128 '=' 141
+ test 128 '=' 269
+ return 1
+ test 128 -gt 129
+ test 128 -eq 127
+ test 128 -eq 126
+ return 0
+ test_i18ngrep 'invalid mode' err
+ eval 'last_arg=${2}'
+ last_arg=err
+ test -f err
+ test 2 -lt 2
+ test 'x!' '=' 'xinvalid mode'
+ test_have_prereq '!C_LOCALE_OUTPUT'
+ save_IFS=' 	
'
+ IFS=,
+ set -- '!C_LOCALE_OUTPUT'
+ IFS=' 	
'
+ total_prereq=0
+ ok_prereq=0
+ missing_prereq=
+ negative_prereq=t
+ prerequisite=C_LOCALE_OUTPUT
+ eval 'script=$test_prereq_lazily_C_LOCALE_OUTPUT'
+ script='
	! test_bool_env GIT_TEST_GETTEXT_POISON false
'
+ test_run_lazy_prereq_ C_LOCALE_OUTPUT '
	! test_bool_env GIT_TEST_GETTEXT_POISON false
'
+ script='
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ say 'checking prerequisite: C_LOCALE_OUTPUT'
+ say_color info 'checking prerequisite: C_LOCALE_OUTPUT'
+ test -z info
+ shift
+ printf '%s\n' 'checking prerequisite: C_LOCALE_OUTPUT'
checking prerequisite: C_LOCALE_OUTPUT
+ say '
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ say_color info '
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ test -z info
+ shift
+ printf '%s\n' '
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)
+ test_eval_ '
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ test_eval_inner_ '
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ eval '
		want_trace && trace_level_=2 && set -x
		
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
(
	cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" &&
	! test_bool_env GIT_TEST_GETTEXT_POISON false
)'
+ want_trace
+ test t '=' t
+ test t '=' t
+ trace_level_=2
+ set -x
+ mkdir -p '/home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/prereq-test-dir-C_LOCALE_OUTPUT'
+ cd '/home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/prereq-test-dir-C_LOCALE_OUTPUT'
+ test_bool_env GIT_TEST_GETTEXT_POISON false
+ test 2 '!=' 2
+ git env--helper '--type=bool' '--default=false' --exit-code GIT_TEST_GETTEXT_POISON
+ ret=1
+ return 1
+ test 0 '!=' 0
+ return 0
+ eval_ret=0
+ rm -rf '/home/jwalton/Build-Scripts/git-2.30.0/t/trash directory.t4129-apply-samemode/prereq-test-dir-C_LOCALE_OUTPUT'
+ test 0 '=' 0
+ say 'prerequisite C_LOCALE_OUTPUT ok'
+ say_color info 'prerequisite C_LOCALE_OUTPUT ok'
+ test -z info
+ shift
+ printf '%s\n' 'prerequisite C_LOCALE_OUTPUT ok'
prerequisite C_LOCALE_OUTPUT ok
+ return 0
+ test_set_prereq C_LOCALE_OUTPUT
+ test -n 
+ satisfied_prereq=' POSIXPERM BSLASHPSPEC EXECKEEPSPID COLUMNS_CAN_BE_1 PERL PTHREADS PYTHON PCRE LIBPCRE2 GETTEXT FILEMODE C_LOCALE_OUTPUT '
+ lazily_tested_prereq='FILEMODE C_LOCALE_OUTPUT '
+ total_prereq=1
+ satisfied_this_prereq=t
+ prerequisite='!C_LOCALE_OUTPUT'
+ test -z 
+ missing_prereq='!C_LOCALE_OUTPUT'
+ test 1 '=' 0
+ test 'x!' '=' 'xinvalid mode'
+ grep 'invalid mode' err
error: invalid mode on line 5: 
+ return 0
ok 8 - empty mode is rejected
expecting success of 4129.9 'bogus mode is rejected': 
	git reset --hard &&
	test_must_fail git apply patch-bogus-mode.txt 2>err &&
	test_i18ngrep "invalid mode" err
+ git reset --hard
HEAD is now at e950771 initial
+ test_must_fail git apply patch-bogus-mode.txt
+ _test_ok=
+ test_must_fail_acceptable git apply patch-bogus-mode.txt
+ test git '=' env
+ return 0
+ git apply patch-bogus-mode.txt
+ exit_code=128
+ test 128 -eq 0
+ test_match_signal 13 128
+ test 128 '=' 141
+ test 128 '=' 269
+ return 1
+ test 128 -gt 129
+ test 128 -eq 127
+ test 128 -eq 126
+ return 0
+ test_i18ngrep 'invalid mode' err
+ eval 'last_arg=${2}'
+ last_arg=err
+ test -f err
+ test 2 -lt 2
+ test 'x!' '=' 'xinvalid mode'
+ test_have_prereq '!C_LOCALE_OUTPUT'
+ save_IFS=' 	
'
+ IFS=,
+ set -- '!C_LOCALE_OUTPUT'
+ IFS=' 	
'
+ total_prereq=0
+ ok_prereq=0
+ missing_prereq=
+ negative_prereq=t
+ prerequisite=C_LOCALE_OUTPUT
+ total_prereq=1
+ satisfied_this_prereq=t
+ prerequisite='!C_LOCALE_OUTPUT'
+ test -z 
+ missing_prereq='!C_LOCALE_OUTPUT'
+ test 1 '=' 0
+ test 'x!' '=' 'xinvalid mode'
+ grep 'invalid mode' err
error: invalid mode on line 5: garbage
+ return 0
ok 9 - bogus mode is rejected
expecting success of 4129.10 'do not use core.sharedRepository for working tree files': 
	git reset --hard &&
	test_config core.sharedRepository 0666 &&
	(
		# Remove a default ACL if possible.
		(setfacl -k newdir 2>/dev/null || true) &&
		umask 0077 &&
		# Test both files (f1) and leading dirs (d)
		mkdir d &&
		touch f1 d/f2 &&
		git add f1 d/f2 &&
		git diff --staged >patch-f1-and-f2.txt &&
		rm -rf d f1 &&
		git apply patch-f1-and-f2.txt &&
		echo "-rw-------" >f1_mode.expected &&
		echo "drwx------" >d_mode.expected &&
		test_modebits f1 >f1_mode.actual &&
		test_modebits d >d_mode.actual &&
		test_cmp f1_mode.expected f1_mode.actual &&
		test_cmp d_mode.expected d_mode.actual
	)
+ git reset --hard
HEAD is now at e950771 initial
+ test_config core.sharedRepository 0666
+ config_dir=
+ test core.sharedRepository '=' -C
+ test_when_finished 'test_unconfig  '"'"'core.sharedRepository'"'"
+ test 0 '=' 0
+ test_cleanup='{ test_unconfig  '"'"'core.sharedRepository'"'"'
		} && (exit "$eval_ret"); eval_ret=$?; :'
+ git config core.sharedRepository 0666
+ setfacl -k newdir
+ true
+ umask 0077
+ mkdir d
+ touch f1 d/f2
+ git add f1 d/f2
+ git diff --staged
+ rm -rf d f1
+ git apply patch-f1-and-f2.txt
+ echo -rw-------
+ echo drwx------
+ test_modebits f1
+ + sed -els 's|^\(..........\).*|\1|' -ld
 f1
+ test_modebits d
+ ls+  -ld dsed
 -e 's|^\(..........\).*|\1|'
+ test_cmp f1_mode.expected f1_mode.actual
+ eval 'diff -u' '"$@"'
+ diff -u f1_mode.expected f1_mode.actual
+ test_cmp d_mode.expected d_mode.actual
+ eval 'diff -u' '"$@"'
+ diff -u d_mode.expected d_mode.actual
--- d_mode.expected
+++ d_mode.actual
@@ -1 +1 @@
-drwx------
+drwx--S---
error: last command exited with $?=1
not ok 10 - do not use core.sharedRepository for working tree files
#	
#		git reset --hard &&
#		test_config core.sharedRepository 0666 &&
#		(
#			# Remove a default ACL if possible.
#			(setfacl -k newdir 2>/dev/null || true) &&
#			umask 0077 &&
#	
#			# Test both files (f1) and leading dirs (d)
#			mkdir d &&
#			touch f1 d/f2 &&
#			git add f1 d/f2 &&
#			git diff --staged >patch-f1-and-f2.txt &&
#	
#			rm -rf d f1 &&
#			git apply patch-f1-and-f2.txt &&
#	
#			echo "-rw-------" >f1_mode.expected &&
#			echo "drwx------" >d_mode.expected &&
#			test_modebits f1 >f1_mode.actual &&
#			test_modebits d >d_mode.actual &&
#			test_cmp f1_mode.expected f1_mode.actual &&
#			test_cmp d_mode.expected d_mode.actual
#		)
#	
Previous: Christian CouderNext: Matheus Tavares Bernardino
Message 3 of 7 in “Git 2.30.0 and failed self tests”
  1. Jeffrey WaltonJan 9, 2021
  2. Christian CouderJan 9, 2021
  3. Jeffrey WaltonJan 9, 2021
  4. Matheus Tavares BernardinoJan 9, 2021
  5. Jeffrey WaltonJan 9, 2021
  6. Matheus Tavares BernardinoJan 9, 2021
  7. Junio C HamanoJan 9, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.