# GNU Guix --- Functional package management for GNU
# Copyright © 2015 David Thompson <davet@gnu.org>
+# Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
+# Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
# Test that the ld cache was generated and can be successfully read.
guix shell -CF --bootstrap guile-bootstrap \
-- guile -c '(execlp "ldconfig" "ldconfig" "-p")'
+
+# Test that the package glibc-for-fhs is in the container even if there is the
+# regular glibc package from another source. See
+# <https://issues.guix.gnu.org/58861>.
+guix shell -CF --bootstrap guile-bootstrap glibc \
+ -- guile -c '(exit (if (string-contains (readlink "/lib/libc.so")
+ "glibc-for-fhs")
+ 0
+ 1))'
+
+# Test that $PATH inside the container includes the FHS directories.
+guix shell -CF coreutils -- env | grep ^PATH=/bin:/usr/bin:/sbin:/usr/sbin.*
+
+# Make sure '--preserve' is honored for $PATH, which the '--emulate-fhs'
+# option modifies. We can't (easily) check the whole $PATH as it will differ
+# inside and outside the container, so just check our test $PATH is still
+# present. See <https://issues.guix.gnu.org/60566>.
+PATH=/foo $(type -P guix) shell -CF -E ^PATH$ coreutils \
+ -- env | grep ^PATH=.*:/foo
+
+# '--symlink' works.
+echo "TESTING SYMLINK IN CONTAINER"
+guix shell --bootstrap guile-bootstrap --container \
+ --symlink=/usr/bin/guile=bin/guile -- \
+ /usr/bin/guile --version
+
+# A dangling symlink causes the command to fail.
+! guix shell --bootstrap -CS /usr/bin/python=bin/python guile-bootstrap -- exit
+
+# An invalid symlink spec causes the command to fail.
+! guix shell --bootstrap -CS bin/guile=/usr/bin/guile guile-bootstrap -- exit