threads / discuss / 12332

t7300 "removal failure" broken on Windows

Subject: t7300 "removal failure" broken on Windows

## tl;dr

2 messages between Feb 26, 2008 and Mar 3, 2008.

replies: 1people: 1as markdown or json

Alex Riesen· Feb 26, 2008, 20:22 UTC · lore
Just a heads-up.

The test is fails because it uses "chmod 0" to enforce an error while deleting files by "git clean -f -d". This does not work on windows, because the directories even without write permission on them can be freely modified (the contained names can be removed). Maybe even the removal of list permission does not mean a thing either to cygwin or windows (that last one being more likely the case: it is more wrong).

So git-clean succeeds and the test fails.
It probably can be worked around by opening the file and keeping it open.
The patch below may fix it (haven't tested yet).
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index 3840364..85341af 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -320,6 +320,7 @@ test_expect_success 'removal failure' '
 
 	mkdir foo &&
 	touch foo/bar &&
+	exec <foo/bar &&
 	chmod 0 foo &&
 	! git clean -f -d
 
Alex Riesen· Mar 3, 2008, 23:48 UTC · re: Alex Riesen · lore

[PATCH] Fix test for cleanup failure in t7300 on Windows

Keep the file open to: the OS does not allow removal of open files. The saner systems just have a saner permission model and chmod 0 is enough for the test.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
Alex Riesen, Tue, Feb 26, 2008 21:22:27 +0100:
Show 15 quoted lines
> Just a heads-up.
> 
> The test is fails because it uses "chmod 0" to enforce an error while
> deleting files by "git clean -f -d". This does not work on windows,
> because the directories even without write permission on them can be
> freely modified (the contained names can be removed). Maybe even the
> removal of list permission does not mean a thing either to cygwin or
> windows (that last one being more likely the case: it is more wrong).
> 
> So git-clean succeeds and the test fails.
> 
> It probably can be worked around by opening the file and keeping it open.
> 
> The patch below may fix it (haven't tested yet).
> 
It is tested now.
 t/t7300-clean.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index 3840364..4037142 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -320,8 +320,9 @@ test_expect_success 'removal failure' '
 
 	mkdir foo &&
 	touch foo/bar &&
+	exec <foo/bar &&
 	chmod 0 foo &&
-	! git clean -f -d
+	test_must_fail git clean -f -d
 
 '
 chmod 755 foo
-- 
1.5.4.3.469.gf84e2

← back to recent threads