On Wed, Dec 27 2017, Junio C. Hamano jotted: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >> +status_is_clean() { >> + >../status.expect && >> + git status --porcelain >../status.actual && >> + test_cmp ../status.expect ../status.actual >> +} >> + >> test_lazy_prereq UNTRACKED_CACHE ' >> { git update-index --test-untracked-cache; ret=$?; } && >> test $ret -ne 1 >> @@ -683,4 +689,43 @@ test_expect_success 'untracked cache survives a commit' ' >> test_cmp ../before ../after >> ' >> >> +test_expect_success 'teardown worktree' ' >> + cd .. >> +' > > Funny indentation. Thanks. I'll submit a new series with all 3 patches with the issues you brought up mentioned... >> +test_expect_success 'setup worktree for symlink test' ' >> + git init worktree-symlink && >> + cd worktree-symlink && >> + git config core.untrackedCache true && >> + mkdir one two && >> + touch one/file two/file && >> + git add one/file two/file && >> + git commit -m"first commit" && >> + git rm -rf one && >> + ln -s two one && >> + git add one && >> + git commit -m"second commit" >> +' > > This needs SYMLINKS prereq, which in turn means it cannot be tested > on certain platforms. I thought Duy's answer was that this does not > need to involve a symbolic link at all? If so, perhaps we can have > another test that does not need symlink? ... as soon as I figure out how to add such a non-symlink test as well (seems sensible to test both), but I can't bring it to fail without symlinks, I just adjusted my test script to do this instead: ( rm -rf /tmp/testrepo && git init /tmp/testrepo && cd /tmp/testrepo && mkdir x y && touch x/a y/b && git add x/a y/b && git commit -msnap && git rm -rf y && mkdir y && touch y/c && git add y && git commit -msnap2 && git checkout HEAD~ && git status && git checkout master && sleep 1 && git status && git status ) Duy, what am I missing here?