The command line sed -i -e "s/foo/bar/" filename works as expected under GNU/Linux: all "foo" are replaced by "bar" in the file "filename" sed on other systems like e.g. Mac OS X creates a backup file called filename-e, because the -i must be followed by a file name. As the -i is not in POSIX either, avoid it completely Improve check_end_tree() and check_end_full_tree() to use test_cmp, and use the && between each line. Signed-off-by: Torsten Bögershausen <tboegi@xxxxxx> --- This must be applied on peff/pu t/t9402-git-cvsserver-refs.sh | 44 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh index 858ef0f..5138f14 100755 --- a/t/t9402-git-cvsserver-refs.sh +++ b/t/t9402-git-cvsserver-refs.sh @@ -28,27 +28,26 @@ check_file() { } check_end_tree() { - sandbox="$1" - expectCount=$(wc -l < "$WORKDIR/check.list") - cvsCount=$(find "$sandbox" -name CVS -prune -o -type f -print | wc -l) - test x"$cvsCount" = x"$expectCount" - stat=$? - echo "check_end $sandbox : $stat cvs=$cvsCount expect=$expectCount" \ - >> "$WORKDIR/check.log" - return $stat + sandbox="$1" && + wc -l < "$WORKDIR/check.list" > expected && + find "$sandbox" -type f | grep -v "/CVS" > "$WORKDIR/check.cvsCount" && + wc -l < "$WORKDIR/check.cvsCount" >actual && + test_cmp expected actual && + rm expected actual && + sort < "$WORKDIR/check.list" > expected && + sort < "$WORKDIR/check.cvsCount" | sed -e "s%cvswork/%%" >actual && + test_cmp expected actual && + rm expected actual } check_end_full_tree() { - sandbox="$1" - ver="$2" - expectCount=$(wc -l < "$WORKDIR/check.list") - cvsCount=$(find "$sandbox" -name CVS -prune -o -type f -print | wc -l) - gitCount=$(git ls-tree -r "$2" | wc -l) - test x"$cvsCount" = x"$expectCount" -a x"$gitCount" = x"$expectCount" - stat=$? - echo "check_end $sandbox : $stat cvs=$cvsCount git=$gitCount expect=$expectCount" \ - >> "$WORKDIR/check.log" - return $stat + sandbox="$1" && + sort < "$WORKDIR/check.list" >expected && + find "$sandbox" -name CVS -prune -o -type f -print | sed -e "s%$sandbox/%%" | sort >act1 && + test_cmp expected act1 && + git ls-tree -r "$2" | sed -e "s/^.*blob [0-9a-fA-F]*[ ]*//" | sort > act2 && + test_cmp expected act2 && + rm expected act1 act2 } ######### @@ -155,7 +154,8 @@ test_expect_success 'cvs co b1 [cvswork3]' ' test_expect_success 'edit cvswork3 and save diff' ' ( cd cvswork3 && - sed -i -e "s/line1/line1 - data/" adir/afile && + sed -e "s/line1/line1 - data/" adir/afile >adir/afileNEW && + mv -f adir/afileNEW adir/afile && echo "afile5" > adir/afile5 && rm t2 && cvs -f add adir/afile5 && @@ -168,7 +168,8 @@ test_expect_success 'setup v1.2 on b1' ' git checkout b1 && echo "new v1.2" > t3 && rm t2 && - sed -i -e "s/line3/line3 - more data/" adir/afile && + sed -e "s/line3/line3 - more data/" adir/afile >adir/afileNEW && + mv -f adir/afileNEW adir/afile && rm adir/a2file && echo "a3file" >> adir/a3file && echo "bfile line 3" >> adir/bdir/bfile && @@ -300,7 +301,8 @@ test_expect_success 'root dir rm file [cvswork2]' ' test_expect_success 'subdir edit/add/rm files [cvswork2' ' ( cd cvswork2 && - sed -i -e "s/line 1/line 1 (v2)/" adir/bdir/bfile && + sed -e "s/line 1/line 1 (v2)/" adir/bdir/bfile >adir/bdir/bfileNEW && + mv -f adir/bdir/bfileNEW adir/bdir/bfile && rm adir/bdir/b2file && cd adir && cvs -f rm bdir/b2file && -- 1.7.12 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html