URL:
  <https://savannah.gnu.org/bugs/?68480>

                 Summary: help-version.sh test failure (and possible
inconsistency between fu_path_prepend_ and $(TESTS_ENVIRONMENT) )
                   Group: findutils
               Submitter: jay
               Submitted: Thu 25 Jun 2026 09:17:46 PM UTC
                Category: find
                Severity: 2 - Minor
                Priority: 5 - Normal
              Item Group: Test suite failure
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name:
        Originator Email:
             Open/Closed: Open
         Discussion Lock: Unlocked
                 Release: None
           Fixed Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Thu 25 Jun 2026 09:17:46 PM UTC By: James Youngman <jay>
time env RUN_EXPENSIVE_TESTS=yes MFLAGS="j"  make distcheck just failed for me
in a VPATH build directory.  That is, where I build like this:



mkdir compile
cd compile
time ../findutils/configure -C  \
  --enable-compiler-warnings    \
  --enable-compiler-warnings-are-errors && 
make -j


The build itself works fine.  But I get a test failure:


time env RUN_EXPENSIVE_TESTS=yes MFLAGS="j"  make distcheck


I will attach the log.  But part of the problem may be that the test executes
with some incorrect $PATH entries:

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../xargs:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../locate:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../find:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/find:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/locate:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/xargs:/home/james/.cargo/bin:/home/james/.nvm/versions/node/v24.5.0/bin:/home/james/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/makemkv/bin:/usr/local/bin:/var/lib/flatpak/exports/bin:/home/james/source/spectrum/tools/z88dk/deb-z88dk/orig/z88dk/bin:/sbin:/usr/sbin

The first few are wrong, because they point outside the distcheck  tree (into
its parent instead).   As shown here:


echo
/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../xargs:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../locate:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../find:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/find:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/locate:/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/xargs:/home/james/.cargo/bin:/home/james/.nvm/versions/node/v24.5.0/bin:/home/james/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/makemkv/bin:/usr/local/bin:/var/lib/flatpak/exports/bin:/home/james/source/spectrum/tools/z88dk/deb-z88dk/orig/z88dk/bin:/sbin:/usr/sbin
 | tr ':' '\n' | while read entry; do echo; echo "${entry} resolves to
$(readlink -f ${entry})"; done

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../xargs
resolves to /home/james/source/GNU/findutils/git/gnu/compile/xargs

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../locate
resolves to /home/james/source/GNU/findutils/git/gnu/compile/locate

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/../../../find
resolves to /home/james/source/GNU/findutils/git/gnu/compile/find

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/find
resolves to
/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/find

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/locate
resolves to
/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/locate

/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/xargs
resolves to
/home/james/source/GNU/findutils/git/gnu/compile/findutils-4.10.0.138-37527/_build/sub/xargs

/home/james/.cargo/bin resolves to /home/james/.cargo/bin

/home/james/.nvm/versions/node/v24.5.0/bin resolves to
/home/james/.nvm/versions/node/v24.5.0/bin

/home/james/bin resolves to /home/james/bin

/usr/local/bin resolves to /usr/local/bin

/usr/bin resolves to /usr/bin

/bin resolves to /usr/bin

/usr/local/games resolves to /usr/local/games

/usr/games resolves to /usr/games

/opt/makemkv/bin resolves to /opt/makemkv/bin

/usr/local/bin resolves to /usr/local/bin

/var/lib/flatpak/exports/bin resolves to /var/lib/flatpak/exports/bin

/home/james/source/spectrum/tools/z88dk/deb-z88dk/orig/z88dk/bin resolves to
/home/james/source/spectrum/tools/z88dk/deb-z88dk/orig/z88dk/bin

/sbin resolves to /usr/sbin

/usr/sbin resolves to /usr/sbin



One contributor to the problem is that $PATH is set up to point to the
binaries under test in two different places.  

One is ../findutils/tests/local.mk:



TESTS_ENVIRONMENT =                             \
  . $(srcdir)/tests/lang-default;               \
  tmp__=$${TMPDIR-/tmp};                        \
  test -d "$$tmp__" && test -w "$$tmp__" || tmp__=.;    \
  . $(srcdir)/tests/envvar-check;               \
  TMPDIR=$$tmp__; export TMPDIR;                \
  export                                        \
  VERSION='$(VERSION)'                          \
  LOCALE_FR='$(LOCALE_FR)'                      \
  LOCALE_FR_UTF8='$(LOCALE_FR_UTF8)'            \
  abs_top_builddir='$(abs_top_builddir)'        \
  abs_top_srcdir='$(abs_top_srcdir)'            \
  abs_srcdir='$(abs_srcdir)'                    \
  built_programs='$(built_programs) $(single_binary_progs)' \
  fail=0                                        \
  host_os=$(host_os)                            \
  host_triplet='$(host_triplet)'                \
  srcdir='$(srcdir)'                            \
  top_srcdir='$(top_srcdir)'                    \
  CONFIG_HEADER='$(abs_top_builddir)/$(CONFIG_INCLUDE)' \
  CC='$(CC)'                                    \
  AWK='$(AWK)'                                  \
  EGREP='$(EGREP)'                              \
  EXEEXT='$(EXEEXT)'                            \
  MAKE=$(MAKE)                                  \
  PACKAGE_VERSION=$(PACKAGE_VERSION)            \
  PERL='$(PERL)'                                \
  SHELL='$(PREFERABLY_POSIX_SHELL)'             \
  ; test -d /usr/xpg4/bin && PATH='/usr/xpg4/bin$(PATH_SEPARATOR)'"$$PATH"; \

PATH='$(abs_top_builddir)/find$(PATH_SEPARATOR)$(abs_top_builddir)/locate$(PATH_SEPARATOR)$(abs_top_builddir)/xargs$(PATH_SEPARATOR)'"$$PATH"
\
  ; 9>&2


The other is help-version.sh itself:


. "${srcdir=.}/tests/init.sh"; fu_path_prepend_


fu_path_prepend_ is defined in init.cfg:

# Prepend all our source directories to PATH.
fu_path_prepend_()
{
  path_prepend_  "${srcdir=.}/find"  "${srcdir=.}/locate"
"${srcdir=.}/xargs"
}

Because the original build directory is a VPATH build directory and the
distcheck build directory isn't, only one of the two actually has binaries in
${srcdir}.   















    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?68480>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to