#!/bin/sh # make sure `cp -p' preserves special bits # This works only when run as root. # This test would fail due to a bug introduced in 4.0y. # The bug was fixed in 4.0z. if test "$VERBOSE" = yes; then set -x cp --version fi PRIV_CHECK_ARG=require-root . $srcdir/../priv-check pwd=`pwd` t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$ trap 'status=$?; cd $pwd; rm -rf $t0 && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 framework_failure=0 mkdir -p $tmp || framework_failure=1 cd $tmp || framework_failure=1 touch a b || framework_failure=1 chmod u+sx,go= a || framework_failure=1 chmod u=rwx,g=sx,o= b || framework_failure=1 if test $framework_failure = 1; then echo 'failure in testing framework' exit 1 fi fail=0 cp -p a a2 || fail=1 set _ `ls -l a`; shift; p1=$1 set _ `ls -l a2`; shift; p2=$1 test $p1 = $p2 || fail=1 cp -p b b2 || fail=1 set _ `ls -l b`; shift; p1=$1 set _ `ls -l b2`; shift; p2=$1 test $p1 = $p2 || fail=1 (exit $fail); exit $fail