Avoid -u option to id since solaris doesn't support it.
[rsync/rsync.git] / testsuite / rsync.fns
index e17fe5a..649039d 100644 (file)
@@ -17,7 +17,6 @@
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-
 tmpdir="$scratchdir"
 fromdir="$tmpdir/from"
 todir="$tmpdir/to"
@@ -31,7 +30,7 @@ dots='.....' # trailing dots after changes
 # Berkley's nice.
 PATH="$PATH:/usr/ucb"
 
-if diff -u "$srcdir/testsuite/rsync.fns" "$srcdir/testsuite/rsync.fns" >/dev/null 2>&1; then
+if diff -u "$suitedir/rsync.fns" "$suitedir/rsync.fns" >/dev/null 2>&1; then
     diffopt="-u"
 else
     diffopt="-c"
@@ -100,6 +99,10 @@ rsync_ls_lR() {
     find "$@" -print | sort | sed 's/ /\\ /g' | xargs "$TOOLDIR/tls" $TLS_ARGS
 }
 
+get_testuid() {
+    id 2>/dev/null | sed 's/^[^0-9]*\([0-9][0-9]*\).*/\1/'
+}
+
 check_perms() {
     perms=`"$TOOLDIR/tls" "$1" | sed 's/^[-d]\(.........\).*/\1/'`
     if test $perms = $2; then
@@ -257,6 +260,17 @@ build_rsyncd_conf() {
     logfile="$scratchdir/rsyncd.log"
     hostname=`uname -n`
 
+    uid_setting='uid = 0'
+    gid_setting='gid = 0'
+    case `get_testuid` in
+    0) ;;
+    *)
+       # Non-root cannot specify uid & gid settings
+       uid_setting="#$uid_setting"
+       gid_setting="#$gid_setting"
+       ;;
+    esac
+
     cat >"$conf" <<EOF
 # rsyncd configuration file autogenerated by $0
 
@@ -268,9 +282,9 @@ log file = $logfile
 log format = %i %h [%a] %m (%u) %l %f%L
 transfer logging = yes
 exclude = ? foobar.baz
-max verbosity = 9
-uid = 0
-gid = 0
+max verbosity = 4
+$uid_setting
+$gid_setting
 
 [test-from]
        path = $fromdir