diff options
Diffstat (limited to 'Build/source/texk/kpathsea/tests/kpseaccess.test')
-rwxr-xr-x | Build/source/texk/kpathsea/tests/kpseaccess.test | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Build/source/texk/kpathsea/tests/kpseaccess.test b/Build/source/texk/kpathsea/tests/kpseaccess.test new file mode 100755 index 00000000000..a1630e6ec8e --- /dev/null +++ b/Build/source/texk/kpathsea/tests/kpseaccess.test @@ -0,0 +1,51 @@ +#! /bin/sh -vx +# $Id$ +# Copyright 2017 Karl Berry <tex-live@tug.org> +# Copyright 2010 Peter Breitenlohner <tex-live@tug.org> +# You may freely use, modify and/or distribute this file. + +ret=0 + +pass () { + echo "***** unexpected success of './kpseaccess $@'" + ret=77 +} + +fail () { + echo "***** unexpected failure of './kpseaccess $@'" + ret=77 +} + +./kpseaccess '' nonesuch && exit 1 +./kpseaccess - nonesuch && exit 1 +./kpseaccess r nonesuch && exit 1 +./kpseaccess w nonesuch && exit 1 +./kpseaccess x nonesuch && exit 1 + +./kpseaccess '' access.o || exit 1 +./kpseaccess - access.o || exit 1 +./kpseaccess rw access.o || exit 1 +# From the access(3p) POSIX manpage: +# If the process has appropriate privileges, an implementation may indicate +# success for X_OK even if none of the execute file permission bits are set. +./kpseaccess x access.o && pass x access.o + +# Testing write access to kpseaccess itself might fail with ETXTBSY. +./kpseaccess rwx kpsewhich || { + fail rwx kpsewhich + ./kpseaccess r kpsewhich || fail r kpsewhich + ./kpseaccess w kpsewhich || fail w kpsewhich + ./kpseaccess x kpsewhich || fail x kpsewhich +} + +./kpseaccess r $srcdir/access.c || exit 1 +./kpseaccess x $srcdir/access.c && pass x $srcdir/access.c + +if ./kpseaccess w $srcdir/access.c; then + echo 'file "$srcdir/access.c" is writable' +else + echo 'file "$srcdir/access.c" is not writable' +fi + +exit $ret + |