diff options
Diffstat (limited to 'tests/instfail.test')
-rwxr-xr-x | tests/instfail.test | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/instfail.test b/tests/instfail.test new file mode 100755 index 000000000..a09ca1759 --- /dev/null +++ b/tests/instfail.test @@ -0,0 +1,97 @@ +#! /bin/sh +# 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, 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. + + +# non-root should catch 'chmod a-r'-challenged file systems. +required=non-root +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<END +AC_PROG_CC +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 + +$MAKE unreadable-prog +$MAKE install-exec && Exit 1 +$MAKE readable-prog + +$MAKE unreadable-progn +$MAKE install-exec && Exit 1 +$MAKE readable-progn + +for file in lib1.a libn1.a +do + chmod a-r $file + $MAKE install-exec && Exit 1 + chmod u+r $file +done + +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 + +: |