Please refer to commit messages for rationale. This branch is a follow-up for [1] where part of branch was merged into `master` via [2]. Previously in [3] there were some concerns on whether removing copy&pasted tests is good. I still think that yes, it 's a good thing, mostly because of high volume of potential 13*6=78 duplicate tests. Still, I separated this change as last patch, so that the remaining part of the branch can be taken without it. [1] https://lore.kernel.org/git/pull.490.git.1576161385.gitgitgadget@xxxxxxxxx/ [2] https://public-inbox.org/git/pull.445.v4.git.1575381738.gitgitgadget@xxxxxxxxx/ [3] https://lore.kernel.org/git/xmqqwoatcn5u.fsf@xxxxxxxxxxxxxxxxxxxxxxxxx/ Changes since V1 ---------------- Small code formatting changes suggested in V1. Changes since V2 ---------------- Changed \\\\ escaping to use here-doc instead. Changes since V3 ---------------- Slightly improved commit message. Alexandr Miloslavskiy (3): t: fix quotes tests for --pathspec-from-file t: directly test parse_pathspec_file() t: drop copy&pasted tests for --pathspec-from-file Makefile | 1 + t/helper/test-parse-pathspec-file.c | 33 +++++++++ t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/t0067-parse_pathspec_file.sh | 108 ++++++++++++++++++++++++++++ t/t2026-checkout-pathspec-file.sh | 70 +----------------- t/t2072-restore-pathspec-file.sh | 70 +----------------- t/t3704-add-pathspec-file.sh | 70 +----------------- t/t7107-reset-pathspec-file.sh | 79 +++----------------- t/t7526-commit-pathspec-file.sh | 70 +----------------- 10 files changed, 160 insertions(+), 343 deletions(-) create mode 100644 t/helper/test-parse-pathspec-file.c create mode 100755 t/t0067-parse_pathspec_file.sh base-commit: 0a76bd7381ec0dbb7c43776eb6d1ac906bca29e6 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-503%2FSyntevoAlex%2F%230207(git)_2b_test_parse_directly-v4 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-503/SyntevoAlex/#0207(git)_2b_test_parse_directly-v4 Pull-Request: https://github.com/gitgitgadget/git/pull/503 Range-diff vs v3: 1: 88790669ce = 1: ce0c592bb4 t: fix quotes tests for --pathspec-from-file 2: 68925c2712 = 2: 8748f3baf1 t: directly test parse_pathspec_file() 3: f71021b0dd ! 3: d02a1eac0b t: drop copy&pasted tests for --pathspec-from-file @@ -3,9 +3,9 @@ t: drop copy&pasted tests for --pathspec-from-file With direct tests for `parse_pathspec_file()` already in place, it is - not very reasonable to copy&paste 6 tests for `parse_pathspec_file()` - for every git command that uses it (I counted 13 commands that could use - it eventually). + not very reasonable to copy&paste 6 similar indirect tests for every git + command that uses `parse_pathspec_file()`. I counted 13 potential git + commands, which could eventually lead to 6*13=78 duplicate tests. I believe that indirect tests are redundant because I don't expect direct tests to ever disagree with indirect tests. -- gitgitgadget