Commit Graph

245 Commits

Author SHA1 Message Date
Jim Meyering
df0beae1eb Adjust chgrp, chmod, chown, cp tests to use test-lib.sh.
* tests/check.mk: Also define abs_top_builddir.
2007-09-15 08:40:38 +02:00
Jim Meyering
500eccdbe4 chmod: don't ignore a dangling symlink
* NEWS: Mention the bug fix.
* src/chmod.c (process_file): Handle the case of FTS_SLNONE,
i.e., give a diagnostic saying we cannot operate on such a file.
* tests/chmod/thru-dangling: Compare new stderr output with expected.
2007-09-07 10:45:22 +02:00
Bob Proulx
e70487cda7 Add a test: demonstrate that chmod ignores a dangling symlink
* tests/chmod/thru-dangling: New test.  Fails.
* tests/chmod/Makefile.am (TESTS): Add thru-dangling.
2007-09-07 10:31:14 +02:00
Jim Meyering
6e3e819f4b Remove all .cvsignore files from version control. 2007-08-25 00:27:11 +02:00
Jim Meyering
674ea8b2dc Adjust the other two "no-x" tests and unify all three.
* tests/du/no-x: Factor out du-specific bits.
* tests/chmod/no-x: Use the same code.
* tests/chgrp/no-x: Use the same code.
2007-08-02 19:27:07 +02:00
Jim Meyering
71aa3ea880 Update all copyright notices to use the newer form. 2007-07-23 14:35:58 +02:00
Jim Meyering
33342c1a0a Change "version 2" to "version 3" in all copyright notices. 2007-07-10 13:35:56 +02:00
Jim Meyering
3ea540c757 ls: Add support for SELinux and a slightly modified -Z option.
I started with the patches from Red Hat.
The entries below tell how the code evolved.

* src/ls.c (print_long_format, print_file_name_and_frills): When
there is no security context (due to getfilecon/lgetfilecon failing
with e.g. ENOTSUP), print it as "?", not "".
* src/ls.c (print_file_name_and_frills): Make -Z work without -l.
(length_of_file_name_and_frills): Likewise.

* src/ls.c: Remove the --lcontext and --scontext options.
Change the way -Z, --context work so that it no longer implies -l.
Thus, -Z -l will work like -lcontext and -Z without -l will work
like --scontext.

Adjust tests to reflect new 'ls -l' syntax -- affects only
systems with SELinux when operating on a file with no ACL.
These tests assumed that everything before the first space on
each line is the 10-byte mode string.  But there may also be a "+"
in the 11th column, just before the space.  However, note that this
is not new.  The same thing would have happened even without the
change below, when listing a file with an ACL.
* tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm:
* tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod:
* tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm:

Don't make compilation depend on USE_ACL.  An SELinux security
context counts as an "alternate access control method", so ls
must output a "+" for each file with a security context.
* src/ls.c [struct fileinfo] (have_acl): Declare unconditionally.
(FILE_HAS_ACL): Remove macro definition.  Use f->have_acl directly.
(gobble_file): Record whether a file has a security context, and
update the condition used to determine whether to print the "+".
(gobble_file): Call getfilecon/lgetfilecon also when
format == long_format, so that we get the "+".

* src/ls.c (gobble_file): Add a comment explaining why (with a
security context option) ls doesn't exit nonzero due to e.g.,
getfilecon failing with errno == ENOTSUP.

* src/ls.c (gobble_file): Ignore failure of getfilecon if it's due
to ENOTSUP.

* src/ls.c (gobble_file): Factor out three small blocks using
getfilecon and lgetfilecon.
Don't ignore return value from getfilecon and lgetfilecon.

* src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C
ternary operator).
(print_scontext_format): Likewise.
(print_scontext): Declare to be "bool", not int.  Adjust uses.

* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX).

* tests/misc/chcon: New file.
* tests/misc/chcon-fail: New file.
* tests/Makefile.am (check-root): Run new, root-only misc/chcon test.
* tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail.

* tests/misc/Makefile.am (TESTS): Add selinux.
* tests/misc/selinux: New file.
* tests/help-version: Skip chcon.
2007-03-29 21:37:05 +02:00
Jim Meyering
e98137ddd4 Remove the "gnits" option; it prohibits my using "+" as a version
string suffix, and all it does (beyond the default "gnu" option)
is to _require_ the THANKS file.
* configure.ac (AM_INIT_AUTOMAKE): Remove it.

Remove all AUTOMAKE_OPTIONS settings in Makefile.am files.
* tests/chgrp/Makefile.am, tests/chmod/Makefile.am:
* tests/chown/Makefile.am, tests/cp/Makefile.am:
* tests/du/Makefile.am, tests/expr/Makefile.am:
* tests/factor/Makefile.am, tests/general/Makefile.am:
* tests/install/Makefile.am, tests/ln/Makefile.am:
* tests/ls/Makefile.am, tests/mkdir/Makefile.am:
* tests/mv/Makefile.am, tests/readlink/Makefile.am:
* tests/rm/Makefile.am, tests/rmdir/Makefile.am:
* tests/seq/Makefile.am, tests/stty/Makefile.am:
* tests/tee/Makefile.am, tests/touch/Makefile.am:
2007-02-24 13:57:51 +01:00
Jim Meyering
9c88531fb0 Put CU_TEST_NAME in the environment for each test run by "make check".
* Transform all Makefile.am files so that when running "make check",
CU_TEST_NAME is set to the name of the test.  This is so that when I
run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check"
on the entire package it is more convenient to map a leak or error
found in a valgrind log file back to the offending test.
Use this command:
(echo tests/Makefile.am.in; find tests -name Makefile.am) \
 |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \
   -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"'
2007-01-13 11:32:19 +01:00
Jim Meyering
c24e93d926 du would exit early, when encountering an inaccessible directory
Reported by Mike Frysinger, in
http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831
* tests/du/inacc-dest: New test, based on an example from Mike Frysinger.
* tests/chgrp/no-x: Remove the "fts_read failed: ..."
diagnostic from the expected output when using native fdopendir.
* tests/chmod/no-x: Likewise.
* tests/du/no-x: Likewise.
2006-11-12 18:42:24 +01:00
Jim Meyering
b40b5b6917 Avoid a shell bug in Tru64 4.0 sh's handling of double-quoted strings.
[patch by Paul Eggert]

* tests/chmod/c-option: When double-quoting part of a word, prefer
to double-quote the whole word.  This is a bit easier to read (at
least for me), and in some cases it avoids a shell bug with Tru64
4.0 sh reported by Nelson H. F. Beebe.  For example, instead of
"$abs_srcdir"/../setgid-check we now write
"$abs_srcdir/../setgid-check".

* tests/cp/cp-parents: Likewise.
* tests/du/inaccessible-cwd: Likewise.
* tests/du/long-from-unreadable: Likewise.
* tests/install/basic-1: Likewise.
* tests/install/trap: Likewise.
* tests/misc/close-stdout: Likewise.
* tests/mkdir/concurrent-1: Likewise.
* tests/mkdir/p-1: Likewise.
* tests/mkdir/p-3: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
* tests/readlink/can-e: Likewise.
* tests/readlink/can-f: Likewise.
* tests/readlink/can-m: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/unread3: Likewise.
* tests/touch/no-create-missing: Likewise.

* lib/.cvsignore: Add uinttostr.c.
2006-10-26 11:03:30 +02:00
Jim Meyering
9b34202141 * tests/chmod/c-option: Double-quote instances of `$abs_srcdir'.
* tests/cp/cp-parents: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
2006-10-22 22:12:13 +02:00
Jim Meyering
2457af43cf * tests/sample-test: Quote variables containing absolute build
tree paths.  In the cleanup trap, make sure `cd' succeeds before
`chmod'ing and `rm'ing the temporary files.
* tests/chgrp/basic: Likewise.
* tests/chgrp/deref: Likewise.
* tests/chgrp/no-x: Likewise.
* tests/chgrp/posix-H: Likewise.
* tests/chgrp/recurse: Likewise.
* tests/chmod/c-option: Likewise.
* tests/chmod/equal-x: Likewise.
* tests/chmod/equals: Likewise.
* tests/chmod/inaccessible: Likewise.
* tests/chmod/no-x: Likewise.
* tests/chmod/octal: Likewise.
* tests/chmod/setgid: Likewise.
* tests/chmod/umask-x: Likewise.
* tests/chmod/usage: Likewise.
* tests/chown/basic: Likewise.
* tests/chown/deref: Likewise.
* tests/chown/separator: Likewise.
* tests/cp/acl: Likewise.
* tests/cp/backup-1: Likewise.
* tests/cp/backup-dir: Likewise.
* tests/cp/backup-is-src: Likewise.
* tests/cp/cp-HL: Likewise.
* tests/cp/cp-deref: Likewise.
* tests/cp/cp-i: Likewise.
* tests/cp/cp-mv-backup: Likewise.
* tests/cp/cp-parents: Likewise.
* tests/cp/deref-slink: Likewise.
* tests/cp/dir-rm-dest: Likewise.
* tests/cp/dir-slash: Likewise.
* tests/cp/dir-vs-file: Likewise.
* tests/cp/fail-perm: Likewise.
* tests/cp/into-self: Likewise.
* tests/cp/link: Likewise.
* tests/cp/link-no-deref: Likewise.
* tests/cp/link-preserve: Likewise.
* tests/cp/no-deref-link1: Likewise.
* tests/cp/no-deref-link2: Likewise.
* tests/cp/no-deref-link3: Likewise.
* tests/cp/perm: Likewise.
* tests/cp/preserve-2: Likewise.
* tests/cp/r-vs-symlink: Likewise.
* tests/cp/same-file: Likewise.
* tests/cp/slink-2-slink: Likewise.
* tests/cp/sparse: Likewise.
* tests/cp/special-bits: Likewise.
* tests/cp/src-base-dot: Likewise.
* tests/cp/symlink-slash: Likewise.
* tests/dd/not-rewound: Likewise.
* tests/dd/skip-seek2: Likewise.
* tests/dd/unblock-sync: Likewise.
* tests/du/2g: Likewise.
* tests/du/8gb: Likewise.
* tests/du/basic: Likewise.
* tests/du/deref: Likewise.
* tests/du/deref-args: Likewise.
* tests/du/exclude: Likewise.
* tests/du/fd-leak: Likewise.
* tests/du/hard-link: Likewise.
* tests/du/inaccessible-cwd: Likewise.
* tests/du/long-from-unreadable: Likewise.
* tests/du/long-sloop: Likewise.
* tests/du/no-deref: Likewise.
* tests/du/no-x: Likewise.
* tests/du/restore-wd: Likewise.
* tests/du/slash: Likewise.
* tests/du/slink: Likewise.
* tests/du/trailing-slash: Likewise.
* tests/du/two-args: Likewise.
* tests/fmt/long-line: Likewise.
* tests/install/basic-1: Likewise.
* tests/install/create-leading: Likewise.
* tests/install/d-slashdot: Likewise.
* tests/install/trap: Likewise.
* tests/ln/misc: Likewise.
* tests/ln/target-1: Likewise.
* tests/ls/color-dtype-dir: Likewise.
* tests/ls/dangle: Likewise.
* tests/ls/dired: Likewise.
* tests/ls/file-type: Likewise.
* tests/ls/follow-slink: Likewise.
* tests/ls/infloop: Likewise.
* tests/ls/inode: Likewise.
* tests/ls/m-option: Likewise.
* tests/ls/no-arg: Likewise.
* tests/ls/recursive: Likewise.
* tests/ls/rt-1: Likewise.
* tests/ls/stat-dtype: Likewise.
* tests/ls/stat-failed: Likewise.
* tests/ls/stat-vs-dirent: Likewise.
* tests/misc/cat-proc: Likewise.
* tests/misc/close-stdout: Likewise.
* tests/misc/csplit: Likewise.
* tests/misc/date-sec: Likewise.
* tests/misc/false-status: Likewise.
* tests/misc/head-c: Likewise.
* tests/misc/head-pos: Likewise.
* tests/misc/mknod: Likewise.
* tests/misc/nl: Likewise.
* tests/misc/nohup: Likewise.
* tests/misc/pathchk1: Likewise.
* tests/misc/printf: Likewise.
* tests/misc/printf-hex: Likewise.
* tests/misc/pwd-long: Likewise.
* tests/misc/shuf: Likewise.
* tests/misc/sort-rand: Likewise.
* tests/misc/split-a: Likewise.
* tests/misc/split-fail: Likewise.
* tests/misc/split-l: Likewise.
* tests/misc/stat-fmt: Likewise.
* tests/misc/tac-continue: Likewise.
* tests/misc/wc-files0: Likewise.
* tests/mkdir/concurrent-1: Likewise.
* tests/mkdir/p-1: Likewise.
* tests/mkdir/p-2: Likewise.
* tests/mkdir/p-3: Likewise.
* tests/mkdir/p-slashdot: Likewise.
* tests/mkdir/p-thru-slink: Likewise.
* tests/mkdir/p-v: Likewise.
* tests/mkdir/parents: Likewise.
* tests/mkdir/perm: Likewise.
* tests/mkdir/t-slash: Likewise.
* tests/mv/acl: Likewise.
* tests/mv/atomic: Likewise.
* tests/mv/backup-dir: Likewise.
* tests/mv/childproof: Likewise.
* tests/mv/diag: Likewise.
* tests/mv/dir-file: Likewise.
* tests/mv/dir2dir: Likewise.
* tests/mv/dup-source: Likewise.
* tests/mv/hard-2: Likewise.
* tests/mv/hard-3: Likewise.
* tests/mv/hard-4: Likewise.
* tests/mv/hard-link-1: Likewise.
* tests/mv/hard-verbose: Likewise.
* tests/mv/i-2: Likewise.
* tests/mv/i-3: Likewise.
* tests/mv/i-4: Likewise.
* tests/mv/i-5: Likewise.
* tests/mv/i-link-no: Likewise.
* tests/mv/into-self-4: Likewise.
* tests/mv/leak-fd: Likewise.
* tests/mv/mv-special-1: Likewise.
* tests/mv/no-target-dir: Likewise.
* tests/mv/part-fail: Likewise.
* tests/mv/part-hardlink: Likewise.
* tests/mv/part-rename: Likewise.
* tests/mv/part-symlink: Likewise.
* tests/mv/partition-perm: Likewise.
* tests/mv/perm-1: Likewise.
* tests/mv/reply-no: Likewise.
* tests/mv/trailing-slash: Likewise.
* tests/mv/update: Likewise.
* tests/od/od-N: Likewise.
* tests/od/x8: Likewise.
* tests/readlink/can-e: Likewise.
* tests/readlink/can-f: Likewise.
* tests/readlink/can-m: Likewise.
* tests/readlink/rl-1: Likewise.
* tests/rm/cycle: Likewise.
* tests/rm/dangling-symlink: Likewise.
* tests/rm/deep-1: Likewise.
* tests/rm/dir-no-w: Likewise.
* tests/rm/dir-nonrecur: Likewise.
* tests/rm/dot-rel: Likewise.
* tests/rm/empty-inacc: Likewise.
* tests/rm/f-1: Likewise.
* tests/rm/fail-2eperm: Likewise.
* tests/rm/hash: Likewise.
* tests/rm/i-1: Likewise.
* tests/rm/i-no-r: Likewise.
* tests/rm/ignorable: Likewise.
* tests/rm/inaccessible: Likewise.
* tests/rm/interactive-always: Likewise.
* tests/rm/interactive-once: Likewise.
* tests/rm/ir-1: Likewise.
* tests/rm/isatty: Likewise.
* tests/rm/no-give-up: Likewise.
* tests/rm/r-1: Likewise.
* tests/rm/r-2: Likewise.
* tests/rm/r-3: Likewise.
* tests/rm/r-4: Likewise.
* tests/rm/readdir-bug: Likewise.
* tests/rm/rm1: Likewise.
* tests/rm/rm2: Likewise.
* tests/rm/rm3: Likewise.
* tests/rm/rm4: Likewise.
* tests/rm/rm5: Likewise.
* tests/rm/sunos-1: Likewise.
* tests/rm/unread2: Likewise.
* tests/rm/unread3: Likewise.
* tests/rmdir/fail-perm: Likewise.
* tests/rmdir/t-slash: Likewise.
* tests/shred/exact: Likewise.
* tests/shred/remove: Likewise.
* tests/sum/sysv: Likewise.
* tests/tail-2/append-only: Likewise.
* tests/tail-2/assert: Likewise.
* tests/tail-2/assert-2: Likewise.
* tests/tail-2/big-4gb: Likewise.
* tests/tail-2/fflush: Likewise.
* tests/tail-2/infloop-1: Likewise.
* tests/tail-2/proc-ksyms: Likewise.
* tests/tail-2/start-middle: Likewise.
* tests/tail-2/tail-n0f: Likewise.
* tests/tee/basic: Likewise.
* tests/tee/dash: Likewise.
* tests/touch/fail-diag: Likewise.
* tests/touch/no-create-missing: Likewise.
* tests/touch/not-owner: Likewise.
* tests/touch/obsolescent: Likewise.
* tests/touch/read-only: Likewise.
* tests/touch/relative: Likewise.
2006-10-22 19:37:31 +02:00
Jim Meyering
396a52f790 * tests/chmod/inaccessible: New test.
* tests/chmod/Makefile.am (TESTS): Add inaccessible.
2006-09-20 12:38:22 +00:00
Paul Eggert
6d124bf98a * aclocal.m4, config.hin, configure:
Remove from CVS, since ./bootstrap generates them automatically.
* .cvsignore: Add INSTALL, Makefile.in, *.cache, *.lineno, *.log.
Remove more-specific entries.  This catches files like configure.lineno.
* man/.cvsignore: Add Makefile.in.
* src/.cvsignore: Add Makefile.in.
Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c.

For .cvsignore file under the tests directory:
Add Makefile.in.  Sort entries if necessary.  Remove *.I, *.E,
*.X, *.O, *-tests, build-script, mk-script if they're never
created in this directory.

* build-aux/.cvsignore: New file.
* doc/.cvsignore: Add Makefile.in, coreutils.html, coreutils.pdf,
coreutils.ps, coreutils.tps.  Remove coreutils.cm (dunno what it
is, but the makefile doesn't mention it).  Remove coreutils.info
as it is subsumed by coreutils.info*.
* lib/.cvsignore: Add Makefile.in, getdate.tab.h.
Remove stat.c, sysexit.h.
* m4/.cvsignore: Remove Makefile, dev-ino.m4, glibc2.m4, intdiv0.m4,
inttypes-h.m4, inttypes-pri.m4, jm-glibc-io.m4, lcmessage.m4,
lock.m4, printf-posix.m4, same-inode.m4, size_max.m4,
uintmax_t.m4, ulonglong.m4, visibility.m4, xsize.m4.  Many of
these are put in automatically by ../bootstrap, but that's a
bootstrap bug that I plan to fix shortly.
* po/.cvsignore: More ../bootstrap-related fixes, plus remove old
cruft.  Add *.po, LINGUAS, Makevars.  Remove *.cat, *.msg,
cat-id-dbl.c, messages.mo, stamp-cat-id.
2006-08-22 18:50:24 +00:00
Paul Eggert
0f7a044109 Remove from CVS, since the bootstrap script generates them automatically. 2006-08-21 07:26:38 +00:00
Jim Meyering
03ffc923e9 . 2006-08-19 19:34:16 +00:00
Paul Eggert
218fa5c61b Add/fix copyright notices and adjust to latest GNU FDL. 2006-08-17 19:58:17 +00:00
Paul Eggert
9842bf8278 * tests/chmod/setgid (abs_srcdir): Remove; not used or needed.
Skip this test if "chmod g+s d" silently does nothing.
2006-08-16 21:58:48 +00:00
Jim Meyering
e5b0d0aa85 . 2006-08-15 12:05:34 +00:00
Paul Eggert
ade68b234a Regenerate. 2006-08-09 23:46:10 +00:00
Paul Eggert
acaeed035b Regenerate. 2006-08-09 20:24:38 +00:00
Paul Eggert
a58ac00556 Regenerate. 2006-07-17 03:52:18 +00:00
Paul Eggert
4d9d2da4a8 Do the setgid test instead of bailing. 2006-07-17 03:11:51 +00:00
Paul Eggert
914c8674a5 Regenerate. 2006-07-09 17:20:26 +00:00
Jim Meyering
ae87c86b4a * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT):
Add $VG_PATH_PREFIX as a prefix to $PATH
2006-07-03 12:55:25 +00:00
Jim Meyering
9980147451 . 2006-05-06 15:52:56 +00:00
Jim Meyering
a35fc49153 . 2006-03-26 12:33:28 +00:00
Jim Meyering
de33c6c49d . 2006-03-12 22:47:35 +00:00
Jim Meyering
3f7e0c2173 . 2006-02-20 13:00:54 +00:00
Jim Meyering
7dabfc7e73 . 2006-01-12 08:40:34 +00:00
Jim Meyering
f26f53be9c Add a test for today's fts.c fix. 2006-01-10 11:52:52 +00:00
Jim Meyering
084903a2b1 . 2006-01-04 21:06:39 +00:00
Jim Meyering
8f0572299a change comment and temp file name: s/openat/fdopendir/ 2006-01-04 16:07:11 +00:00
Jim Meyering
39a400feeb Also allow a slightly different diagnostic -- the
one you get when using openat-enabled fts.c and du (coming soon).
2006-01-03 21:59:02 +00:00
Jim Meyering
1e1938032b . 2005-12-21 10:23:51 +00:00
Jim Meyering
c99e1d2cb6 . 2005-12-17 10:48:30 +00:00
Jim Meyering
049a807bc6 . 2005-12-15 14:47:36 +00:00
Jim Meyering
b3e300393e . 2005-12-03 23:19:58 +00:00
Jim Meyering
66878248f6 . 2005-11-22 15:33:39 +00:00
Jim Meyering
708c4e6682 . 2005-10-23 16:00:59 +00:00
Jim Meyering
c3d97a0aa6 . 2005-10-20 14:30:53 +00:00
Jim Meyering
d87b9dfa10 (TESTS): Add octal. 2005-10-20 14:27:03 +00:00
Jim Meyering
eaecbde30d New file, to exercise today's lib/modechange.c fix. 2005-10-20 14:24:29 +00:00
Jim Meyering
6540422861 Work around the root cause of alpha-linux-1.sf.net test failure.
Remove all files in inner loop.
Otherwise, with a touch program that fails on unwritable files,
(this happens at least on linux-2.2.20) a -w file left behind
from a previous iteration could cause a spurious test failure.
2005-09-26 07:25:23 +00:00
Jim Meyering
c5e9d78786 Undo the s/files/file/ change, but add
comments about why the old version was desired.
2005-09-26 07:20:22 +00:00
Jim Meyering
ae296eb195 Use newer trap and tmpdir-creation framework.
Fix apparent typos (s/files/file/) in inner loop.
2005-09-25 09:58:00 +00:00
Jim Meyering
a40376f4c5 . 2005-09-23 20:14:20 +00:00
Jim Meyering
fc6f1f7f9c . 2005-09-22 09:47:36 +00:00