Re: [PATCH v5 04/34] directory rename detection: basic testcases
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Jan 3, 2018, 01:18 UTC
- Message-ID
- <20180103011804.13676-1-szeder.dev@gmail.com>
- In-Reply-To
- <20171228041352.27880-5-newren@gmail.com>
> --- > t/t6043-merge-rename-directories.sh | 430 ++++++++++++++++++++++++++++++++++++
Many of the new tests added in this patch series perform a lot of checks running 'test', which has the drawback to fail quietly, leaving us no clue about which one of the several conditions failed and why. We have several test helper functions that check the same but provide a useful error message if the condition were to fail. Here are a couple of suggestions in one of the tests, but they are applicable to many other tests in this patch series.
Show 12 quoted lines
> +test_expect_failure '1d-check: Directory renames cause a rename/rename(2to1) conflict' ' > + ( > + cd 1d && > + > + git checkout A^0 && > + > + test_must_fail git merge -s recursive B^0 >out && > + test_i18ngrep "CONFLICT (rename/rename)" out && > + > + test 8 -eq $(git ls-files -s | wc -l) && > + test 2 -eq $(git ls-files -u | wc -l) && > + test 3 -eq $(git ls-files -o | wc -l) &&
git ls-files -s >out && test_line_count = 8 out && git ls-files -u >out && test_line_count = 2 out && git ls-files -o >out && test_line_count = 3 out &&
Show 15 quoted lines
> + > + git rev-parse >actual \ > + :0:x/b :0:x/c :0:x/d :0:x/e :0:x/m :0:x/n && > + git rev-parse >expect \ > + O:z/b O:z/c O:y/d O:y/e A:y/m B:z/n && > + test_cmp expect actual && > + > + test_must_fail git rev-parse :0:x/wham && > + git rev-parse >actual \ > + :2:x/wham :3:x/wham && > + git rev-parse >expect \ > + A:y/wham B:z/wham && > + test_cmp expect actual && > + > + test ! -f x/wham &&
This one checks that the given path is not a file, therefore it would succeed if that path were a directory or a FIFO or whatnot. I believe you want to check that the path doesn't exist:
test_path_is_missing x/wham &&
> + test -f x/wham~HEAD && > + test -f x/wham~B^0 &&
test_path_is_file x/wham~HEAD && test_path_is_file x/wham~B^0 &&
Show 8 quoted lines
> + > + git hash-object >actual \ > + x/wham~HEAD x/wham~B^0 && > + git rev-parse >expect \ > + A:y/wham B:z/wham && > + test_cmp expect actual > + ) > +'