annotate src/testdir/test_terminal.vim @ 12118:bf53df1f17ba v8.0.0939

patch 8.0.0939: Test_terminal_env is flaky commit https://github.com/vim/vim/commit/51c23687a9298c27d41ad9780b032f434e1e1646 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 14 21:45:00 2017 +0200 patch 8.0.0939: Test_terminal_env is flaky Problem: Test_terminal_env is flaky. (James McCoy) Solution: Use WaitFor() instead of term_wait().
author Christian Brabandt <cb@256bit.org>
date Mon, 14 Aug 2017 22:00:06 +0200
parents 6afc7339c2ad
children 017031c7717e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for the terminal window.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 if !exists('*term_start')
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 finish
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 endif
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 source shared.vim
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
9 let s:python = PythonProg()
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
10
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
11 " Open a terminal with a shell, assign the job to g:job and return the buffer
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
12 " number.
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
13 func Run_shell_in_terminal(options)
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
14 let buf = term_start(&shell, a:options)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 let termlist = term_list()
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 call assert_equal(1, len(termlist))
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 call assert_equal(buf, termlist[0])
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 let g:job = term_getjob(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 call assert_equal(v:t_job, type(g:job))
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22
11973
aec3df2af27c patch 8.0.0867: job and channel in a dict value not quoted
Christian Brabandt <cb@256bit.org>
parents: 11957
diff changeset
23 let string = string({'job': term_getjob(buf)})
aec3df2af27c patch 8.0.0867: job and channel in a dict value not quoted
Christian Brabandt <cb@256bit.org>
parents: 11957
diff changeset
24 call assert_match("{'job': 'process \\d\\+ run'}", string)
aec3df2af27c patch 8.0.0867: job and channel in a dict value not quoted
Christian Brabandt <cb@256bit.org>
parents: 11957
diff changeset
25
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
26 return buf
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
27 endfunc
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
28
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
29 " Stops the shell started by Run_shell_in_terminal().
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
30 func Stop_shell_in_terminal(buf)
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
31 call term_sendkeys(a:buf, "exit\r")
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 call WaitFor('job_status(g:job) == "dead"')
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 call assert_equal('dead', job_status(g:job))
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
34 endfunc
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
35
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
36 func Test_terminal_basic()
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
37 let buf = Run_shell_in_terminal({})
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11923
diff changeset
38 if has("unix")
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11923
diff changeset
39 call assert_match("^/dev/", job_info(g:job).tty)
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11923
diff changeset
40 call assert_match("^/dev/", term_gettty(''))
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11923
diff changeset
41 else
11951
e8b1ef40324a patch 8.0.0855: MS-Windows: can't get tty name of terminal
Christian Brabandt <cb@256bit.org>
parents: 11939
diff changeset
42 call assert_match("^winpty://", job_info(g:job).tty)
e8b1ef40324a patch 8.0.0855: MS-Windows: can't get tty name of terminal
Christian Brabandt <cb@256bit.org>
parents: 11939
diff changeset
43 call assert_match("^winpty://", term_gettty(''))
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11923
diff changeset
44 endif
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
45 call assert_equal('t', mode())
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
46 call assert_match('%aR[^\n]*running]', execute('ls'))
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
47
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
48 call Stop_shell_in_terminal(buf)
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
49 call term_wait(buf)
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
50 call assert_equal('n', mode())
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
51 call assert_match('%aF[^\n]*finished]', execute('ls'))
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
52
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
53 " closing window wipes out the terminal buffer a with finished job
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
54 close
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
55 call assert_equal("", bufname(buf))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
56
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
57 unlet g:job
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
58 endfunc
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
59
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
60 func Test_terminal_make_change()
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
61 let buf = Run_shell_in_terminal({})
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
62 call Stop_shell_in_terminal(buf)
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
63 call term_wait(buf)
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
64
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
65 setlocal modifiable
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
66 exe "normal Axxx\<Esc>"
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
67 call assert_fails(buf . 'bwipe', 'E517')
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
68 undo
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
69
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 exe buf . 'bwipe'
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 unlet g:job
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 endfunc
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
74 func Test_terminal_wipe_buffer()
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
75 let buf = Run_shell_in_terminal({})
11957
bc0fee081e1e patch 8.0.0858: can exit while a terminal is still running a job
Christian Brabandt <cb@256bit.org>
parents: 11955
diff changeset
76 call assert_fails(buf . 'bwipe', 'E517')
bc0fee081e1e patch 8.0.0858: can exit while a terminal is still running a job
Christian Brabandt <cb@256bit.org>
parents: 11955
diff changeset
77 exe buf . 'bwipe!'
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
78 call WaitFor('job_status(g:job) == "dead"')
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
79 call assert_equal('dead', job_status(g:job))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
80 call assert_equal("", bufname(buf))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
81
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
82 unlet g:job
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
83 endfunc
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
84
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
85 func Test_terminal_hide_buffer()
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
86 let buf = Run_shell_in_terminal({})
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
87 quit
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
88 for nr in range(1, winnr('$'))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
89 call assert_notequal(winbufnr(nr), buf)
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
90 endfor
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
91 call assert_true(bufloaded(buf))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
92 call assert_true(buflisted(buf))
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
93
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
94 exe 'split ' . buf . 'buf'
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
95 call Stop_shell_in_terminal(buf)
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
96 exe buf . 'bwipe'
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
97
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
98 unlet g:job
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
99 endfunc
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
100
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
101 func! s:Nasty_exit_cb(job, st)
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
102 exe g:buf . 'bwipe!'
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
103 let g:buf = 0
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
104 endfunc
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
105
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
106 func Test_terminal_nasty_cb()
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
107 let cmd = Get_cat_123_cmd()
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
108 let g:buf = term_start(cmd, {'exit_cb': function('s:Nasty_exit_cb')})
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
109 let g:job = term_getjob(g:buf)
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
110
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
111 call WaitFor('job_status(g:job) == "dead"')
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
112 call WaitFor('g:buf == 0')
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
113 unlet g:buf
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
114 unlet g:job
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
115 call delete('Xtext')
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
116 endfunc
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
117
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118 func Check_123(buf)
11923
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
119 let l = term_scrape(a:buf, 0)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
120 call assert_true(len(l) == 0)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
121 let l = term_scrape(a:buf, 999)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
122 call assert_true(len(l) == 0)
11906
7df4afab67c7 patch 8.0.0833: terminal test fails
Christian Brabandt <cb@256bit.org>
parents: 11872
diff changeset
123 let l = term_scrape(a:buf, 1)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 call assert_true(len(l) > 0)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125 call assert_equal('1', l[0].chars)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126 call assert_equal('2', l[1].chars)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 call assert_equal('3', l[2].chars)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128 call assert_equal('#00e000', l[0].fg)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
129 if &background == 'light'
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
130 call assert_equal('#ffffff', l[0].bg)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
131 else
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
132 call assert_equal('#000000', l[0].bg)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
133 endif
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
134
11923
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
135 let l = term_getline(a:buf, -1)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
136 call assert_equal('', l)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
137 let l = term_getline(a:buf, 0)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
138 call assert_equal('', l)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
139 let l = term_getline(a:buf, 999)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
140 call assert_equal('', l)
11906
7df4afab67c7 patch 8.0.0833: terminal test fails
Christian Brabandt <cb@256bit.org>
parents: 11872
diff changeset
141 let l = term_getline(a:buf, 1)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 call assert_equal('123', l)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 endfunc
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
145 func Get_cat_123_cmd()
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146 if has('win32')
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
147 return 'cmd /c "cls && color 2 && echo 123"'
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148 else
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 call writefile(["\<Esc>[32m123"], 'Xtext')
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
150 return "cat Xtext"
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 endif
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
152 endfunc
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
153
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
154 func Test_terminal_scrape_123()
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
155 let cmd = Get_cat_123_cmd()
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156 let buf = term_start(cmd)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
157
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 let termlist = term_list()
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
159 call assert_equal(1, len(termlist))
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 call assert_equal(buf, termlist[0])
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161
11872
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
162 " Nothing happens with invalid buffer number
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
163 call term_wait(1234)
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
164
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 call term_wait(buf)
11955
baa2edd33f5d patch 8.0.0857: terminal test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 11951
diff changeset
166 if has('win32')
baa2edd33f5d patch 8.0.0857: terminal test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 11951
diff changeset
167 " TODO: this should not be needed
baa2edd33f5d patch 8.0.0857: terminal test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 11951
diff changeset
168 sleep 100m
baa2edd33f5d patch 8.0.0857: terminal test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 11951
diff changeset
169 endif
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
170 call Check_123(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 " Must still work after the job ended.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173 let g:job = term_getjob(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 call WaitFor('job_status(g:job) == "dead"')
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 call term_wait(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 call Check_123(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 exe buf . 'bwipe'
11872
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
179 call delete('Xtext')
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 endfunc
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
181
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
182 func Test_terminal_scrape_multibyte()
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
183 if !has('multi_byte')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
184 return
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
185 endif
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
186 call writefile(["léttまrs"], 'Xtext')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
187 if has('win32')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
188 let cmd = 'cmd /c "type Xtext"'
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
189 else
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
190 let cmd = "cat Xtext"
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
191 endif
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
192 let buf = term_start(cmd)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
193
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
194 call term_wait(buf)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
195 if has('win32')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
196 " TODO: this should not be needed
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
197 sleep 100m
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
198 endif
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
199
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
200 let l = term_scrape(buf, 1)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
201 call assert_true(len(l) >= 7)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
202 call assert_equal('l', l[0].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
203 call assert_equal('é', l[1].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
204 call assert_equal(1, l[1].width)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
205 call assert_equal('t', l[2].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
206 call assert_equal('t', l[3].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
207 call assert_equal('ま', l[4].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
208 call assert_equal(2, l[4].width)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
209 call assert_equal('r', l[5].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
210 call assert_equal('s', l[6].chars)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
211
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
212 let g:job = term_getjob(buf)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
213 call WaitFor('job_status(g:job) == "dead"')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
214 call term_wait(buf)
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
215
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
216 exe buf . 'bwipe'
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
217 call delete('Xtext')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
218 endfunc
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
219
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
220 func Test_terminal_scroll()
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
221 call writefile(range(1, 200), 'Xtext')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
222 if has('win32')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
223 let cmd = 'cmd /c "type Xtext"'
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
224 else
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
225 let cmd = "cat Xtext"
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
226 endif
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
227 let buf = term_start(cmd)
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
228
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
229 let g:job = term_getjob(buf)
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
230 call WaitFor('job_status(g:job) == "dead"')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
231 call term_wait(buf)
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
232 if has('win32')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
233 " TODO: this should not be needed
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
234 sleep 100m
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
235 endif
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
236
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12011
diff changeset
237 let scrolled = term_getscrolled(buf)
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
238 call assert_equal('1', getline(1))
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12011
diff changeset
239 call assert_equal('1', term_getline(buf, 1 - scrolled))
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
240 call assert_equal('49', getline(49))
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12011
diff changeset
241 call assert_equal('49', term_getline(buf, 49 - scrolled))
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
242 call assert_equal('200', getline(200))
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12011
diff changeset
243 call assert_equal('200', term_getline(buf, 200 - scrolled))
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
244
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
245 exe buf . 'bwipe'
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
246 call delete('Xtext')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
247 endfunc
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
248
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
249 func Test_terminal_size()
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
250 let cmd = Get_cat_123_cmd()
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
251
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
252 exe '5terminal ' . cmd
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
253 let size = term_getsize('')
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
254 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
255 call assert_equal(5, size[0])
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
256
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
257 call term_start(cmd, {'term_rows': 6})
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
258 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
259 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
260 call assert_equal(6, size[0])
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
261
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
262 vsplit
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
263 exe '5,33terminal ' . cmd
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
264 let size = term_getsize('')
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
265 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
266 call assert_equal([5, 33], size)
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
267
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
268 call term_start(cmd, {'term_rows': 6, 'term_cols': 36})
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
269 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
270 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
271 call assert_equal([6, 36], size)
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
272
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
273 exe 'vertical 20terminal ' . cmd
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
274 let size = term_getsize('')
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
275 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
276 call assert_equal(20, size[1])
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
277
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
278 call term_start(cmd, {'vertical': 1, 'term_cols': 26})
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
279 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
280 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
281 call assert_equal(26, size[1])
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
282
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
283 split
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
284 exe 'vertical 6,20terminal ' . cmd
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
285 let size = term_getsize('')
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
286 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
287 call assert_equal([6, 20], size)
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
288
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
289 call term_start(cmd, {'vertical': 1, 'term_rows': 7, 'term_cols': 27})
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
290 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
291 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
292 call assert_equal([7, 27], size)
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
293 endfunc
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
294
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
295 func Test_terminal_curwin()
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
296 let cmd = Get_cat_123_cmd()
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
297 call assert_equal(1, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
298
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
299 split dummy
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
300 exe 'terminal ++curwin ' . cmd
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
301 call assert_equal(2, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
302 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
303
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
304 split dummy
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
305 call term_start(cmd, {'curwin': 1})
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
306 call assert_equal(2, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
307 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
308
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
309 split dummy
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
310 call setline(1, 'change')
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
311 call assert_fails('terminal ++curwin ' . cmd, 'E37:')
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
312 call assert_equal(2, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
313 exe 'terminal! ++curwin ' . cmd
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
314 call assert_equal(2, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
315 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
316
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
317 split dummy
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
318 call setline(1, 'change')
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
319 call assert_fails("call term_start(cmd, {'curwin': 1})", 'E37:')
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
320 call assert_equal(2, winnr('$'))
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
321 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
322
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
323 split dummy
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
324 bwipe!
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
325
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
326 endfunc
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
327
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
328 func Test_finish_open_close()
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
329 call assert_equal(1, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
330
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
331 if s:python != ''
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
332 let cmd = s:python . " test_short_sleep.py"
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
333 let waittime = 500
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
334 else
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
335 echo 'This will take five seconds...'
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
336 let waittime = 2000
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
337 if has('win32')
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
338 let cmd = $windir . '\system32\timeout.exe 1'
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
339 else
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
340 let cmd = 'sleep 1'
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
341 endif
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
342 endif
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
343
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
344 exe 'terminal ++close ' . cmd
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
345 call assert_equal(2, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
346 wincmd p
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
347 call WaitFor("winnr('$') == 1", waittime)
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
348 call assert_equal(1, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
349
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
350 call term_start(cmd, {'term_finish': 'close'})
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
351 call assert_equal(2, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
352 wincmd p
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
353 call WaitFor("winnr('$') == 1", waittime)
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
354 call assert_equal(1, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
355
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
356 exe 'terminal ++open ' . cmd
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
357 close
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
358 call WaitFor("winnr('$') == 2", waittime)
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
359 call assert_equal(2, winnr('$'))
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
360 bwipe
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
361
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
362 call term_start(cmd, {'term_finish': 'open'})
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
363 close
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
364 call WaitFor("winnr('$') == 2", waittime)
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
365 call assert_equal(2, winnr('$'))
12064
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
366 bwipe
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
367
12064
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
368 exe 'terminal ++hidden ++open ' . cmd
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
369 call assert_equal(1, winnr('$'))
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
370 call WaitFor("winnr('$') == 2", waittime)
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
371 call assert_equal(2, winnr('$'))
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
372 bwipe
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
373
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
374 call term_start(cmd, {'term_finish': 'open', 'hidden': 1})
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
375 call assert_equal(1, winnr('$'))
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
376 call WaitFor("winnr('$') == 2", waittime)
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
377 call assert_equal(2, winnr('$'))
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
378 bwipe
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
379
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
380 call assert_fails("call term_start(cmd, {'term_opencmd': 'open'})", 'E475:')
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
381 call assert_fails("call term_start(cmd, {'term_opencmd': 'split %x'})", 'E475:')
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
382 call assert_fails("call term_start(cmd, {'term_opencmd': 'split %d and %s'})", 'E475:')
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
383 call assert_fails("call term_start(cmd, {'term_opencmd': 'split % and %d'})", 'E475:')
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
384
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
385 call term_start(cmd, {'term_finish': 'open', 'term_opencmd': '4split | buffer %d'})
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
386 close
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
387 call WaitFor("winnr('$') == 2", waittime)
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
388 call assert_equal(2, winnr('$'))
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
389 call assert_equal(4, winheight(0))
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
390 bwipe
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
391
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
392 endfunc
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
393
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
394 func Test_terminal_cwd()
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
395 if !has('unix')
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
396 return
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
397 endif
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
398 call mkdir('Xdir')
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
399 let buf = term_start('pwd', {'cwd': 'Xdir'})
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
400 sleep 100m
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
401 call term_wait(buf)
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
402 call assert_equal(getcwd() . '/Xdir', getline(1))
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
403
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
404 exe buf . 'bwipe'
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
405 call delete('Xdir', 'rf')
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
406 endfunc
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
407
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
408 func Test_terminal_env()
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
409 if !has('unix')
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
410 return
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
411 endif
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
412 let buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}})
12118
bf53df1f17ba patch 8.0.0939: Test_terminal_env is flaky
Christian Brabandt <cb@256bit.org>
parents: 12112
diff changeset
413 " Wait for the shell to display a prompt
bf53df1f17ba patch 8.0.0939: Test_terminal_env is flaky
Christian Brabandt <cb@256bit.org>
parents: 12112
diff changeset
414 call WaitFor('term_getline(1) != ""')
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
415 call term_sendkeys(buf, "echo $TESTENV\r")
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
416 call term_wait(buf)
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
417 call Stop_shell_in_terminal(buf)
12118
bf53df1f17ba patch 8.0.0939: Test_terminal_env is flaky
Christian Brabandt <cb@256bit.org>
parents: 12112
diff changeset
418 call WaitFor('getline(2) == "correct"')
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
419 call assert_equal('correct', getline(2))
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
420
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
421 exe buf . 'bwipe'
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
422 endfunc
12086
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
423
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
424 " must be last, we can't go back from GUI to terminal
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
425 func Test_zz_terminal_in_gui()
12106
d2c20ec4b95a patch 8.0.0933: terminal test tries to start GUI when it's not possible
Christian Brabandt <cb@256bit.org>
parents: 12096
diff changeset
426 if !CanRunGui()
12086
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
427 return
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
428 endif
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
429 gui -f
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
430
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
431 call assert_equal(1, winnr('$'))
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
432 let buf = Run_shell_in_terminal({'term_finish': 'close'})
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
433 call Stop_shell_in_terminal(buf)
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
434 call term_wait(buf)
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
435
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
436 " closing window wipes out the terminal buffer a with finished job
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
437 call WaitFor("winnr('$') == 1")
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
438 call assert_equal(1, winnr('$'))
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
439 call assert_equal("", bufname(buf))
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
440
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
441 unlet g:job
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
442 endfunc
12096
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
443
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
444 func Test_terminal_list_args()
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
445 let buf = term_start([&shell, &shellcmdflag, 'echo "123"'])
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
446 call assert_fails(buf . 'bwipe', 'E517')
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
447 exe buf . 'bwipe!'
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
448 call assert_equal("", bufname(buf))
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
449 endfunction