Set umask so that symlinks will have the right permissions on BSD.
[rsync/rsync.git] / testsuite / rsync.fns
index 8452853..811c9ba 100644 (file)
@@ -20,10 +20,26 @@ printmsg() {
     echo "$1"
 }
 
+
+####################
+# Build test directories TO and FROM, with FROM full of files.
+
 hands_setup() {
     [ -d $FROM ] || mkdir $FROM
     [ -d $TO ] || mkdir $TO
 
+    # On some BSD systems, the umask affects the mode of created
+    # symlinks, even though the mode apparently has no effect on how
+    # the links behave in the future, and it cannot be changed using
+    # chmod!  rsync always sets its umask to 000 so that it can
+    # accurately recreate permissions, but this script is probably run
+    # with a different umask. 
+
+    # This causes a little problem that "ls -l" of the two will not be
+    # the same.  So, we need to set our umask before doing any creations.
+
+    umask 0
+
     # set up test data
     touch ${FROM}/empty
     mkdir ${FROM}/emptydir
@@ -42,9 +58,12 @@ hands_setup() {
     ls -ltr /etc > ${FROM}/dir/subdir/subsubdir/etc-ltr-list
     mkdir ${FROM}/dir/subdir/subsubdir2
     ls -lt /bin > ${FROM}/dir/subdir/subsubdir2/bin-lt-list
+
+    umask 077
 }
 
 
+
 ###########################
 # Run a test (in '$1') then compare directories $2 and $3 to see if
 # there are any difference.  If there are, explain them.
@@ -101,7 +120,7 @@ checkforlogs() {
 }
 
 
-function build_rsyncd_conf {
+build_rsyncd_conf() {
     # Build an appropriate configuration file
     conf="$scratchdir/test-rsyncd.conf"
     echo "building configuration $conf"
@@ -127,19 +146,3 @@ EOF
 }
 
 
-
-function start_rsyncd {
-    echo starting daemon
-    $rsync_bin --daemon --port $port --config $conf
-    sleep 2
-    pid=`cat "$pidfile"`
-    echo rsyncd running as process $pid
-
-
-    # We need to make sure that we always kill rsync, even if there's an
-    # error.  Otherwise it might hang around, and be insecure or at any
-    # rate keep the port bound and prevent the tests running in the
-    # future.
-
-    trap "echo killing off process $pid; kill $pid" EXIT
-}