I messed up when sending v2 (incorrectly used format-patch with --in-reply-to), and v2 didn't get any response. So here's v3 which is just a resend of v2. Original cover letter is at https://lore.kernel.org/git/20230312201520.370234-1-rybak.a.v@xxxxxxxxx/T/#m63071efd1e2f876fdcbd0c384130b0ec7859f885 Changes since v1 address Junio's review: - just don't redirect output of mktree in patch 3/7 Cf. https://lore.kernel.org/git/20230312201520.370234-1-rybak.a.v@xxxxxxxxx/T/#m0c7b88dcf0af59f65262c00f30dee353170c3b2e - rewritten commit message of patch 6/7, where I'd completely misunderstood the code of the tests. Cf. https://lore.kernel.org/git/20230312201520.370234-1-rybak.a.v@xxxxxxxxx/T/#m65f0666a8e94a1d44434dab58ee7002491b13df0 Range diff: 1: 017f1d8173 = 1: 59a868c0b8 t1005: assert output of ls-files 2: 7a75864e00 = 2: a3514687ad t1006: assert error output of cat-file 3: e23a16e560 ! 3: 4cb07fa965 t1010: assert empty output of mktree @@ Metadata Author: Andrei Rybak <rybak.a.v@xxxxxxxxx> ## Commit message ## - t1010: assert empty output of mktree + t1010: don't create unused files Builtin "git mktree" writes the the object name of the tree object built to the standard output. Tests 'mktree refuses to read ls-tree -r output @@ Commit message "t1010-mktree.sh" redirect output of "git mktree" to a file, but don't use its contents in assertions. - Assert that the output of "git mktree" is empty when it refuses to build - a tree object. + Don't redirect output of "git mktree" to file "actual" in tests that + assert that an invocation of "git mktree" must fail. + + Output of "git mktree" is empty when it refuses to build a tree object. + So, alternatively, the test could assert that the output is empty. + However, there isn't a good reason for the user to expect the command to + be silent in such cases, so we shouldn't enforce it. The user shouldn't + use the output of a failing command anyway. Signed-off-by: Andrei Rybak <rybak.a.v@xxxxxxxxx> @@ t/t1010-mktree.sh: test_expect_success 'allow missing object with --missing' ' test_expect_success 'mktree refuses to read ls-tree -r output (1)' ' - test_must_fail git mktree <all >actual -+ test_must_fail git mktree <all >actual && -+ test_must_be_empty actual ++ test_must_fail git mktree <all ' test_expect_success 'mktree refuses to read ls-tree -r output (2)' ' - test_must_fail git mktree <all.withsub >actual -+ test_must_fail git mktree <all.withsub >actual && -+ test_must_be_empty actual ++ test_must_fail git mktree <all.withsub ' test_done 4: 462cfa7025 = 4: 1ed6030a4f t1302: don't create unused file 5: 9fa04e479c = 5: 002942d81c t1400: assert output of update-ref 6: e79566cc32 ! 6: 2e3446fc2f t1404: don't create unused file @@ Commit message Some tests in file t1404-update-ref-errors.sh create file "unchanged" as the expected side for a test_cmp assertion at the end of the test for - output of "git for-each-ref". The filename conveys the expectation that - the output won't change between two invocations of "git for-each-ref". + output of "git for-each-ref". Test 'no bogus intermediate values during + delete' also creates a file named "unchanged" using "git for-each-ref". + However, the file isn't used for any assertions in the test. Instead, + "git rev-parse" is used to compare the reference with variable $D. - Test 'no bogus intermediate values during delete' also creates a file - named "unchanged". However, in this test the reference is being - deleted, i.e. it _does change_. The file itself isn't used for any - assertions in the test. - - Don't create the unused and slightly misleading file "unchanged". + Don't create unused file "unchanged" in test 'no bogus intermediate + values during delete' of t1404-update-ref-errors.sh. Signed-off-by: Andrei Rybak <rybak.a.v@xxxxxxxxx> 7: 5a7df840a8 = 7: e11a7d8e02 t1507: assert output of rev-parse Andrei Rybak (7): t1005: assert output of ls-files t1006: assert error output of cat-file t1010: don't create unused files t1302: don't create unused file t1400: assert output of update-ref t1404: don't create unused file t1507: assert output of rev-parse t/t1005-read-tree-reset.sh | 15 ++++++++++----- t/t1006-cat-file.sh | 3 ++- t/t1010-mktree.sh | 4 ++-- t/t1302-repo-version.sh | 2 +- t/t1400-update-ref.sh | 3 +++ t/t1404-update-ref-errors.sh | 1 - t/t1507-rev-parse-upstream.sh | 6 ++++-- 7 files changed, 22 insertions(+), 12 deletions(-) -- 2.40.0