]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: whoami, logname: verify error handling
authoroech3 <79379754+oech3@users.noreply.github.com>
Mon, 23 Feb 2026 10:22:44 +0000 (19:22 +0900)
committerPádraig Brady <P@draigBrady.com>
Mon, 23 Feb 2026 13:06:19 +0000 (13:06 +0000)
* tests/df/no-mtab-status-masked-proc.sh: Tweak unshare check.
* tests/local.mk: Reference new test.
* tests/misc/user.sh: Add new test using unshare -U, to verify
that whoami and logname diagnose failure correctly.
https://github.com/coreutils/coreutils/pull/195

tests/df/no-mtab-status-masked-proc.sh
tests/local.mk
tests/misc/user.sh [new file with mode: 0755]

index fccf7cd7887667614dbd839f571cb3cc0a2d4e91..d65c339f0a963b957364f1589d836c6c5a83445a 100755 (executable)
@@ -28,7 +28,7 @@ sanitizer_build_ df && skip_ 'Sanitizer not supported'
 # Protect against inaccessible remote mounts etc.
 timeout 10 df || skip_ "df fails"
 
-unshare -rm true || skip_ 'User namespace sandbox is disabled'
+unshare -rm unshare --version || skip_ 'User namespace sandbox is disabled'
 
 # mask /proc
 df() {
index aa71951f86a254eee7ca38ed33d6246b2afd7adb..792636d329de42c41f60dc885bcb995dfe135fc8 100644 (file)
@@ -176,6 +176,7 @@ all_tests =                                 \
   tests/tail/inotify-race.sh                   \
   tests/tail/inotify-race2.sh                  \
   tests/misc/invalid-opt.pl                    \
+  tests/misc/user.sh                           \
   tests/rm/ext3-perf.sh                                \
   tests/rm/cycle.sh                            \
   tests/cp/link-heap.sh                                \
diff --git a/tests/misc/user.sh b/tests/misc/user.sh
new file mode 100755 (executable)
index 0000000..29e6fcd
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# Copyright (C) 2026 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
+print_ver_ whoami logname
+skip_if_root_
+
+unshare -U unshare --version || skip_ 'unshare -U is unavailable'
+overflow_uid=$(cat /proc/sys/kernel/overflowuid) ||
+ skip_ 'overflow uid is unavailable'
+
+test "$(unshare -U whoami)" = "$(id -un $overflow_uid)" || fail=1
+
+returns_ 1 unshare -U logname 2>err || fail=1
+test "$(cat err)" = "logname: no login name" || fail=1
+
+Exit $fail