]> git.ipfire.org Git - thirdparty/git.git/commitdiff
untracked-cache: test untracked-cache-bypassing behavior with -uall
authorTao Klerks <tao@klerks.biz>
Thu, 31 Mar 2022 16:02:14 +0000 (16:02 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Apr 2022 17:16:42 +0000 (10:16 -0700)
Untracked cache was originally designed to only work with
'--untracked-files=normal', and it gets ignored when
'--untracked-files=all' is specified instead.

Add explicit tests for this known as-designed behavior.

Signed-off-by: Tao Klerks <tao@klerks.biz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7063-status-untracked-cache.sh

index ca90ee805e7b3411c6e7c8c5868c3aa2063dba05..b89be8dc6d63e9b9a77ff610ede13607a0dcf468 100755 (executable)
@@ -190,6 +190,38 @@ test_expect_success 'untracked cache after second status' '
        test_cmp ../dump.expect ../actual
 '
 
+cat >../status_uall.expect <<EOF &&
+A  done/one
+A  one
+A  two
+?? dthree/three
+?? dtwo/two
+?? three
+EOF
+
+# Bypassing the untracked cache here is not desirable from an
+# end-user perspective, but is expected in the current design.
+# The untracked cache data stored for a -unormal run cannot be
+# correctly used in a -uall run - it would yield incorrect output.
+test_expect_success 'untracked cache is bypassed with -uall' '
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
+       git status -uall --porcelain >../actual &&
+       iuc status -uall --porcelain >../status.iuc &&
+       test_cmp ../status_uall.expect ../status.iuc &&
+       test_cmp ../status_uall.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
+       cat >../trace.expect <<EOF &&
+ ....path:
+EOF
+       test_cmp ../trace.expect ../trace.relevant
+'
+
+test_expect_success 'untracked cache remains after bypass' '
+       test-tool dump-untracked-cache >../actual &&
+       test_cmp ../dump.expect ../actual
+'
+
 test_expect_success 'modify in root directory, one dir invalidation' '
        : >four &&
        test-tool chmtime =-240 four &&