xref: /vim-8.2.3635/src/testdir/test_cscope.vim (revision 1e469c72)
16d20e175SBram Moolenaar" Test for cscope commands.
26d20e175SBram Moolenaar
3b46fecd3SBram Moolenaarsource check.vim
4b46fecd3SBram MoolenaarCheckFeature cscope
5b46fecd3SBram MoolenaarCheckFeature quickfix
68c5a278fSBram MoolenaarCheckExecutable cscope
76d20e175SBram Moolenaar
8812ad4f3SBram Moolenaarfunc CscopeSetupOrClean(setup)
9812ad4f3SBram Moolenaar    if a:setup
10812ad4f3SBram Moolenaar      noa sp ../memfile_test.c
11812ad4f3SBram Moolenaar      saveas! Xmemfile_test.c
12812ad4f3SBram Moolenaar      call system('cscope -bk -fXcscope.out Xmemfile_test.c')
13812ad4f3SBram Moolenaar      call system('cscope -bk -fXcscope2.out Xmemfile_test.c')
14812ad4f3SBram Moolenaar      cscope add Xcscope.out
15812ad4f3SBram Moolenaar      set cscopequickfix=s-,g-,d-,c-,t-,e-,f-,i-,a-
16812ad4f3SBram Moolenaar    else
17812ad4f3SBram Moolenaar      cscope kill -1
18812ad4f3SBram Moolenaar      for file in ['Xcscope.out', 'Xcscope2.out', 'Xmemfile_test.c']
19812ad4f3SBram Moolenaar          call delete(file)
20812ad4f3SBram Moolenaar      endfo
21812ad4f3SBram Moolenaar    endif
22812ad4f3SBram Moolenaarendfunc
23812ad4f3SBram Moolenaar
24812ad4f3SBram Moolenaarfunc Test_cscopeWithCscopeConnections()
25812ad4f3SBram Moolenaar    call CscopeSetupOrClean(1)
26d7ffc0baSBram Moolenaar    " Test: E568: duplicate cscope database not added
27812ad4f3SBram Moolenaar    try
28812ad4f3SBram Moolenaar      set nocscopeverbose
29812ad4f3SBram Moolenaar      cscope add Xcscope.out
30812ad4f3SBram Moolenaar      set cscopeverbose
31812ad4f3SBram Moolenaar    catch
3237175409SBram Moolenaar      call assert_report('exception thrown')
33812ad4f3SBram Moolenaar    endtry
34e2e4075fSBram Moolenaar    call assert_fails('cscope add', 'E560:')
35e2e4075fSBram Moolenaar    call assert_fails('cscope add Xcscope.out', 'E568:')
36e2e4075fSBram Moolenaar    call assert_fails('cscope add doesnotexist.out', 'E563:')
37d7ffc0baSBram Moolenaar    if has('unix')
38d7ffc0baSBram Moolenaar      call assert_fails('cscope add /dev/null', 'E564:')
39d7ffc0baSBram Moolenaar    endif
40812ad4f3SBram Moolenaar
41d7ffc0baSBram Moolenaar    " Test: Find this C-Symbol
42812ad4f3SBram Moolenaar    for cmd in ['cs find s main', 'cs find 0 main']
43812ad4f3SBram Moolenaar      let a = execute(cmd)
44d7ffc0baSBram Moolenaar      " Test where it moves the cursor
45812ad4f3SBram Moolenaar      call assert_equal('main(void)', getline('.'))
46d7ffc0baSBram Moolenaar      " Test the output of the :cs command
47812ad4f3SBram Moolenaar      call assert_match('\n(1 of 1): <<main>> main(void )', a)
48812ad4f3SBram Moolenaar    endfor
49812ad4f3SBram Moolenaar
50d7ffc0baSBram Moolenaar    " Test: Find this definition
51d7ffc0baSBram Moolenaar    for cmd in ['cs find g test_mf_hash',
52d7ffc0baSBram Moolenaar          \     'cs find 1 test_mf_hash',
53d7ffc0baSBram Moolenaar          \     'cs find 1   test_mf_hash'] " leading space ignored.
54812ad4f3SBram Moolenaar      exe cmd
55812ad4f3SBram Moolenaar      call assert_equal(['', '/*', ' * Test mf_hash_*() functions.', ' */', '    static void', 'test_mf_hash(void)', '{'], getline(line('.')-5, line('.')+1))
56812ad4f3SBram Moolenaar    endfor
57812ad4f3SBram Moolenaar
58d7ffc0baSBram Moolenaar    " Test: Find functions called by this function
59812ad4f3SBram Moolenaar    for cmd in ['cs find d test_mf_hash', 'cs find 2 test_mf_hash']
60812ad4f3SBram Moolenaar      let a = execute(cmd)
61812ad4f3SBram Moolenaar      call assert_match('\n(1 of 42): <<mf_hash_init>> mf_hash_init(&ht);', a)
62812ad4f3SBram Moolenaar      call assert_equal('    mf_hash_init(&ht);', getline('.'))
63812ad4f3SBram Moolenaar    endfor
64812ad4f3SBram Moolenaar
65d7ffc0baSBram Moolenaar    " Test: Find functions calling this function
66812ad4f3SBram Moolenaar    for cmd in ['cs find c test_mf_hash', 'cs find 3 test_mf_hash']
67812ad4f3SBram Moolenaar      let a = execute(cmd)
68812ad4f3SBram Moolenaar      call assert_match('\n(1 of 1): <<main>> test_mf_hash();', a)
69812ad4f3SBram Moolenaar      call assert_equal('    test_mf_hash();', getline('.'))
70812ad4f3SBram Moolenaar    endfor
71812ad4f3SBram Moolenaar
72d7ffc0baSBram Moolenaar    " Test: Find this text string
73812ad4f3SBram Moolenaar    for cmd in ['cs find t Bram', 'cs find 4 Bram']
74812ad4f3SBram Moolenaar      let a = execute(cmd)
75812ad4f3SBram Moolenaar      call assert_match('(1 of 1): <<<unknown>>>  \* VIM - Vi IMproved^Iby Bram Moolenaar', a)
76812ad4f3SBram Moolenaar      call assert_equal(' * VIM - Vi IMproved	by Bram Moolenaar', getline('.'))
77812ad4f3SBram Moolenaar    endfor
78812ad4f3SBram Moolenaar
79d7ffc0baSBram Moolenaar    " Test: Find this egrep pattern
80812ad4f3SBram Moolenaar    " test all matches returned by cscope
81812ad4f3SBram Moolenaar    for cmd in ['cs find e ^\#includ.', 'cs find 6 ^\#includ.']
82812ad4f3SBram Moolenaar      let a = execute(cmd)
83812ad4f3SBram Moolenaar      call assert_match('\n(1 of 3): <<<unknown>>> #include <assert.h>', a)
84812ad4f3SBram Moolenaar      call assert_equal('#include <assert.h>', getline('.'))
85812ad4f3SBram Moolenaar      cnext
86812ad4f3SBram Moolenaar      call assert_equal('#include "main.c"', getline('.'))
87812ad4f3SBram Moolenaar      cnext
88812ad4f3SBram Moolenaar      call assert_equal('#include "memfile.c"', getline('.'))
89812ad4f3SBram Moolenaar      call assert_fails('cnext', 'E553:')
90812ad4f3SBram Moolenaar    endfor
91812ad4f3SBram Moolenaar
92d7ffc0baSBram Moolenaar    " Test: Find the same egrep pattern using lcscope this time.
93812ad4f3SBram Moolenaar    let a = execute('lcs find e ^\#includ.')
94812ad4f3SBram Moolenaar    call assert_match('\n(1 of 3): <<<unknown>>> #include <assert.h>', a)
95812ad4f3SBram Moolenaar    call assert_equal('#include <assert.h>', getline('.'))
96812ad4f3SBram Moolenaar    lnext
97812ad4f3SBram Moolenaar    call assert_equal('#include "main.c"', getline('.'))
98812ad4f3SBram Moolenaar    lnext
99812ad4f3SBram Moolenaar    call assert_equal('#include "memfile.c"', getline('.'))
100812ad4f3SBram Moolenaar    call assert_fails('lnext', 'E553:')
101812ad4f3SBram Moolenaar
102d7ffc0baSBram Moolenaar    " Test: Find this file
103812ad4f3SBram Moolenaar    for cmd in ['cs find f Xmemfile_test.c', 'cs find 7 Xmemfile_test.c']
104812ad4f3SBram Moolenaar      enew
105812ad4f3SBram Moolenaar      let a = execute(cmd)
1063f40ce78SBram Moolenaar      call assert_true(a =~ '"Xmemfile_test.c" \d\+L, \d\+B')
107812ad4f3SBram Moolenaar      call assert_equal('Xmemfile_test.c', @%)
108812ad4f3SBram Moolenaar    endfor
109812ad4f3SBram Moolenaar
110d7ffc0baSBram Moolenaar    " Test: Find files #including this file
111812ad4f3SBram Moolenaar    for cmd in ['cs find i assert.h', 'cs find 8 assert.h']
112812ad4f3SBram Moolenaar      enew
113812ad4f3SBram Moolenaar      let a = execute(cmd)
1144792255eSBram Moolenaar      let alines = split(a, '\n', 1)
1154792255eSBram Moolenaar      call assert_equal('', alines[0])
1163f40ce78SBram Moolenaar      call assert_true(alines[1] =~ '"Xmemfile_test.c" \d\+L, \d\+B')
1174792255eSBram Moolenaar      call assert_equal('(1 of 1): <<global>> #include <assert.h>', alines[2])
118812ad4f3SBram Moolenaar      call assert_equal('#include <assert.h>', getline('.'))
119812ad4f3SBram Moolenaar    endfor
120812ad4f3SBram Moolenaar
121d7ffc0baSBram Moolenaar    " Test: Invalid find command
122*1e469c72SDominique Pelle    call assert_fails('cs find', 'E560:')
123812ad4f3SBram Moolenaar    call assert_fails('cs find x', 'E560:')
124812ad4f3SBram Moolenaar
1255feabe00SBram Moolenaar    if has('float')
126d7ffc0baSBram Moolenaar      " Test: Find places where this symbol is assigned a value
127812ad4f3SBram Moolenaar      " this needs a cscope >= 15.8
128812ad4f3SBram Moolenaar      " unfortunately, Travis has cscope version 15.7
129812ad4f3SBram Moolenaar      let cscope_version = systemlist('cscope --version')[0]
130812ad4f3SBram Moolenaar      let cs_version = str2float(matchstr(cscope_version, '\d\+\(\.\d\+\)\?'))
131812ad4f3SBram Moolenaar      if cs_version >= 15.8
132812ad4f3SBram Moolenaar        for cmd in ['cs find a item', 'cs find 9 item']
133812ad4f3SBram Moolenaar          let a = execute(cmd)
134d6ec1730SBram Moolenaar          call assert_equal(['', '(1 of 4): <<test_mf_hash>> item = LALLOC_CLEAR_ONE(mf_hashitem_T);'], split(a, '\n', 1))
135d6ec1730SBram Moolenaar          call assert_equal('	item = LALLOC_CLEAR_ONE(mf_hashitem_T);', getline('.'))
136812ad4f3SBram Moolenaar          cnext
137812ad4f3SBram Moolenaar          call assert_equal('	item = mf_hash_find(&ht, key);', getline('.'))
138812ad4f3SBram Moolenaar          cnext
139812ad4f3SBram Moolenaar          call assert_equal('	    item = mf_hash_find(&ht, key);', getline('.'))
140812ad4f3SBram Moolenaar          cnext
141812ad4f3SBram Moolenaar          call assert_equal('	item = mf_hash_find(&ht, key);', getline('.'))
142812ad4f3SBram Moolenaar        endfor
143812ad4f3SBram Moolenaar      endif
1445feabe00SBram Moolenaar    endif
145812ad4f3SBram Moolenaar
146d7ffc0baSBram Moolenaar    " Test: leading whitespace is not removed for cscope find text
147812ad4f3SBram Moolenaar    let a = execute('cscope find t     test_mf_hash')
148812ad4f3SBram Moolenaar    call assert_equal(['', '(1 of 1): <<<unknown>>>     test_mf_hash();'], split(a, '\n', 1))
149812ad4f3SBram Moolenaar    call assert_equal('    test_mf_hash();', getline('.'))
150812ad4f3SBram Moolenaar
151d7ffc0baSBram Moolenaar    " Test: test with scscope
152812ad4f3SBram Moolenaar    let a = execute('scs find t Bram')
153812ad4f3SBram Moolenaar    call assert_match('(1 of 1): <<<unknown>>>  \* VIM - Vi IMproved^Iby Bram Moolenaar', a)
154812ad4f3SBram Moolenaar    call assert_equal(' * VIM - Vi IMproved	by Bram Moolenaar', getline('.'))
155812ad4f3SBram Moolenaar
156d7ffc0baSBram Moolenaar    " Test: cscope help
157812ad4f3SBram Moolenaar    for cmd in ['cs', 'cs help', 'cs xxx']
158812ad4f3SBram Moolenaar      let a = execute(cmd)
159812ad4f3SBram Moolenaar      call assert_match('^cscope commands:\n', a)
160812ad4f3SBram Moolenaar      call assert_match('\nadd  :', a)
161812ad4f3SBram Moolenaar      call assert_match('\nfind :', a)
162812ad4f3SBram Moolenaar      call assert_match('\nhelp : Show this message', a)
163812ad4f3SBram Moolenaar      call assert_match('\nkill : Kill a connection', a)
164812ad4f3SBram Moolenaar      call assert_match('\nreset: Reinit all connections', a)
165812ad4f3SBram Moolenaar      call assert_match('\nshow : Show connections', a)
166812ad4f3SBram Moolenaar    endfor
167812ad4f3SBram Moolenaar    let a = execute('scscope help')
168812ad4f3SBram Moolenaar    call assert_match('This cscope command does not support splitting the window\.', a)
169812ad4f3SBram Moolenaar
170d7ffc0baSBram Moolenaar    " Test: reset connections
171812ad4f3SBram Moolenaar    let a = execute('cscope reset')
172812ad4f3SBram Moolenaar    call assert_match('\nAdded cscope database.*Xcscope.out (#0)', a)
173812ad4f3SBram Moolenaar    call assert_match('\nAll cscope databases reset', a)
174812ad4f3SBram Moolenaar
175d7ffc0baSBram Moolenaar    " Test: cscope show
176812ad4f3SBram Moolenaar    let a = execute('cscope show')
177812ad4f3SBram Moolenaar    call assert_match('\n 0 \d\+.*Xcscope.out\s*<none>', a)
178812ad4f3SBram Moolenaar
179d7ffc0baSBram Moolenaar    " Test: cstag and 'csto' option
180812ad4f3SBram Moolenaar    set csto=0
181812ad4f3SBram Moolenaar    let a = execute('cstag TEST_COUNT')
182812ad4f3SBram Moolenaar    call assert_match('(1 of 1): <<TEST_COUNT>> #define TEST_COUNT 50000', a)
183812ad4f3SBram Moolenaar    call assert_equal('#define TEST_COUNT 50000', getline('.'))
184*1e469c72SDominique Pelle    call assert_fails('cstag DOES_NOT_EXIST', 'E257:')
185812ad4f3SBram Moolenaar    set csto=1
186812ad4f3SBram Moolenaar    let a = execute('cstag index_to_key')
187812ad4f3SBram Moolenaar    call assert_match('(1 of 1): <<index_to_key>> #define index_to_key(i) ((i) ^ 15167)', a)
188812ad4f3SBram Moolenaar    call assert_equal('#define index_to_key(i) ((i) ^ 15167)', getline('.'))
189*1e469c72SDominique Pelle    call assert_fails('cstag DOES_NOT_EXIST', 'E257:')
190812ad4f3SBram Moolenaar    call assert_fails('cstag', 'E562:')
191*1e469c72SDominique Pelle    let save_tags = &tags
192*1e469c72SDominique Pelle    set tags=
193*1e469c72SDominique Pelle    call assert_fails('cstag DOES_NOT_EXIST', 'E257:')
194*1e469c72SDominique Pelle    let a = execute('cstag index_to_key')
195*1e469c72SDominique Pelle    call assert_match('(1 of 1): <<index_to_key>> #define index_to_key(i) ((i) ^ 15167)', a)
196*1e469c72SDominique Pelle    let &tags = save_tags
197812ad4f3SBram Moolenaar
198d7ffc0baSBram Moolenaar    " Test: 'cst' option
199812ad4f3SBram Moolenaar    set nocst
2009b7bf9e9SBram Moolenaar    call assert_fails('tag TEST_COUNT', 'E433:')
201812ad4f3SBram Moolenaar    set cst
202812ad4f3SBram Moolenaar    let a = execute('tag TEST_COUNT')
203812ad4f3SBram Moolenaar    call assert_match('(1 of 1): <<TEST_COUNT>> #define TEST_COUNT 50000', a)
204812ad4f3SBram Moolenaar    call assert_equal('#define TEST_COUNT 50000', getline('.'))
205812ad4f3SBram Moolenaar    let a = execute('tags')
206812ad4f3SBram Moolenaar    call assert_match('1  1 TEST_COUNT\s\+\d\+\s\+#define index_to_key', a)
207812ad4f3SBram Moolenaar
208d7ffc0baSBram Moolenaar    " Test: 'cscoperelative'
209d7ffc0baSBram Moolenaar    call mkdir('Xcscoperelative')
210d7ffc0baSBram Moolenaar    cd Xcscoperelative
211d7ffc0baSBram Moolenaar    let a = execute('cs find g test_mf_hash')
212d7ffc0baSBram Moolenaar    call assert_notequal('test_mf_hash(void)', getline('.'))
213d7ffc0baSBram Moolenaar    set cscoperelative
214d7ffc0baSBram Moolenaar    let a = execute('cs find g test_mf_hash')
215d7ffc0baSBram Moolenaar    call assert_equal('test_mf_hash(void)', getline('.'))
216d7ffc0baSBram Moolenaar    set nocscoperelative
217d7ffc0baSBram Moolenaar    cd ..
218d7ffc0baSBram Moolenaar    call delete('Xcscoperelative', 'd')
219d7ffc0baSBram Moolenaar
220*1e469c72SDominique Pelle    " Test: E259: no match found
221*1e469c72SDominique Pelle    call assert_fails('cscope find g DOES_NOT_EXIST', 'E259:')
222*1e469c72SDominique Pelle
223d7ffc0baSBram Moolenaar    " Test: this should trigger call to cs_print_tags()
224812ad4f3SBram Moolenaar    " Unclear how to check result though, we just exercise the code.
225812ad4f3SBram Moolenaar    set cst cscopequickfix=s0
226812ad4f3SBram Moolenaar    call feedkeys(":cs find s main\<CR>", 't')
227812ad4f3SBram Moolenaar
228d7ffc0baSBram Moolenaar    " Test: cscope kill
229*1e469c72SDominique Pelle    call assert_fails('cscope kill', 'E560:')
230812ad4f3SBram Moolenaar    call assert_fails('cscope kill 2', 'E261:')
231812ad4f3SBram Moolenaar    call assert_fails('cscope kill xxx', 'E261:')
232812ad4f3SBram Moolenaar
233812ad4f3SBram Moolenaar    let a = execute('cscope kill 0')
234812ad4f3SBram Moolenaar    call assert_match('cscope connection 0 closed', a)
235812ad4f3SBram Moolenaar
236812ad4f3SBram Moolenaar    cscope add Xcscope.out
237812ad4f3SBram Moolenaar    let a = execute('cscope kill Xcscope.out')
238812ad4f3SBram Moolenaar    call assert_match('cscope connection Xcscope.out closed', a)
239812ad4f3SBram Moolenaar
240812ad4f3SBram Moolenaar    cscope add Xcscope.out .
241812ad4f3SBram Moolenaar    let a = execute('cscope kill -1')
242812ad4f3SBram Moolenaar    call assert_match('cscope connection .*Xcscope.out closed', a)
243812ad4f3SBram Moolenaar    let a = execute('cscope kill -1')
244812ad4f3SBram Moolenaar    call assert_equal('', a)
245812ad4f3SBram Moolenaar
246d7ffc0baSBram Moolenaar    " Test: 'csprg' option
247812ad4f3SBram Moolenaar    call assert_equal('cscope', &csprg)
248812ad4f3SBram Moolenaar    set csprg=doesnotexist
249812ad4f3SBram Moolenaar    call assert_fails('cscope add Xcscope2.out', 'E609:')
250812ad4f3SBram Moolenaar    set csprg=cscope
251812ad4f3SBram Moolenaar
252d7ffc0baSBram Moolenaar    " Test: multiple cscope connections
253812ad4f3SBram Moolenaar    cscope add Xcscope.out
254812ad4f3SBram Moolenaar    cscope add Xcscope2.out . -C
255812ad4f3SBram Moolenaar    let a = execute('cscope show')
256812ad4f3SBram Moolenaar    call assert_match('\n 0 \d\+.*Xcscope.out\s*<none>', a)
257812ad4f3SBram Moolenaar    call assert_match('\n 1 \d\+.*Xcscope2.out\s*\.', a)
258812ad4f3SBram Moolenaar
259d7ffc0baSBram Moolenaar    " Test: test Ex command line completion
260812ad4f3SBram Moolenaar    call feedkeys(":cs \<C-A>\<C-B>\"\<CR>", 'tx')
261812ad4f3SBram Moolenaar    call assert_equal('"cs add find help kill reset show', @:)
262812ad4f3SBram Moolenaar
263812ad4f3SBram Moolenaar    call feedkeys(":scs \<C-A>\<C-B>\"\<CR>", 'tx')
264812ad4f3SBram Moolenaar    call assert_equal('"scs find', @:)
265812ad4f3SBram Moolenaar
266812ad4f3SBram Moolenaar    call feedkeys(":cs find \<C-A>\<C-B>\"\<CR>", 'tx')
267812ad4f3SBram Moolenaar    call assert_equal('"cs find a c d e f g i s t', @:)
268812ad4f3SBram Moolenaar
269812ad4f3SBram Moolenaar    call feedkeys(":cs kill \<C-A>\<C-B>\"\<CR>", 'tx')
270812ad4f3SBram Moolenaar    call assert_equal('"cs kill -1 0 1', @:)
271812ad4f3SBram Moolenaar
272812ad4f3SBram Moolenaar    call feedkeys(":cs add Xcscope\<C-A>\<C-B>\"\<CR>", 'tx')
273812ad4f3SBram Moolenaar    call assert_equal('"cs add Xcscope.out Xcscope2.out', @:)
274812ad4f3SBram Moolenaar
275d7ffc0baSBram Moolenaar    " Test: cscope_connection()
276812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(), 1)
277812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(0, 'out'), 1)
278812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(0, 'xxx'), 1)
279d7ffc0baSBram Moolenaar
280812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(1, 'out'), 1)
281812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(1, 'xxx'), 0)
282d7ffc0baSBram Moolenaar
283812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(2, 'out'), 0)
284d7ffc0baSBram Moolenaar    call assert_equal(cscope_connection(2, getcwd() .. '/Xcscope.out', 1), 1)
285d7ffc0baSBram Moolenaar
286812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(3, 'xxx', '..'), 0)
287812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(3, 'out', 'xxx'), 0)
288812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(3, 'out', '.'), 1)
289d7ffc0baSBram Moolenaar
290812ad4f3SBram Moolenaar    call assert_equal(cscope_connection(4, 'out', '.'), 0)
291812ad4f3SBram Moolenaar
292d7ffc0baSBram Moolenaar    call assert_equal(cscope_connection(5, 'out'), 0)
293d7ffc0baSBram Moolenaar    call assert_equal(cscope_connection(-1, 'out'), 0)
294d7ffc0baSBram Moolenaar
295812ad4f3SBram Moolenaar    call CscopeSetupOrClean(0)
2962196bca7SBram Moolenaarendfunc
297812ad4f3SBram Moolenaar
2982196bca7SBram Moolenaar" Test ":cs add {dir}"  (add the {dir}/cscope.out database)
2992196bca7SBram Moolenaarfunc Test_cscope_add_dir()
3002196bca7SBram Moolenaar  call mkdir('Xcscopedir', 'p')
301320bf2d8SBram Moolenaar
302320bf2d8SBram Moolenaar  " Cscope doesn't handle symlinks, so this needs to be resolved in case a
303320bf2d8SBram Moolenaar  " shadow directory is being used.
304320bf2d8SBram Moolenaar  let memfile = resolve('../memfile_test.c')
305320bf2d8SBram Moolenaar  call system('cscope -bk -fXcscopedir/cscope.out ' . memfile)
306320bf2d8SBram Moolenaar
3072196bca7SBram Moolenaar  cs add Xcscopedir
3082196bca7SBram Moolenaar  let a = execute('cscope show')
3092196bca7SBram Moolenaar  let lines = split(a, "\n", 1)
3102196bca7SBram Moolenaar  call assert_equal(3, len(lines))
3112196bca7SBram Moolenaar  call assert_equal(' # pid    database name                       prepend path', lines[0])
3122196bca7SBram Moolenaar  call assert_equal('', lines[1])
3132196bca7SBram Moolenaar  call assert_match('^ 0 \d\+.*Xcscopedir/cscope.out\s\+<none>$', lines[2])
3142196bca7SBram Moolenaar
3152196bca7SBram Moolenaar  cs kill -1
3162196bca7SBram Moolenaar  call delete('Xcscopedir/cscope.out')
3172196bca7SBram Moolenaar  call assert_fails('cs add Xcscopedir', 'E563:')
3182196bca7SBram Moolenaar
3192196bca7SBram Moolenaar  call delete('Xcscopedir', 'd')
320812ad4f3SBram Moolenaarendfunc
321812ad4f3SBram Moolenaar
3226d20e175SBram Moolenaarfunc Test_cscopequickfix()
3236d20e175SBram Moolenaar  set cscopequickfix=s-,g-,d+,c-,t+,e-,f0,i-,a-
3246d20e175SBram Moolenaar  call assert_equal('s-,g-,d+,c-,t+,e-,f0,i-,a-', &cscopequickfix)
3256d20e175SBram Moolenaar
3266d20e175SBram Moolenaar  call assert_fails('set cscopequickfix=x-', 'E474:')
3276d20e175SBram Moolenaar  call assert_fails('set cscopequickfix=s', 'E474:')
3286d20e175SBram Moolenaar  call assert_fails('set cscopequickfix=s7', 'E474:')
3296d20e175SBram Moolenaar  call assert_fails('set cscopequickfix=s-a', 'E474:')
3306d20e175SBram Moolenaarendfunc
331edf634e0SBram Moolenaar
332812ad4f3SBram Moolenaarfunc Test_withoutCscopeConnection()
333812ad4f3SBram Moolenaar  call assert_equal(cscope_connection(), 0)
334edf634e0SBram Moolenaar
335812ad4f3SBram Moolenaar  call assert_fails('cscope find s main', 'E567:')
336edf634e0SBram Moolenaar  let a = execute('cscope show')
337812ad4f3SBram Moolenaar  call assert_match('no cscope connections', a)
338edf634e0SBram Moolenaarendfunc
339edf634e0SBram Moolenaar
340812ad4f3SBram Moolenaar
341edf634e0SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
342