+
+/*
+Testcase. Run in empty directory.
+
+#!/bin/sh
+t1="/tmp/busybox chown"
+t2="/usr/bin/chown"
+create() {
+ rm -rf $1; mkdir $1
+ (
+ cd $1 || exit 1
+ mkdir dir dir2
+ >up
+ >file
+ >dir/file
+ >dir2/file
+ ln -s dir linkdir
+ ln -s file linkfile
+ ln -s ../up dir/linkup
+ ln -s ../dir2 dir/linkupdir2
+ )
+ chown -R 0:0 $1
+}
+tst() {
+ create test1
+ create test2
+ echo "[$1]" >>test1.out
+ echo "[$1]" >>test2.out
+ (cd test1; $t1 $1) >>test1.out 2>&1
+ (cd test2; $t2 $1) >>test2.out 2>&1
+ (cd test1; ls -lnR) >out1
+ (cd test2; ls -lnR) >out2
+ echo "chown $1" >out.diff
+ if ! diff -u out1 out2 >>out.diff; then exit 1; fi
+ rm out.diff
+}
+tst_for_each() {
+ tst "$1 1:1 file"
+ tst "$1 1:1 dir"
+ tst "$1 1:1 linkdir"
+ tst "$1 1:1 linkfile"
+}
+echo "If script produced 'out.diff' file, then at least one testcase failed"
+>test1.out
+>test2.out
+# These match coreutils 6.8:
+tst_for_each "-v"
+tst_for_each "-vR"
+tst_for_each "-vRP"
+tst_for_each "-vRL"
+tst_for_each "-vRH"
+tst_for_each "-vh"
+tst_for_each "-vhR"
+tst_for_each "-vhRP"
+tst_for_each "-vhRL"
+tst_for_each "-vhRH"
+# Fix `name' in coreutils output
+sed 's/`/'"'"'/g' -i test2.out
+# Compare us with coreutils output
+diff -u test1.out test2.out
+
+*/