t/t8007: test textconv support for cat-file
Test the correct functionning of textconv with cat-file <sha1:blob> and cat-file HEAD^ <file>. Test the case when no driver is specified Signed-off-by: Clément Poulain <clement.poulain@ensimag.imag.fr> Signed-off-by: Diane Gasselin <diane.gasselin@ensimag.imag.fr> Signed-off-by: Axel Bonnet <axel.bonnet@ensimag.imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clément Poulain committed
Jun 9, 2010 at 19:02 UTC
34bb92eca4259b3db8cb9bfad5fcac4ff2be139b
1 file changed
+70
t/t8007-cat-file-textconv.sh
new
+70
@@ -0,0 +1,70 @@
1
+#!/bin/sh
2
+
3
+test_description='git cat-file textconv support'
4
+. ./test-lib.sh
5
+
6
+cat >helper <<'EOF'
7
+#!/bin/sh
8
+sed 's/^/converted: /' "$@"
9
+EOF
10
+chmod +x helper
11
+
12
+test_expect_success 'setup ' '
13
+ echo test >one.bin &&
14
+ git add . &&
15
+ GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" &&
16
+ echo test version 2 >one.bin &&
17
+ GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00"
18
+'
19
+
20
+cat >expected <<EOF
21
+fatal: git cat-file --textconv: unable to run textconv on :one.bin
22
+EOF
23
+
24
+test_expect_success 'no filter specified' '
25
+ git cat-file --textconv :one.bin 2>result
26
+ test_cmp expected result
27
+'
28
+
29
+test_expect_success 'setup textconv filters' '
30
+ echo "*.bin diff=test" >.gitattributes &&
31
+ git config diff.test.textconv ./helper &&
32
+ git config diff.test.cachetextconv false
33
+'
34
+
35
+cat >expected <<EOF
36
+test version 2
37
+EOF
38
+
39
+test_expect_success 'cat-file without --textconv' '
40
+ git cat-file blob :one.bin >result &&
41
+ test_cmp expected result
42
+'
43
+
44
+cat >expected <<EOF
45
+test
46
+EOF
47
+
48
+test_expect_success 'cat-file without --textconv on previous commit' '
49
+ git cat-file -p HEAD^:one.bin >result &&
50
+ test_cmp expected result
51
+'
52
+
53
+cat >expected <<EOF
54
+converted: test version 2
55
+EOF
56
+
57
+test_expect_success 'cat-file --textconv on last commit' '
58
+ git cat-file --textconv :one.bin >result &&
59
+ test_cmp expected result
60
+'
61
+
62
+cat >expected <<EOF
63
+converted: test
64
+EOF
65
+
66
+test_expect_success 'cat-file --textconv on previous commit' '
67
+ git cat-file --textconv HEAD^:one.bin >result &&
68
+ test_cmp expected result
69
+'
70
+test_done