chiark / gitweb /
stgit.el: Add "d" for a few diff commands, similar to git.el
[stgit] / t / t1800-import.sh
1 #!/bin/sh
2 # Copyright (c) 2006 Karl Hasselström
3 test_description='Test the import command'
4 . ./test-lib.sh
5
6 test_expect_success \
7     'Initialize the StGIT repository' \
8     '
9     cp ../t1800-import/foo.txt . &&
10     git add foo.txt &&
11     git commit -a -m "initial version" &&
12     stg init
13     '
14
15 test_expect_success \
16     'Apply a patch created with "git diff"' \
17     '
18     stg import ../t1800-import/git-diff &&
19     [ $(git cat-file -p $(stg id) \
20         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
21     stg delete ..
22     '
23
24 test_expect_success \
25     'Apply a patch created with "git diff" from a subdirectory' \
26     '
27     mkdir subdir && cd subdir &&
28     stg import ../../t1800-import/git-diff &&
29     [ $(git cat-file -p $(stg id) \
30         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
31     stg delete .. &&
32     cd ..
33     '
34
35 test_expect_success \
36     'Apply a patch created with GNU diff' \
37     '
38     stg import ../t1800-import/gnu-diff &&
39     [ $(git cat-file -p $(stg id) \
40         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
41     stg delete ..
42     '
43
44 test_expect_success \
45     'Apply a patch created with "stg export"' \
46     '
47     stg import ../t1800-import/stg-export &&
48     [ $(git cat-file -p $(stg id) \
49         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
50     stg delete ..
51     '
52
53 test_expect_success \
54     'Apply a patch from an 8bit-encoded e-mail' \
55     '
56     stg import -m ../t1800-import/email-8bit &&
57     [ $(git cat-file -p $(stg id) \
58         | grep -c "tree 030be42660323ff2a1958f9ee79589a4f3fbee2f") = 1 ] &&
59     [ $(git cat-file -p $(stg id) \
60         | grep -c "author Inge Ström <inge@power.com>") = 1 ] &&
61     stg delete ..
62     '
63
64 test_expect_success \
65     'Apply a patch from a QP-encoded e-mail' \
66     '
67     stg import -m ../t1800-import/email-qp &&
68     [ $(git cat-file -p $(stg id) \
69         | grep -c "tree 030be42660323ff2a1958f9ee79589a4f3fbee2f") = 1 ] &&
70     [ $(git cat-file -p $(stg id) \
71         | grep -c "author Inge Ström <inge@power.com>") = 1 ] &&
72     stg delete ..
73     '
74
75 test_expect_success \
76     'Apply several patches from an mbox file' \
77     '
78     stg import -M ../t1800-import/email-mbox &&
79     [ $(git cat-file -p $(stg id change-1) \
80         | grep -c "tree 401bef82cd9fb403aba18f480a63844416a2e023") = 1 ] &&
81     [ $(git cat-file -p $(stg id change-1) \
82         | grep -c "author Inge Ström <inge@power.com>") = 1 ] &&
83     [ $(git cat-file -p $(stg id change-2) \
84         | grep -c "tree e49dbce010ec7f441015a8c64bce0b99108af4cc") = 1 ] &&
85     [ $(git cat-file -p $(stg id change-2) \
86         | grep -c "author Inge Ström <inge@power.com>") = 1 ] &&
87     [ $(git cat-file -p $(stg id change-3) \
88         | grep -c "tree 166bbaf27a44aee21ba78c98822a741e6f7d78f5") = 1 ] &&
89     [ $(git cat-file -p $(stg id change-3) \
90         | grep -c "author Inge Ström <inge@power.com>") = 1 ] &&
91     stg delete ..
92     '
93
94 test_expect_success \
95     'Apply a bzip2 patch created with "git diff"' \
96     '
97     bzip2 -c ../t1800-import/git-diff >../t1800-import/bzip2-git-diff &&
98     stg import ../t1800-import/bzip2-git-diff &&
99     [ $(git cat-file -p $(stg id) \
100         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
101     rm ../t1800-import/bzip2-git-diff &&
102     stg delete .. 
103     '
104 test_expect_success \
105     'Apply a bzip2 patch with a .bz2 suffix' \
106     '
107     bzip2 -c ../t1800-import/git-diff >../t1800-import/git-diff.bz2 &&
108     stg import ../t1800-import/git-diff.bz2 &&
109     [ $(git cat-file -p $(stg id) \
110         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
111     rm ../t1800-import/git-diff.bz2 &&
112     stg delete .. 
113     '
114
115 test_expect_success \
116     'Apply a gzip patch created with GNU diff' \
117     '
118     gzip -c ../t1800-import/gnu-diff >../t1800-import/gzip-gnu-diff &&
119     stg import ../t1800-import/gzip-gnu-diff &&
120     [ $(git cat-file -p $(stg id) \
121         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
122     rm ../t1800-import/gzip-gnu-diff &&
123     stg delete ..
124     '
125 test_expect_success \
126     'Apply a gzip patch with a .gz suffix' \
127     '
128     gzip -c ../t1800-import/gnu-diff >../t1800-import/gnu-diff.gz &&
129     stg import ../t1800-import/gnu-diff.gz &&
130     [ $(git cat-file -p $(stg id) \
131         | grep -c "tree e96b1fba2160890ff600b675d7140d46b022b155") = 1 ] &&
132     rm ../t1800-import/gnu-diff.gz &&
133     stg delete ..
134     '
135
136 test_expect_success \
137     'apply a series from a tarball' \
138     '
139     rm -f jabberwocky.txt && touch jabberwocky.txt &&
140     git add jabberwocky.txt && git commit -m "empty file" jabberwocky.txt &&
141     (cd ../t1800-import; tar -cjf jabberwocky.tar.bz2 patches) &&
142     stg import --series ../t1800-import/jabberwocky.tar.bz2
143     [ $(git cat-file -p $(stg id) \
144         | grep -c "tree 2c33937252a21f1550c0bf21f1de534b68f69635") = 1 ] &&
145     rm ../t1800-import/jabberwocky.tar.bz2
146     '
147
148 test_done