threads / patch / 40592

patchfix flaky untracked-cache test

Subject: [PATCH] fix flaky untracked-cache test

## tl;dr

5 messages between Oct 19, 2015 and Oct 21, 2015. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

David Turner· Oct 19, 2015, 19:48 UTC · lore
Dirty the test worktree's root directory, as the test expects.

When testing the untracked-cache, we previously assumed that checking out master would be sufficient to mark the mtime of the worktree's root directory as racily-dirty. But sometimes, the checkout would happen at 12345.999 seconds and the status at 12346.001 seconds, meaning that the worktree's root directory would not be racily-dirty. And since it was not truly dirty, occasionally the test would fail. By making the root truly dirty, the test will always succeed.

Tested by running a few hundred times.
Signed-off-by: David Turner <dturner@twopensource.com>
---
 t/t7063-status-untracked-cache.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Show changes to t/t7063-status-untracked-cache.sh +3 −1
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index 37a24c1..0e8d0d4 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -412,7 +412,9 @@ test_expect_success 'create/modify files, some of which are gitignored' '
 	echo two bis >done/two &&
 	echo three >done/three && # three is gitignored
 	echo four >done/four && # four is gitignored at a higher level
-	echo five >done/five # five is not gitignored
+	echo five >done/five && # five is not gitignored
+	echo test >base && #we need to ensure that the root dir is touched
+	rm base
 '
 
 test_expect_success 'test sparse status with untracked cache' '
-- 
2.4.2.644.g97b850b-twtrsrc
Torsten Bögershausen· Oct 21, 2015, 05:42 UTC · re: David Turner · lore

Re: [PATCH] fix flaky untracked-cache test

On 19.10.15 21:48, David Turner wrote:
> +	echo test >base && #we need to ensure that the root dir is touched
> +	rm base
>  '

Thanks for working on this, (I can run the test as soon as I have access to a Mac with SSD) Minor remark, the echo test can be removed (and may be the comment ?)

> +	>base &&
> +	rm base
>  '
David Turner· Oct 21, 2015, 16:32 UTC · re: Torsten Bögershausen · lore

Re: [PATCH] fix flaky untracked-cache test

On Wed, 2015-10-21 at 07:42 +0200, Torsten Bögershausen wrote:
Show 6 quoted lines
> On 19.10.15 21:48, David Turner wrote:
> 
> > +	echo test >base && #we need to ensure that the root dir is touched
> > +	rm base
> >  '
> Thanks for working on this, (I can run the test as soon as I have access to a Mac with SSD)

I don't think this depends on a Mac (I can repro on my Thinkpad running Ubuntu).

> Minor remark, the echo test can be removed (and may be the comment ?)

All the other lines in this test have echo, so I would rather be consistent.

> > +	>base &&
> > +	rm base
> >  '
Duy Nguyen· Oct 21, 2015, 20:25 UTC · re: David Turner · lore

Re: [PATCH] fix flaky untracked-cache test

On Mon, Oct 19, 2015 at 9:48 PM, David Turner <dturner@twopensource.com> wrote:
Show 9 quoted lines
> Dirty the test worktree's root directory, as the test expects.
>
> When testing the untracked-cache, we previously assumed that checking
> out master would be sufficient to mark the mtime of the worktree's
> root directory as racily-dirty.  But sometimes, the checkout would
> happen at 12345.999 seconds and the status at 12346.001 seconds,
> meaning that the worktree's root directory would not be racily-dirty.
> And since it was not truly dirty, occasionally the test would fail.
> By making the root truly dirty, the test will always succeed.

I'm sorry for my deadly silence lately. I hope it will end in a few weeks. From a quick glance, the description and the change look ok (but don't weigh too much on my opinion).

Back to my silence..
-- 
Duy
Lars Schneider· Oct 21, 2015, 22:47 UTC · re: David Turner · lore

Re: [PATCH] fix flaky untracked-cache test

Looks good to me, Ack.

Test run with 74301d6 + my TravisCI patch: https://travis-ci.org/larsxschneider/git/builds/86702932 ... on Linux it failed in 1/2 cases after 53min ... on OSX it failed in 2/2 cases after 6min

Test run with 74301d6 + my TravisCI patch + David's t7063 patch: https://travis-ci.org/larsxschneider/git/builds/86707133 .. on Linux it failed in 0/2 cases after 77min ...on OSX it failed in 0/2 cases after 48min (no error, CI system timed out, click on the builds to see detailed log output)

Cheers, Lars

On 19 Oct 2015, at 21:48, David Turner <dturner@twopensource.com> wrote:
Show 35 quoted lines
> Dirty the test worktree's root directory, as the test expects.
> 
> When testing the untracked-cache, we previously assumed that checking
> out master would be sufficient to mark the mtime of the worktree's
> root directory as racily-dirty.  But sometimes, the checkout would
> happen at 12345.999 seconds and the status at 12346.001 seconds,
> meaning that the worktree's root directory would not be racily-dirty.
> And since it was not truly dirty, occasionally the test would fail.
> By making the root truly dirty, the test will always succeed.
> 
> Tested by running a few hundred times.
> 
> Signed-off-by: David Turner <dturner@twopensource.com>
> ---
> t/t7063-status-untracked-cache.sh | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
> index 37a24c1..0e8d0d4 100755
> --- a/t/t7063-status-untracked-cache.sh
> +++ b/t/t7063-status-untracked-cache.sh
> @@ -412,7 +412,9 @@ test_expect_success 'create/modify files, some of which are gitignored' '
> 	echo two bis >done/two &&
> 	echo three >done/three && # three is gitignored
> 	echo four >done/four && # four is gitignored at a higher level
> -	echo five >done/five # five is not gitignored
> +	echo five >done/five && # five is not gitignored
> +	echo test >base && #we need to ensure that the root dir is touched
> +	rm base
> '
> 
> test_expect_success 'test sparse status with untracked cache' '
> -- 
> 2.4.2.644.g97b850b-twtrsrc
> 

← back to recent threads