cat-file tests: test messaging on bad objects/paths
Add tests for the output that's emitted when we disambiguate
<obj>:<path> in cat-file. This gives us a baseline for improving these
messages.
For e.g. "git blame" we'll emit:
    $ git blame HEAD:foo
    fatal: no such path 'HEAD:foo' in HEAD
But cat-file doesn't disambiguate these two cases, and just gives the
rather unhelpful:
    $ git cat-file --textconv HEAD:foo
    fatal: Not a valid object name HEAD:foo
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
This commit is contained in:
		 Ævar Arnfjörð Bjarmason
					Ævar Arnfjörð Bjarmason
				
			
				
					committed by
					
						 Junio C Hamano
						Junio C Hamano
					
				
			
			
				
	
			
			
			 Junio C Hamano
						Junio C Hamano
					
				
			
						parent
						
							ddf8420b59
						
					
				
				
					commit
					68c69f90c8
				
			| @ -19,6 +19,48 @@ test_expect_success 'setup ' ' | |||||||
| 	GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" | 	GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" | ||||||
| ' | ' | ||||||
|  |  | ||||||
|  | test_expect_success 'usage: <bad rev>' ' | ||||||
|  | 	cat >expect <<-\EOF && | ||||||
|  | 	fatal: Not a valid object name HEAD2 | ||||||
|  | 	EOF | ||||||
|  | 	test_must_fail git cat-file --textconv HEAD2 2>actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
|  | test_expect_success 'usage: <bad rev>:<bad path>' ' | ||||||
|  | 	cat >expect <<-\EOF && | ||||||
|  | 	fatal: Not a valid object name HEAD2:two.bin | ||||||
|  | 	EOF | ||||||
|  | 	test_must_fail git cat-file --textconv HEAD2:two.bin 2>actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
|  | test_expect_success 'usage: <rev>:<bad path>' ' | ||||||
|  | 	cat >expect <<-\EOF && | ||||||
|  | 	fatal: Not a valid object name HEAD:two.bin | ||||||
|  | 	EOF | ||||||
|  | 	test_must_fail git cat-file --textconv HEAD:two.bin 2>actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | test_expect_success 'usage: <rev> with no <path>' ' | ||||||
|  | 	cat >expect <<-\EOF && | ||||||
|  | 	fatal: git cat-file --textconv HEAD: <object> must be <sha1:path> | ||||||
|  | 	EOF | ||||||
|  | 	test_must_fail git cat-file --textconv HEAD 2>actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | test_expect_success 'usage: <bad rev>:<good (in HEAD) path>' ' | ||||||
|  | 	cat >expect <<-\EOF && | ||||||
|  | 	fatal: Not a valid object name HEAD2:one.bin | ||||||
|  | 	EOF | ||||||
|  | 	test_must_fail git cat-file --textconv HEAD2:one.bin 2>actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
| cat >expected <<EOF | cat >expected <<EOF | ||||||
| bin: test version 2 | bin: test version 2 | ||||||
| EOF | EOF | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user