summaryrefslogtreecommitdiff
path: root/tests/ls/capability
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2008-08-01 19:33:45 +0200
committerJim Meyering <meyering@redhat.com>2008-08-01 22:13:25 +0200
commit84f6abfe00b4ab533145623638b417a2221f9c75 (patch)
tree8fe27700e521e70a538ba114ccc86f984c8cb3c8 /tests/ls/capability
parent00c6aacf318a6ef0db4895b08d572d924eab90d0 (diff)
downloadcoreutils-84f6abfe00b4ab533145623638b417a2221f9c75.tar.xz
ls: --color now highlights files with capabilities, too
* src/ls.c: [HAVE_CAP] Include <sys/capability.h>. (has_capability): New function for capability detection. (print_color_indicator): Colorize file with capability. * m4/jm-macro.m4: New configure option: --disable-libcap. Check for libcap usability. * src/Makefile.am (dir_LDADD, ls_LDADD, ...): Append $(LIB_CAP). * src/dircolors.c: Update color lists. * src/dircolors.hin: Mention new CAPABILITY color attribute. * tests/ls/capability: Test for ls - colorize file with capability. * tests/Makefile.am (root_tests): Add ls/capability. * NEWS: Mention the change.
Diffstat (limited to 'tests/ls/capability')
-rwxr-xr-xtests/ls/capability43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/ls/capability b/tests/ls/capability
new file mode 100755
index 000000000..fcd3c2ad3
--- /dev/null
+++ b/tests/ls/capability
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Ensure "ls --color" properly colorizes file with capability.
+
+# Copyright (C) 2008 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 <http://www.gnu.org/licenses/>.
+
+if test "$VERBOSE" = yes; then
+ set -x
+ ls --version
+fi
+
+. $srcdir/test-lib.sh
+require_root_
+
+(setcap --help) 2>&1 |grep 'usage: setcap' > /dev/null \
+ || skip_test_ "setcap utility not found"
+fail=0
+
+# Don't let a different umask perturb the results.
+umask 22
+
+touch test
+setcap cap_net_bind_service=ep test \
+ || skip_test_ "setcap doesn't work"
+code='30;41'
+LS_COLORS="ca=$code" \
+ ls --color=always test > out || fail=1
+printf "\033[0m\033[${code}mtest\033[0m\n\033[m" > out_ok || fail=1
+compare out out_ok || fail=1
+
+(exit $fail); exit $fail