Mercurial > hg > octave-kai > gnulib-hg
changeset 11551:957a85702f2b
Fix test-file-has-acl on FreeBSD.
author | David Bartley <dtbartle@csclub.uwaterloo.ca> |
---|---|
date | Mon, 04 May 2009 12:19:25 +0200 |
parents | f63675629e00 |
children | a12fc7e93275 |
files | ChangeLog modules/acl-tests tests/test-file-has-acl.c tests/test-file-has-acl.sh |
diffstat | 4 files changed, 28 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-05-04 David Bartley <dtbartle@csclub.uwaterloo.ca> + Bruno Haible <bruno@clisp.org> + + Fix test-file-has-acl on FreeBSD. + * tests/test-file-has-acl.sh: Also test a directory. On FreeBSD, the + mask is implicitly added. + * tests/test-file-has-acl.c: Include <signal.h>. + (main): Terminate the test after 5 seconds. + * modules/acl-tests (configure.ac): Check for alarm function. + 2009-05-04 Bruno Haible <bruno@clisp.org> Exploit new semantics of AC_DEFUN_ONCE available since 2009-01-26.
--- a/modules/acl-tests +++ b/modules/acl-tests @@ -14,6 +14,7 @@ xalloc configure.ac: +AC_CHECK_DECLS_ONCE([alarm]) Makefile.am: TESTS += test-file-has-acl.sh test-set-mode-acl.sh test-copy-acl.sh
--- a/tests/test-file-has-acl.c +++ b/tests/test-file-has-acl.c @@ -1,5 +1,5 @@ /* Test for presence of ACL. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2009 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 @@ -20,6 +20,7 @@ #include "acl.h" +#include <signal.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -54,6 +55,14 @@ exit (EXIT_FAILURE); } + /* Check against possible infinite loop in file_has_acl. */ +#if HAVE_DECL_ALARM + /* Declare failure if test takes too long, by using default abort + caused by SIGALRM. */ + signal (SIGALRM, SIG_DFL); + alarm (5); +#endif + #if USE_ACL { int ret = file_has_acl (file, &statbuf);
--- a/tests/test-file-has-acl.sh +++ b/tests/test-file-has-acl.sh @@ -183,6 +183,9 @@ func_test_has_acl tmpfile0 no + mkdir tmpdir0 + func_test_has_acl tmpdir0 no + if test $acl_flavor != none; then # Use a user and group id different from the current one, to avoid # redundant/ambiguous ACLs. @@ -208,11 +211,11 @@ *) setfacl -d user:$auid:1 tmpfile0 ;; esac - # On Linux, the ACL for the mask is implicitly added. + # On Linux and FreeBSD, the ACL for the mask is implicitly added. # On Solaris, it is always there. case $acl_flavor in - linux) func_test_has_acl tmpfile0 yes ;; - *) func_test_has_acl tmpfile0 no ;; + linux | freebsd) func_test_has_acl tmpfile0 yes ;; + *) func_test_has_acl tmpfile0 no ;; esac # Remove the ACL for the mask, if it was implicitly added. @@ -328,6 +331,7 @@ fi rm -f tmpfile[0-9] tmp.err + rm -rf tmpdir0 ) || exit 1 rm -rf "$tmp"