# [PATCH] fix flaky untracked-cache test

5 messages from 2015-10-19 to 2015-10-21. Participants: David Turner, Torsten Bögershausen, Duy Nguyen, Lars Schneider.
Thread: https://gitlist.dev/t/40592

## David Turner, 2015-10-19 19:48

Subject: [PATCH] fix flaky untracked-cache test
Message-ID: <1445284095-6602-1-git-send-email-dturner@twopensource.com>
URL: https://gitlist.dev/e/1445284095-6602-1-git-send-email-dturner%40twopensource.com

```
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

```

## Torsten Bögershausen, 2015-10-21 05:42

Subject: Re: [PATCH] fix flaky untracked-cache test
Message-ID: <562725AC.9090500@web.de>
URL: https://gitlist.dev/e/562725AC.9090500%40web.de
In-Reply-To: <1445284095-6602-1-git-send-email-dturner@twopensource.com>

```
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, 2015-10-21 16:32

Subject: Re: [PATCH] fix flaky untracked-cache test
Message-ID: <1445445153.8302.5.camel@twopensource.com>
URL: https://gitlist.dev/e/1445445153.8302.5.camel%40twopensource.com
In-Reply-To: <562725AC.9090500@web.de>

```
On Wed, 2015-10-21 at 07:42 +0200, Torsten Bögershausen wrote:
> 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, 2015-10-21 20:25

Subject: Re: [PATCH] fix flaky untracked-cache test
Message-ID: <CACsJy8BRFvD=kVH6-W1j+PgHdNYCmuwrKXTADmHG=AQPv9GUUA@mail.gmail.com>
URL: https://gitlist.dev/e/CACsJy8BRFvD%3DkVH6-W1j%2BPgHdNYCmuwrKXTADmHG%3DAQPv9GUUA%40mail.gmail.com
In-Reply-To: <1445284095-6602-1-git-send-email-dturner@twopensource.com>

```
On Mon, Oct 19, 2015 at 9:48 PM, David Turner <dturner@twopensource.com> wrote:
> 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, 2015-10-21 22:47

Subject: Re: [PATCH] fix flaky untracked-cache test
Message-ID: <B454F5BF-A18E-4D36-9B97-F7D51DC48EB0@gmail.com>
URL: https://gitlist.dev/e/B454F5BF-A18E-4D36-9B97-F7D51DC48EB0%40gmail.com
In-Reply-To: <1445284095-6602-1-git-send-email-dturner@twopensource.com>

```
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:

> 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
> 

```
