diff options
Diffstat (limited to 't/instfail.sh')
-rwxr-xr-x | t/instfail.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/t/instfail.sh b/t/instfail.sh new file mode 100755 index 000000000..1e5a340f7 --- /dev/null +++ b/t/instfail.sh @@ -0,0 +1,95 @@ +#! /bin/sh +# Copyright (C) 2008-2012 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 2, 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/>. + +# The install rule should honor failures of the install program. +# Some of these are already caught by instmany.test. + +# This test has a few sister tests, for java, info, libtool. + +required=cc +. ./defs || Exit 1 + +cat >>configure.ac <<END +AC_PROG_CC +AM_PROG_AR +AC_PROG_RANLIB +AM_PATH_LISPDIR +AC_OUTPUT +END + +cat >Makefile.am <<'END' +bin_PROGRAMS = prog1 prog2 prog3 +nobase_bin_PROGRAMS = progn1 progn2 progn3 +lisp_LISP = lisp1.el lisp2.el lisp3.el +nobase_lisp_LISP = lispn1.el lispn2.el lispn3.el +lib_LIBRARIES = lib1.a lib2.a lib3.a +nobase_lib_LIBRARIES = libn1.a libn2.a libn3.a +unreadable-prog: + chmod a-r prog1$(EXEEXT) +readable-prog: + chmod a+r prog1$(EXEEXT) +unreadable-progn: + chmod a-r progn1$(EXEEXT) +readable-progn: + chmod a+r progn1$(EXEEXT) +END + +for n in 1 2 3; do + echo "int main () { return 0; }" > prog$n.c + echo "int main () { return 0; }" > progn$n.c + echo "int foo$n () { return 0; }" > lib$n.c + echo "int foon$n () { return 0; }" > libn$n.c + echo >lisp$n.el + echo >lispn$n.el +done + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +instdir=`pwd`/inst +./configure --prefix="$instdir" +$MAKE + +$MAKE install +$MAKE uninstall + +for file in lib1.a libn1.a +do + chmod a-r $file + test ! -r $file || skip_ "cannot drop file read permissions" + $MAKE install-exec && Exit 1 + chmod u+r $file +done + +$MAKE unreadable-prog +$MAKE install-exec && Exit 1 +$MAKE readable-prog + +$MAKE unreadable-progn +$MAKE install-exec && Exit 1 +$MAKE readable-progn + +if grep "^EMACS = no" Makefile; then :; else + for file in lisp1.el lisp1.elc + do + chmod a-r $file + $MAKE install-data && Exit 1 + chmod u+r $file + done +fi + +: |