Re: [PATCH v6 9/9] status: unit tests for --porcelain=v2
flat view
From: Junio C Hamano <hidden>
Date: 2016-08-11 18:36:54
Jeff Hostetler [off-list ref] writes:
quoted hunk
From: Jeff Hostetler <redacted> Test porcelain v2 status format. Signed-off-by: Jeff Hostetler <redacted> --- t/t7064-wtstatus-pv2.sh | 576 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 576 insertions(+) create mode 100755 t/t7064-wtstatus-pv2.shdiff --git a/t/t7064-wtstatus-pv2.sh b/t/t7064-wtstatus-pv2.sh new file mode 100755 index 0000000..44a8671 --- /dev/null +++ b/t/t7064-wtstatus-pv2.sh@@ -0,0 +1,576 @@ +#!/bin/sh + +test_description='git status --porcelain=v2 + +This test exercises porcelain V2 output for git status.'
A general comment on the titles; with retitling of individual tests, the result has become a lot easier to understand. I know coming up with a short and to-the-point description for them is hard, but that is effort and time well spent and it shows in the result. Thanks.
quoted hunk
+. ./test-lib.sh + +OID_EMPTY=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
It seems that test-lib.sh these days has EMPTY_BLOB defined for your use. You can remove this and replace its use (just two lines) with $EMPTY_BLOB down in the "add -N" test.
quoted hunk
+test_expect_success setup ' + test_tick && + git config --local core.autocrlf false &&
I'd suggest removing "--local". Existing use of "git config" in the test suite, unless their use is about testing "git config" itself to validate the operation of the --local/--global/--system options, do not seem to explicitly say "--local", which is the default anyway.
+test_expect_success 'after first commit, make dirt, confirm unstaged changes' '
Did you mean s/dirt/dirty/? "make and confirm unstaged changes" would be sufficient. Because "confirming" is implicit (as these are all tests), "after the first commit, modify working tree files" might even be better, perhaps?
quoted hunk
+ echo x >>file_x && + OID_X1=$(git hash-object -t blob -- file_x) && + rm file_z && + H0=$(git rev-parse HEAD) && + ...
+test_expect_success 'after first commit, stage dirt, confirm staged changes' '
What you "git add" is meant to be good changes, so they are no longer dirt ;-) More importantly, because I never heard of "dirt" used in Git context, it is unclear if it is an untracked file, a modification that is not meant to be committed immediately, or what. "after the first commit, fully add changes to the index"?
quoted hunk
+ git add file_x && + git rm file_z && + H0=$(git rev-parse HEAD) && + + cat >expect <<-EOF && + # branch.oid $H0 + # branch.head master + 1 M. N... 100644 100644 100644 $OID_X $OID_X1 file_x + 1 D. N... 100644 000000 000000 $OID_Z $_z40 file_z + ? actual + ? expect + EOF
quoted hunk
+test_expect_success 'after first commit, also stage rename, confirm 2 path line format' ' + git mv file_y renamed_y && + H0=$(git rev-parse HEAD) && + + q_to_tab >expect <<-EOF && + # branch.oid $H0 + # branch.head master + 1 M. N... 100644 100644 100644 $OID_X $OID_X1 file_x + 1 D. N... 100644 000000 000000 $OID_Z $_z40 file_z + 2 R. N... 100644 100644 100644 $OID_Y $OID_Y R100 renamed_yQfile_y + ? actual + ? expect + EOF + + git status --porcelain=v2 --branch --untracked-files=all >actual && + test_cmp expect actual +'
Do we want to test -z format on this, too?
... +test_expect_success 'create ignored files, confirm they are not printed' ' +test_expect_success 'create ignored files, confirm --ignored prints them' ' ...
These are all good and readably titled.
quoted hunk
+test_expect_success 'verify upstream fields in branch header' ' + git checkout master && + test_when_finished rm -rf sub_repo &&
Forgot to quote?