threads / discuss / 3860

Re: Test fails on ubuntu breezy

Subject: Re: Test fails on ubuntu breezy

## tl;dr

6 messages between Apr 13, 2006 and Apr 15, 2006.

replies: 5people: 3as markdown or json

linux@horizon.com· Apr 13, 2006, 11:54 UTC · lore

I've recently encountered the same problem with t/t3600-rm.sh step 9, but I put it down to compiling as root.

Basically, the chmod of the directory didn't stop the delete from happening, since I had umask 002 and it was g+w.

Anyway, that test is fragile.
Junio C Hamano· Apr 13, 2006, 18:56 UTC · re: linux@horizon.com · lore
linux@horizon.com writes:
Show 7 quoted lines
> I've recently encountered the same problem with t/t3600-rm.sh step 9,
> but I put it down to compiling as root.
>
> Basically, the chmod of the directory didn't stop the delete from
> happening, since I had umask 002 and it was g+w.
>
> Anyway, that test is fragile.

Indeed. I am not sure about test #5, but here is my stab at fixing test #9.

-- >8 -- [PATCH] t3600-rm: skip failed-remove test when we cannot make an unremovable file

When running t3600-rm test under fakeroot (or as root), we cannot make a file unremovable with "chmod a-w .". Detect this case early and skip that test.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index d1947e1..acaa4d6 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -23,6 +23,16 @@ else
     test_tabs=n
 fi
 
+# Later we will try removing an unremovable path to make sure
+# git-rm barfs, but if the test is run as root that cannot be
+# arranged.
+: >test-file
+chmod a-w .
+rm -f test-file
+test -f test-file && test_failed_remove=y
+chmod 775 .
+rm -f test-file
+
 test_expect_success \
     'Pre-check that foo exists and is in index before git-rm foo' \
     '[ -f foo ] && git-ls-files --error-unmatch foo'
@@ -56,12 +66,14 @@ test "$test_tabs" = y && test_expect_suc
     "git-rm -f 'space embedded' 'tab	embedded' 'newline
 embedded'"
 
-if test "$test_tabs" = y; then
-chmod u-w .
+if test "$test_failed_remove" = y; then
+chmod a-w .
 test_expect_failure \
     'Test that "git-rm -f" fails if its rm fails' \
     'git-rm -f baz'
-chmod u+w .
+chmod 775 .
+else
+    test_expect_success 'skipping removal failure (perhaps running as root?)' :
 fi
 
 test_expect_success \
Aneesh Kumar· Apr 15, 2006, 06:47 UTC · re: Junio C Hamano · lore

I am still having failure with the top of the tree. I guess it is because git rm exit with status 0.

kvaneesh@home:/tmp/test$ git rm -f a rm: cannot remove `a': Permission denied kvaneesh@home:/tmp/test$ echo $? 0 kvaneesh@home:/tmp/test$

I am attaching the logs below
-aneesh
Junio C Hamano· Apr 15, 2006, 07:24 UTC · re: Aneesh Kumar · lore
"Aneesh Kumar" <aneesh.kumar@gmail.com> writes:
> I am still having failure with the top of the tree. I guess it is
> because git rm exit with status 0.

Please don't guess, but validate (I know you are capable of doing so).

What I would do to see what is happening would be to do something like the attached patch and re-run the test.

BTW, you did "sh -x t3600-rm.sh" which is very good. I usually do it when debugging hard-to-debug testsuite problem, especially ones which I do not know intimately, written by somebody else, like this:

	sh -x tXXXX-that-test.sh -i
The -i option makes it immediately stop at the first test failure.
-- >8 --
diff --git a/git-rm.sh b/git-rm.sh
index fda4541..622ffca 100755
--- a/git-rm.sh
+++ b/git-rm.sh
@@ -43,6 +43,8 @@ case "$#" in
 	;;
 esac
 
+set -x
+
 if test -f "$GIT_DIR/info/exclude"
 then
 	git-ls-files -z \
Aneesh Kumar· Apr 15, 2006, 15:43 UTC · re: Junio C Hamano · lore
On 4/15/06, Junio C Hamano <junkio@cox.net> wrote:
Show 9 quoted lines
> "Aneesh Kumar" <aneesh.kumar@gmail.com> writes:
>
> > I am still having failure with the top of the tree. I guess it is
> > because git rm exit with status 0.
>
> Please don't guess, but validate (I know you are capable of
> doing so).
>
>

I did :). I sent another mail explaining it is xargs in breezy. I also filed a bug. But they are not going to fix it in breezy. The below is the response i got.

"As Ubuntu Breezy is a released probuct, only security-related fixes are accepted. If you think this fix is important enough, you could discuss the issue with the maintainers of Ubuntu backports, and see if they are interested in making a backport available: "

Right now i am commenting out the test case to build the .deb file.
-aneesh
Aneesh Kumar· Apr 15, 2006, 07:33 UTC · re: Aneesh Kumar · lore
On 4/15/06, Aneesh Kumar <aneesh.kumar@gmail.com> wrote:
Show 8 quoted lines
> I am still having failure with the top of the tree. I guess it is
> because git rm exit with status 0.
>
> kvaneesh@home:/tmp/test$ git rm -f a
> rm: cannot remove `a': Permission denied
> kvaneesh@home:/tmp/test$ echo $?
> 0
>

I think it is xargs kvaneesh@home:/tmp/test$ echo a | xargs rm rm: cannot remove `a': Permission denied kvaneesh@home:/tmp/test$ echo $? 0 kvaneesh@home:/tmp/test$

on ubuntu Dapper it returns 123 status. I will file a bug report against xargs.

-aneesh

← back to recent threads