The new test tests/env/env0-from fails on macOS, says the CI. Here's the log
file:


FAIL: tests/env/env0-from
=========================

++ initial_cwd_=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build 
gt-env0-from.sh.XXXX
+++ case $# in
+++ destdir_=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build
+++ template_=gt-env0-from.sh.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ 
destdir_slash_=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/
+++ case $template_ in
++++ unset TMPDIR
+++ 
d=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
+++ case $d in
+++ :
+++ test -d 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
++++ ls -dgo 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
+++ perms='drwx------ 2 64 Aug 17 19:30 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL'
+++ case $perms in
+++ :
+++ echo 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
+++ return
++ 
test_dir_=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
++ cd 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
++ case $srcdir in
++ srcdir=../..
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_='
'
++ IFS='        
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS='  
'
++ IFS=:
++ new_PATH=
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src/.
++ new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /opt/homebrew/lib/ruby/gems/3.4.0/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /opt/homebrew/opt/[email protected]/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /opt/homebrew/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /opt/homebrew/sbin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Users/runner/.cargo/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /usr/local/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Users/runner/.yarn/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Users/runner/Library/Android/sdk/tools/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Users/runner/Library/Android/sdk/platform-tools/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /Library/Frameworks/Python.framework/Versions/Current/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /usr/bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /bin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /usr/sbin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin
++ for dir in '$PATH'
++ IFS='        
'
++ case "$dir" in
++ test -d /sbin/.
++ 
new_PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin
++ IFS='        
'
++ 
PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin
++ export PATH
++ trap remove_tmp_ EXIT
+ path_prepend_ ./src
+ test 1 '!=' 0
+ path_dir_=./src
+ case $path_dir_ in
+ 
abs_path_dir_=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/./src
+ case $abs_path_dir_ in
+ 
PATH=/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/./src:/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/[email protected]/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/runner/.cargo/bin:/usr/local/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ create_exe_shims_ 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/./src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ print_ver_ env
+ require_built_ env
+ skip_=no
+ for i in '"$@"'
+ case " $built_programs " in
+ test no = yes
+ test yes = yes
+ local i
+ for i in '$*'
+ env env --version
env (GNU coreutils) 2026-08-17
Copyright (C) 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard Mlynarik, David MacKenzie, and Assaf Gordon.
+ CU_ENV0_FROM_PARENT=parent
+ CU_ENV0_FROM_REPLACE=parent
+ CU_ENV0_FROM_REMOVE=parent
+ export CU_ENV0_FROM_PARENT CU_ENV0_FROM_REPLACE CU_ENV0_FROM_REMOVE
+ printf '%s\0' CU_ENV0_FROM_REPLACE=file CU_ENV0_FROM_NEW=new 
CU_ENV0_FROM_REMOVE=file
+ QUOTING_STYLE=literal
+ env --env0-from=vars -u CU_ENV0_FROM_REMOVE CU_ENV0_FROM_REPLACE=operand
+ grep -E '^CU_ENV0_FROM_(NEW|PARENT|REMOVE|REPLACE)=' all
+ LC_ALL=C
+ sort
+ cat
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ QUOTING_STYLE=literal
+ env --env0-from=vars -i
+ LC_ALL=C
+ sort all
+ cat
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ QUOTING_STYLE=literal
+ env --env0-from=vars -
+ LC_ALL=C
+ sort all
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ printf 'A=line 1\nline 2\0'
+ env -i --env0-from=values -0
+ compare values out
+ compare_dev_null_ values out
+ test 2 = 2
+ test xvalues = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ values out
+ LC_ALL=C
+ diff -u values out
+ printf '=value\0'
+ env -i --env0-from=empty-name -0
+ compare empty-name out
+ compare_dev_null_ empty-name out
+ test 2 = 2
+ test xempty-name = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ empty-name out
+ LC_ALL=C
+ diff -u empty-name out
+ printf '%s\0' CU_ENV0_FROM_DUP=first CU_ENV0_FROM_DUP=last
+ QUOTING_STYLE=literal
+ env --env0-from=duplicates
+ grep '^CU_ENV0_FROM_DUP=' all
+ echo CU_ENV0_FROM_DUP=last
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ case $host_os in
+ printf 'A=old1\0opaque\0A=old2\0B=old\0'
+ printf 'A=new1\0C=new\0A=new2\0'
+ printf 'A=new2\0A=old2\0B=old\0C=new\0opaque\0'
+ LC_ALL=C
+ sort -z exp
+ env -i --env0-from=base 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src/env 
--env0-from=merge -0
+ LC_ALL=C
+ sort -z all
+ compare exp-sorted out
+ compare_dev_null_ exp-sorted out
+ test 2 = 2
+ test xexp-sorted = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp-sorted out
+ LC_ALL=C
+ diff -u exp-sorted out
Binary files exp-sorted and out differ
+ fail=1
+ printf 'B=old\0C=operand\0D=new\0opaque\0'
+ LC_ALL=C
+ sort -z exp
+ env -i --env0-from=base 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src/env 
--env0-from=merge -u A -0 C=operand D=new
+ LC_ALL=C
+ sort -z all
+ compare exp-sorted out
+ compare_dev_null_ exp-sorted out
+ test 2 = 2
+ test xexp-sorted = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp-sorted out
+ LC_ALL=C
+ diff -u exp-sorted out
Binary files exp-sorted and out differ
+ fail=1
+ printf 'A=one\0'
+ printf 'B=two\0'
+ printf 'A=one\0B=two\0C=three\0'
+ env -i --env0-from=base-grow 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src/env 
--env0-from=merge-grow -0 C=three
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
Binary files exp and out differ
+ fail=1
+ printf 'A=first\0opaque\0A=last\0\0=value\0B=\0'
+ env -i --env0-from=raw -0
+ compare raw out
+ compare_dev_null_ raw out
+ test 2 = 2
+ test xraw = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ raw out
+ LC_ALL=C
+ diff -u raw out
+ env -0 --env0-from=raw -
+ compare raw out
+ compare_dev_null_ raw out
+ test 2 = 2
+ test xraw = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ raw out
+ LC_ALL=C
+ diff -u raw out
+ printf 'opaque\0\0=value\0B=changed\0C=new\0'
+ env -i --env0-from=raw -u A -0 B=changed C=new
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ printf 'A=one\0'
+ printf 'A=one\0B=two\0'
+ env -i --env0-from=one -0 B=two
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ printf 'A=stdin\0'
+ env -i --env0-from=- -0
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ mkdir bin
+ cat
+ chmod +x bin/env0-from-command
+ printf 'PATH=%s\0' 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL/bin
+ echo found
+ env -i --env0-from=path env0-from-command
+ compare exp out
+ compare_dev_null_ exp out
+ test 2 = 2
+ test xexp = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp out
+ LC_ALL=C
+ diff -u exp out
+ printf %s ''
+ env -i --env0-from=empty -0
+ compare /dev/null out
+ compare_dev_null_ /dev/null out
+ test 2 = 2
+ test x/dev/null = x/dev/null
+ test -s out
+ return 0
+ return 0
+ case $host_os in
+ printf 'A=file1\0opaque\0\0A=file2\0B=new\0'
+ printf 'A=file2\0opaque\0\0B=new\0'
+ LC_ALL=C
+ sort -z exp
+ env -i A=old 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/src/env 
--env0-from=mixed -0
+ LC_ALL=C
+ sort -z all
+ compare exp-sorted out
+ compare_dev_null_ exp-sorted out
+ test 2 = 2
+ test xexp-sorted = x/dev/null
+ test xout = x/dev/null
+ return 2
+ case $? in
+ compare_ exp-sorted out
+ LC_ALL=C
+ diff -u exp-sorted out
Binary files exp-sorted and out differ
+ fail=1
+ printf A=unterminated
+ returns_ 125 env --env0-from=invalid
+ returns_ 125 env --env0-from=does-not-exist
+ returns_ 125 env --env0-from=empty -u '' true
env: cannot unset '': Invalid argument
+ returns_ 125 env --env0-from=empty -u A=B true
env: cannot unset 'A=B': Invalid argument
+ returns_ 125 env -i --env0-from=empty -u '' true
env: cannot unset '': Invalid argument
+ returns_ 125 env -i --env0-from=empty -u A=B true
env: cannot unset 'A=B': Invalid argument
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ test '' = yes
+ cd /Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build
+ chmod -R u+rwx 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
+ rm -rf 
/Users/runner/work/ci-check/ci-check/coreutils-2026-08-17/build/gt-env0-from.sh.B5bL
+ exit 1
FAIL tests/env/env0-from.sh (exit status: 1)




Reply via email to