annotate src/testdir/test_terminal.vim @ 26554:7a74515dde6b v8.2.3806

patch 8.2.3806: terminal focus test fails sometimes Commit: https://github.com/vim/vim/commit/c2958585f6c7ce4d822d3191ba501c0757b3ffff Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 14 11:16:31 2021 +0000 patch 8.2.3806: terminal focus test fails sometimes Problem: Terminal focus test fails sometimes. Solution: Run the test function before others.
author Bram Moolenaar <Bram@vim.org>
date Tue, 14 Dec 2021 12:30:03 +0100
parents d9aac1eaf9a3
children b3ac5a4dc158
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.
21126
a35036006352 patch 8.2.1114: terminal test sometimes times out
Bram Moolenaar <Bram@vim.org>
parents: 20768
diff changeset
2 " This is split in two, because it can take a lot of time.
21253
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
3 " See test_terminal2.vim and test_terminal3.vim for further tests.
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4
17089
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
5 source check.vim
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
6 CheckFeature terminal
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 source shared.vim
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
9 source screendump.vim
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
10 source mouse.vim
21126
a35036006352 patch 8.2.1114: terminal test sometimes times out
Bram Moolenaar <Bram@vim.org>
parents: 20768
diff changeset
11 source term_util.vim
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
13 let s:python = PythonProg()
16920
8d91579414b8 patch 8.1.1461: tests do not run or are not reliable on some systems
Bram Moolenaar <Bram@vim.org>
parents: 16912
diff changeset
14 let $PROMPT_COMMAND=''
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
15
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
16 func Test_terminal_basic()
13835
8e583c52eb44 patch 8.0.1789: BufWinEnter does not work well for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13829
diff changeset
17 au TerminalOpen * let b:done = 'yes'
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
18 let buf = Run_shell_in_terminal({})
12505
5cf248ecb6e3 patch 8.0.1131: not easy to trigger an autocommand for new terminal window
Christian Brabandt <cb@256bit.org>
parents: 12479
diff changeset
19
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
20 call assert_equal('t', mode())
12505
5cf248ecb6e3 patch 8.0.1131: not easy to trigger an autocommand for new terminal window
Christian Brabandt <cb@256bit.org>
parents: 12479
diff changeset
21 call assert_equal('yes', b:done)
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
22 call assert_match('%aR[^\n]*running]', execute('ls'))
13555
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
23 call assert_match('%aR[^\n]*running]', execute('ls R'))
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
24 call assert_notmatch('%[^\n]*running]', execute('ls F'))
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
25 call assert_notmatch('%[^\n]*running]', execute('ls ?'))
19969
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
26 call assert_fails('set modifiable', 'E946:')
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
27
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
28 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
29 call TermWait(buf)
12112
6afc7339c2ad patch 8.0.0936: mode() returns wrong value for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12106
diff changeset
30 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
31 call assert_match('%aF[^\n]*finished]', execute('ls'))
13555
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
32 call assert_match('%aF[^\n]*finished]', execute('ls F'))
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
33 call assert_notmatch('%[^\n]*finished]', execute('ls R'))
78ead137b2ad patch 8.0.1651: cannot filter :ls output for terminal buffers
Christian Brabandt <cb@256bit.org>
parents: 13547
diff changeset
34 call assert_notmatch('%[^\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
35
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
36 " 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
37 close
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
38 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
39
13835
8e583c52eb44 patch 8.0.1789: BufWinEnter does not work well for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13829
diff changeset
40 au! TerminalOpen
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
41 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
42 endfunc
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
43
22822
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
44 func Test_terminal_no_name()
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
45 let buf = Run_shell_in_terminal({})
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
46 call assert_match('^!', bufname(buf))
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
47 0file
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
48 call assert_equal("", bufname(buf))
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
49 call assert_match('\[No Name\]', execute('file'))
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
50 call StopShellInTerminal(buf)
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
51 call TermWait(buf)
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
52 endfunc
0b4658e030cb patch 8.2.1959: crash when terminal buffer name is made empty
Bram Moolenaar <Bram@vim.org>
parents: 22780
diff changeset
53
18450
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
54 func Test_terminal_TerminalWinOpen()
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
55 au TerminalWinOpen * let b:done = 'yes'
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
56 let buf = Run_shell_in_terminal({})
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
57 call assert_equal('yes', b:done)
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
58 call StopShellInTerminal(buf)
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
59 " closing window wipes out the terminal buffer with the finished job
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
60 close
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
61
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
62 if has("unix")
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
63 terminal ++hidden ++open sleep 1
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
64 sleep 1
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
65 call assert_fails("echo b:done", 'E121:')
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
66 endif
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
67
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
68 au! TerminalWinOpen
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
69 endfunc
507348b211b4 patch 8.1.2219: no autocommand for open window with terminal
Bram Moolenaar <Bram@vim.org>
parents: 18402
diff changeset
70
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
71 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
72 let buf = Run_shell_in_terminal({})
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
73 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
74 call TermWait(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
75
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
76 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
77 exe "normal Axxx\<Esc>"
22742
f7f2d73ff85e patch 8.2.1919: assert_fails() setting emsg_silent changes normal execution
Bram Moolenaar <Bram@vim.org>
parents: 22448
diff changeset
78 call assert_fails(buf . 'bwipe', 'E89:')
11912
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
79 undo
22658e33203f patch 8.0.0836: can abandon a terminal buffer after making a change
Christian Brabandt <cb@256bit.org>
parents: 11906
diff changeset
80
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 exe buf . 'bwipe'
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 unlet g:job
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 endfunc
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84
15951
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
85 func Test_terminal_paste_register()
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
86 let @" = "text to paste"
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
87
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
88 let buf = Run_shell_in_terminal({})
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
89 " Wait for the shell to display a prompt
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
90 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
91
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
92 call feedkeys("echo \<C-W>\"\" \<C-W>\"=37 + 5\<CR>\<CR>", 'xt')
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
93 call WaitForAssert({-> assert_match("echo text to paste 42$", getline(1))})
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
94 call WaitForAssert({-> assert_equal('text to paste 42', 2->getline())})
15951
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
95
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
96 exe buf . 'bwipe!'
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
97 unlet g:job
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
98 endfunc
2c18aaf66e77 patch 8.1.0981: pasting in terminal insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15937
diff changeset
99
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
100 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
101 let buf = Run_shell_in_terminal({})
22742
f7f2d73ff85e patch 8.2.1919: assert_fails() setting emsg_silent changes normal execution
Bram Moolenaar <Bram@vim.org>
parents: 22448
diff changeset
102 call assert_fails(buf . 'bwipe', 'E89:')
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
103 exe buf . 'bwipe!'
13798
415185e2c970 patch 8.0.1771: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13750
diff changeset
104 call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
105 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
106
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
107 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
108 endfunc
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
109
12479
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
110 func Test_terminal_split_quit()
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
111 let buf = Run_shell_in_terminal({})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
112 call TermWait(buf)
12479
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
113 split
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
114 quit!
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
115 call TermWait(buf)
12479
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
116 sleep 50m
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
117 call assert_equal('run', job_status(g:job))
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
118
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
119 quit!
13798
415185e2c970 patch 8.0.1771: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13750
diff changeset
120 call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
12479
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
121
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
122 exe buf . 'bwipe'
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
123 unlet g:job
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
124 endfunc
65c7769ef6d1 patch 8.0.1119: quitting a split terminal window kills the job
Christian Brabandt <cb@256bit.org>
parents: 12475
diff changeset
125
22987
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
126 func Test_terminal_hide_buffer_job_running()
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
127 let buf = Run_shell_in_terminal({})
12271
e4aa68825575 patch 8.0.1015: missing update to terminal test
Christian Brabandt <cb@256bit.org>
parents: 12263
diff changeset
128 setlocal bufhidden=hide
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
129 quit
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
130 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
131 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
132 endfor
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
133 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
134 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
135
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
136 exe 'split ' . buf . 'buf'
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
137 call StopShellInTerminal(buf)
11917
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
138 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
139
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
140 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
141 endfunc
00836eb177cb patch 8.0.0838: buffer hangs around whem terminal window is closed
Christian Brabandt <cb@256bit.org>
parents: 11912
diff changeset
142
22987
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
143 func Test_terminal_hide_buffer_job_finished()
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
144 term echo hello
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
145 let buf = bufnr()
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
146 setlocal bufhidden=hide
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
147 call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
148 call assert_true(bufloaded(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
149 call assert_true(buflisted(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
150 edit Xasdfasdf
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
151 call assert_true(bufloaded(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
152 call assert_true(buflisted(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
153 exe buf .. 'buf'
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
154 call assert_equal(buf, bufnr())
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
155 setlocal bufhidden=
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
156 edit Xasdfasdf
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
157 call assert_false(bufloaded(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
158 call assert_false(buflisted(buf))
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
159 bwipe Xasdfasdf
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
160 endfunc
1456b8e4d489 patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Bram Moolenaar <Bram@vim.org>
parents: 22920
diff changeset
161
26185
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
162 func Test_terminal_rename_buffer()
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
163 let cmd = Get_cat_123_cmd()
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
164 let buf = term_start(cmd, {'term_name': 'foo'})
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
165 call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
166 call assert_equal('foo', bufname())
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
167 call assert_match('foo.*finished', execute('ls'))
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
168 file bar
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
169 call assert_equal('bar', bufname())
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
170 call assert_match('bar.*finished', execute('ls'))
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
171 exe 'bwipe! ' .. buf
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
172 endfunc
582218dbc6b3 patch 8.2.3624: when renaming a terminal buffer status text is not updated
Bram Moolenaar <Bram@vim.org>
parents: 26113
diff changeset
173
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 15245
diff changeset
174 func s:Nasty_exit_cb(job, st)
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
175 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
176 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
177 endfunc
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
178
12405
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
179 func Get_cat_123_cmd()
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
180 if has('win32')
15725
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
181 if !has('conpty')
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
182 return 'cmd /c "cls && color 2 && echo 123"'
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
183 else
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
184 " When clearing twice, extra sequence is not output.
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
185 return 'cmd /c "cls && cls && color 2 && echo 123"'
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
186 endif
12405
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
187 else
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
188 call writefile(["\<Esc>[32m123"], 'Xtext')
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
189 return "cat Xtext"
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
190 endif
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
191 endfunc
6ef5e636f246 patch 8.0.1082: tests fail when run under valgrind
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
192
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
193 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
194 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
195 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
196 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
197
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
198 call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
199 call WaitForAssert({-> assert_equal(0, g:buf)})
15725
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
200 unlet g:job
11939
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
201 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
202 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
203 endfunc
ef1febf04d03 patch 8.0.0849: crash when job exit callback wipes the terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
204
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
205 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
206 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
207 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
208 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
209 call assert_true(len(l) == 0)
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
210 let l = a:buf->term_scrape(1)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
211 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
212 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
213 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
214 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
215 call assert_equal('#00e000', l[0].fg)
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
216 call assert_equal(0, term_getattr(l[0].attr, 'bold'))
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
217 call assert_equal(0, l[0].attr->term_getattr('italic'))
15231
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
218 if has('win32')
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
219 " On Windows 'background' always defaults to dark, even though the terminal
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
220 " may use a light background. Therefore accept both white and black.
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
221 call assert_match('#ffffff\|#000000', l[0].bg)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
222 else
15231
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
223 if &background == 'light'
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
224 call assert_equal('#ffffff', l[0].bg)
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
225 else
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
226 call assert_equal('#000000', l[0].bg)
42ce33efb23d patch 8.1.0625: MS-Windows: terminal test fails in white console
Bram Moolenaar <Bram@vim.org>
parents: 15217
diff changeset
227 endif
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
228 endif
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229
11923
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
230 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
231 call assert_equal('', l)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
232 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
233 call assert_equal('', l)
c9da7b42fdf5 patch 8.0.0841: term_getline() may cause a crash
Christian Brabandt <cb@256bit.org>
parents: 11917
diff changeset
234 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
235 call assert_equal('', l)
11906
7df4afab67c7 patch 8.0.0833: terminal test fails
Christian Brabandt <cb@256bit.org>
parents: 11872
diff changeset
236 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
237 call assert_equal('123', l)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
238 endfunc
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
239
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
240 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
241 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
242 let buf = term_start(cmd)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
243
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
244 let termlist = term_list()
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
245 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
246 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
247
11872
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
248 " 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
249 call term_wait(1234)
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
250
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
251 call TermWait(buf)
12349
bb67396239a4 patch 8.0.1054: terminal test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12345
diff changeset
252 " On MS-Windows we first get a startup message of two lines, wait for the
12355
368a7bf382c7 patch 8.0.1057: terminal scrape test waits too long
Christian Brabandt <cb@256bit.org>
parents: 12349
diff changeset
253 " "cls" to happen, after that we have one line with three characters.
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
254 call WaitForAssert({-> assert_equal(3, len(term_scrape(buf, 1)))})
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
255 call Check_123(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
256
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
257 " Must still work after the job ended.
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
258 let job = term_getjob(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
259 call WaitForAssert({-> assert_equal("dead", job_status(job))})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
260 call TermWait(buf)
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
261 call Check_123(buf)
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
262
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
263 exe buf . 'bwipe'
11872
ff8122091ec6 patch 8.0.0816: crash when using invalid buffer number
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
264 call delete('Xtext')
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
265 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
266
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
267 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
268 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
269 if has('win32')
12126
bb43ab26381e patch 8.0.0943: MS-Windows: Test_terminal_scrape_multibyte may fail
Christian Brabandt <cb@256bit.org>
parents: 12120
diff changeset
270 " Run cmd with UTF-8 codepage to make the type command print the expected
bb43ab26381e patch 8.0.0943: MS-Windows: Test_terminal_scrape_multibyte may fail
Christian Brabandt <cb@256bit.org>
parents: 12120
diff changeset
271 " multibyte characters.
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
272 let buf = term_start("cmd /K chcp 65001")
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
273 call term_sendkeys(buf, "type Xtext\<CR>")
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
274 eval buf->term_sendkeys("exit\<CR>")
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
275 let line = 4
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
276 else
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
277 let buf = term_start("cat Xtext")
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
278 let line = 1
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
279 endif
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
280
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
281 call WaitFor({-> len(term_scrape(buf, line)) >= 7 && term_scrape(buf, line)[0].chars == "l"})
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
282 let l = term_scrape(buf, line)
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
283 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
284 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
285 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
286 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
287 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
288 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
289 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
290 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
291 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
292 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
293
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
294 let job = term_getjob(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
295 call WaitForAssert({-> assert_equal("dead", job_status(job))})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
296 call TermWait(buf)
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
297
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
298 exe buf . 'bwipe'
12009
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
299 call delete('Xtext')
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
300 endfunc
0d9bfdb3f6f7 patch 8.0.0885: terminal window scrollback is stored inefficiently
Christian Brabandt <cb@256bit.org>
parents: 11975
diff changeset
301
21606
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
302 func Test_terminal_one_column()
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
303 " This creates a terminal, displays a double-wide character and makes the
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
304 " window one column wide. This used to cause a crash.
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
305 let width = &columns
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
306 botright vert term
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
307 let buf = bufnr('$')
21897
e0af4660dfc7 patch 8.2.1498: on slow systems tests can be flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
308 call TermWait(buf, 100)
21606
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
309 exe "set columns=" .. (width / 2)
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
310 redraw
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
311 call term_sendkeys(buf, "キ")
21897
e0af4660dfc7 patch 8.2.1498: on slow systems tests can be flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
312 call TermWait(buf, 10)
21606
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
313 exe "set columns=" .. width
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
314 exe buf . 'bwipe!'
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
315 endfunc
66618893eb2a patch 8.2.1353: crash when drawing double-wide character in terminal window
Bram Moolenaar <Bram@vim.org>
parents: 21445
diff changeset
316
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
317 func Test_terminal_scroll()
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
318 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
319 if has('win32')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
320 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
321 else
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
322 let cmd = "cat Xtext"
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
323 endif
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
324 let buf = term_start(cmd)
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
325
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
326 let job = term_getjob(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
327 call WaitForAssert({-> assert_equal("dead", job_status(job))})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
328 call TermWait(buf)
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
329
19781
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
330 " wait until the scrolling stops
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
331 while 1
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
332 let scrolled = buf->term_getscrolled()
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
333 sleep 20m
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
334 if scrolled == buf->term_getscrolled()
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
335 break
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
336 endif
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
337 endwhile
cadb4c1bee6e patch 8.2.0447: terminal scroll tests fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19770
diff changeset
338
12011
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
339 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
340 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
341 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
342 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
343 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
344 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
345
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
346 exe buf . 'bwipe'
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
347 call delete('Xtext')
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
348 endfunc
1f4e7361ce89 patch 8.0.0886: crash when using ":term ls"
Christian Brabandt <cb@256bit.org>
parents: 12009
diff changeset
349
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
350 func Test_terminal_scrollback()
14017
e88e2a8de4c5 patch 8.1.0026: terminal test fails with very tall terminal
Christian Brabandt <cb@256bit.org>
parents: 13956
diff changeset
351 let buf = Run_shell_in_terminal({'term_rows': 15})
13742
a34b1323286c patch 8.0.1743: terminal window options are named inconsistently
Christian Brabandt <cb@256bit.org>
parents: 13720
diff changeset
352 set termwinscroll=100
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
353 call writefile(range(150), 'Xtext')
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
354 if has('win32')
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
355 call term_sendkeys(buf, "type Xtext\<CR>")
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
356 else
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
357 call term_sendkeys(buf, "cat Xtext\<CR>")
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
358 endif
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
359 let rows = term_getsize(buf)[0]
13692
2dd14253ad12 patch 8.0.1718: terminal scrollback test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 13688
diff changeset
360 " On MS-Windows there is an empty line, check both last line and above it.
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
361 call WaitForAssert({-> assert_match( '149', term_getline(buf, rows - 1) . term_getline(buf, rows - 2))})
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
362 let lines = line('$')
13688
f07e48d6650b patch 8.0.1716: test for term_setsize() does not give a good error message
Christian Brabandt <cb@256bit.org>
parents: 13684
diff changeset
363 call assert_inrange(91, 100, lines)
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
364
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
365 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
366 call TermWait(buf)
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
367 exe buf . 'bwipe'
13742
a34b1323286c patch 8.0.1743: terminal window options are named inconsistently
Christian Brabandt <cb@256bit.org>
parents: 13720
diff changeset
368 set termwinscroll&
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
369 call delete('Xtext')
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
370 endfunc
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
371
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
372 func Test_terminal_postponed_scrollback()
18041
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
373 " tail -f only works on Unix
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
374 CheckUnix
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
375
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
376 call writefile(range(50), 'Xtext')
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
377 call writefile([
15836
fe7e94f39e7f patch 8.1.0925: terminal scrollback test still still flaky
Bram Moolenaar <Bram@vim.org>
parents: 15834
diff changeset
378 \ 'set shell=/bin/sh noruler',
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
379 \ 'terminal',
15836
fe7e94f39e7f patch 8.1.0925: terminal scrollback test still still flaky
Bram Moolenaar <Bram@vim.org>
parents: 15834
diff changeset
380 \ 'sleep 200m',
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
381 \ 'call feedkeys("tail -n 100 -f Xtext\<CR>", "xt")',
15836
fe7e94f39e7f patch 8.1.0925: terminal scrollback test still still flaky
Bram Moolenaar <Bram@vim.org>
parents: 15834
diff changeset
382 \ 'sleep 100m',
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
383 \ 'call feedkeys("\<C-W>N", "xt")',
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
384 \ ], 'XTest_postponed')
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
385 let buf = RunVimInTerminal('-S XTest_postponed', {})
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
386 " Check that the Xtext lines are displayed and in Terminal-Normal mode
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
387 call VerifyScreenDump(buf, 'Test_terminal_scrollback_1', {})
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
388
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
389 silent !echo 'one more line' >>Xtext
16318
3019a0744c46 patch 8.1.1164: gettitle test is failing when server name differs
Bram Moolenaar <Bram@vim.org>
parents: 16314
diff changeset
390 " Screen will not change, move cursor to get a different dump
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
391 call term_sendkeys(buf, "k")
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
392 call VerifyScreenDump(buf, 'Test_terminal_scrollback_2', {})
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
393
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
394 " Back to Terminal-Job mode, text will scroll and show the extra line.
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
395 call term_sendkeys(buf, "a")
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
396 call VerifyScreenDump(buf, 'Test_terminal_scrollback_3', {})
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
397
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
398 " stop "tail -f"
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
399 call term_sendkeys(buf, "\<C-C>")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
400 call TermWait(buf, 25)
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
401 " stop shell
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
402 call term_sendkeys(buf, "exit\<CR>")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
403 call TermWait(buf, 50)
19667
a088571e1d9d patch 8.2.0390: terminal postponed scrollback test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 19651
diff changeset
404 " close terminal window
19633
dd3e5533a7d2 patch 8.2.0373: type of term_sendkeys() is unknown
Bram Moolenaar <Bram@vim.org>
parents: 19629
diff changeset
405 let tsk_ret = term_sendkeys(buf, ":q\<CR>")
dd3e5533a7d2 patch 8.2.0373: type of term_sendkeys() is unknown
Bram Moolenaar <Bram@vim.org>
parents: 19629
diff changeset
406
dd3e5533a7d2 patch 8.2.0373: type of term_sendkeys() is unknown
Bram Moolenaar <Bram@vim.org>
parents: 19629
diff changeset
407 " check type of term_sendkeys() return value
dd3e5533a7d2 patch 8.2.0373: type of term_sendkeys() is unknown
Bram Moolenaar <Bram@vim.org>
parents: 19629
diff changeset
408 echo type(tsk_ret)
dd3e5533a7d2 patch 8.2.0373: type of term_sendkeys() is unknown
Bram Moolenaar <Bram@vim.org>
parents: 19629
diff changeset
409
15826
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
410 call StopVimInTerminal(buf)
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
411 call delete('XTest_postponed')
1f2edc01e7ed patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Bram Moolenaar <Bram@vim.org>
parents: 15725
diff changeset
412 call delete('Xtext')
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
413 endfunc
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
414
15828
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
415 " Run diff on two dumps with different size.
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
416 func Test_terminal_dumpdiff_size()
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
417 call assert_equal(1, winnr('$'))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
418 call term_dumpdiff('dumps/Test_incsearch_search_01.dump', 'dumps/Test_popup_command_01.dump')
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
419 call assert_equal(2, winnr('$'))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
420 call assert_match('Test_incsearch_search_01.dump', getline(10))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
421 call assert_match(' +++++$', getline(11))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
422 call assert_match('Test_popup_command_01.dump', getline(31))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
423 call assert_equal(repeat('+', 75), getline(30))
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
424 quit
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
425 endfunc
8f112782a2e9 patch 8.1.0921: terminal test sometimes fails; using memory after free
Bram Moolenaar <Bram@vim.org>
parents: 15826
diff changeset
426
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
427 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
428 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
429
12192
6947d5bcf57f patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents: 12166
diff changeset
430 exe 'terminal ++rows=5 ' . 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
431 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
432 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
433 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
434
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
435 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
436 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
437 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
438 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
439
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
440 vsplit
12192
6947d5bcf57f patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents: 12166
diff changeset
441 exe 'terminal ++rows=5 ++cols=33 ' . cmd
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
442 call assert_equal([5, 33], ''->term_getsize())
13678
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
443
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
444 call term_setsize('', 6, 0)
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
445 call assert_equal([6, 33], term_getsize(''))
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
446
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
447 eval ''->term_setsize(0, 35)
13678
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
448 call assert_equal([6, 35], term_getsize(''))
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
449
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
450 call term_setsize('', 7, 30)
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
451 call assert_equal([7, 30], term_getsize(''))
39fcaaa973db patch 8.0.1711: term_setsize() is not implemented yet
Christian Brabandt <cb@256bit.org>
parents: 13650
diff changeset
452
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
453 bwipe!
13684
1651a4c5c27a patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Christian Brabandt <cb@256bit.org>
parents: 13678
diff changeset
454 call assert_fails("call term_setsize('', 7, 30)", "E955:")
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
455
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
456 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
457 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
458 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
459 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
460
12192
6947d5bcf57f patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents: 12166
diff changeset
461 exe 'vertical terminal ++cols=20 ' . 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
462 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
463 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
464 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
465
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
466 eval cmd->term_start({'vertical': 1, 'term_cols': 26})
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
467 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
468 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
469 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
470
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
471 split
12192
6947d5bcf57f patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents: 12166
diff changeset
472 exe 'vertical terminal ++rows=6 ++cols=20 ' . 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
473 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
474 bwipe!
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
475 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
476
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
477 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
478 let size = term_getsize('')
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
479 bwipe!
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12046
diff changeset
480 call assert_equal([7, 27], size)
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
481
26113
c421c9599d83 patch 8.2.3589: failure when "term_rows" of term_start() is an unusual value
Bram Moolenaar <Bram@vim.org>
parents: 26105
diff changeset
482 call assert_fails("call term_start(cmd, {'term_rows': -1})", 'E475:')
c421c9599d83 patch 8.2.3589: failure when "term_rows" of term_start() is an unusual value
Bram Moolenaar <Bram@vim.org>
parents: 26105
diff changeset
483 call assert_fails("call term_start(cmd, {'term_rows': 1001})", 'E475:')
26105
fd1cbe72815a patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
484 if has('float')
fd1cbe72815a patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
485 call assert_fails("call term_start(cmd, {'term_rows': 10.0})", 'E805:')
fd1cbe72815a patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
486 endif
fd1cbe72815a patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
487
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
488 call delete('Xtext')
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
489 endfunc
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
490
24006
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
491 func Test_terminal_zero_height()
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
492 split
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
493 wincmd j
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
494 anoremenu 1.1 WinBar.test :
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
495 terminal ++curwin
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
496 wincmd k
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
497 wincmd _
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
498 redraw
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
499
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
500 call term_sendkeys(bufnr(), "exit\r")
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
501 bwipe!
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
502 endfunc
d9afd9008910 patch 8.2.2545: errors and crash when terminal window is zero height
Bram Moolenaar <Bram@vim.org>
parents: 23890
diff changeset
503
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
504 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
505 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
506 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
507
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
508 split Xdummy
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
509 call setline(1, 'dummy')
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
510 write
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
511 call assert_equal(1, getbufinfo('Xdummy')[0].loaded)
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
512 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
513 call assert_equal(2, winnr('$'))
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
514 call assert_equal(0, getbufinfo('Xdummy')[0].loaded)
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
515 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
516
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
517 split Xdummy
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
518 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
519 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
520 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
521
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
522 split Xdummy
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
523 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
524 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
525 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
526 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
527 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
528 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
529
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
530 split Xdummy
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
531 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
532 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
533 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
534 bwipe!
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
535
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
536 split Xdummy
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
537 bwipe!
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
538 call delete('Xtext')
20617
c81f61e3b508 patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Bram Moolenaar <Bram@vim.org>
parents: 20524
diff changeset
539 call delete('Xdummy')
11975
5cc005cf312f patch 8.0.0868: cannot specify the terminal size on the command line
Christian Brabandt <cb@256bit.org>
parents: 11973
diff changeset
540 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
541
12903
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
542 func s:get_sleep_cmd()
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
543 if s:python != ''
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
544 let cmd = s:python . " test_short_sleep.py"
14027
6d9783027174 patch 8.1.0031: terminal test aucmd_on_close if flaky
Christian Brabandt <cb@256bit.org>
parents: 14023
diff changeset
545 " 500 was not enough for Travis
6d9783027174 patch 8.1.0031: terminal test aucmd_on_close if flaky
Christian Brabandt <cb@256bit.org>
parents: 14023
diff changeset
546 let waittime = 900
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
547 else
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
548 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
549 let waittime = 2000
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
550 if has('win32')
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
551 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
552 else
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
553 let cmd = 'sleep 1'
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
554 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
555 endif
12903
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
556 return [cmd, waittime]
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
557 endfunc
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
558
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
559 func Test_terminal_finish_open_close()
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
560 call assert_equal(1, winnr('$'))
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
561
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
562 let [cmd, waittime] = s:get_sleep_cmd()
12062
191ccece2f5d patch 8.0.0911: terminal test takes too long
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
563
13476
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
564 " shell terminal closes automatically
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
565 terminal
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
566 let buf = bufnr('%')
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
567 call assert_equal(2, winnr('$'))
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
568 " Wait for the shell to display a prompt
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
569 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
570 call StopShellInTerminal(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
571 call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
13476
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
572
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
573 " shell terminal that does not close automatically
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
574 terminal ++noclose
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
575 let buf = bufnr('%')
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
576 call assert_equal(2, winnr('$'))
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
577 " Wait for the shell to display a prompt
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
578 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
579 call StopShellInTerminal(buf)
13476
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
580 call assert_equal(2, winnr('$'))
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
581 quit
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
582 call assert_equal(1, winnr('$'))
d130044d4f1f patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents: 13462
diff changeset
583
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
584 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
585 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
586 wincmd p
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
587 call WaitForAssert({-> assert_equal(1, winnr('$'))}, 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
588
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
589 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
590 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
591 wincmd p
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
592 call WaitForAssert({-> assert_equal(1, winnr('$'))}, 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
593 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
594
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
595 exe 'terminal ++open ' . cmd
12271
e4aa68825575 patch 8.0.1015: missing update to terminal test
Christian Brabandt <cb@256bit.org>
parents: 12263
diff changeset
596 close!
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
597 call WaitForAssert({-> assert_equal(2, winnr('$'))}, 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
598 bwipe
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
599
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
600 call term_start(cmd, {'term_finish': 'open'})
12271
e4aa68825575 patch 8.0.1015: missing update to terminal test
Christian Brabandt <cb@256bit.org>
parents: 12263
diff changeset
601 close!
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
602 call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
12064
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
603 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
604
12064
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
605 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
606 call assert_equal(1, winnr('$'))
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
607 call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
12064
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
608 bwipe
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
609
407a475c67fd patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents: 12062
diff changeset
610 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
611 call assert_equal(1, winnr('$'))
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
612 call WaitForAssert({-> assert_equal(2, winnr('$'))}, 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
613 bwipe
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
614
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
615 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
616 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
617 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
618 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
619
22864
b825d8ec9a76 patch 8.2.1979: "term_opencmd" option of term_start() is truncated
Bram Moolenaar <Bram@vim.org>
parents: 22822
diff changeset
620 call term_start(cmd, {'term_finish': 'open', 'term_opencmd': '4split | buffer %d | let g:result = "opened the buffer in a window"'})
12271
e4aa68825575 patch 8.0.1015: missing update to terminal test
Christian Brabandt <cb@256bit.org>
parents: 12263
diff changeset
621 close!
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
622 call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
623 call assert_equal(4, winheight(0))
22864
b825d8ec9a76 patch 8.2.1979: "term_opencmd" option of term_start() is truncated
Bram Moolenaar <Bram@vim.org>
parents: 22822
diff changeset
624 call assert_equal('opened the buffer in a window', g:result)
b825d8ec9a76 patch 8.2.1979: "term_opencmd" option of term_start() is truncated
Bram Moolenaar <Bram@vim.org>
parents: 22822
diff changeset
625 unlet g:result
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12064
diff changeset
626 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
627 endfunc
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
628
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
629 func Test_terminal_cwd()
18473
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
630 if has('win32')
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
631 let cmd = 'cmd /c cd'
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
632 else
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
633 CheckExecutable pwd
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
634 let cmd = 'pwd'
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
635 endif
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
636 call mkdir('Xdir')
18473
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18450
diff changeset
637 let buf = term_start(cmd, {'cwd': 'Xdir'})
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
638 call WaitForAssert({-> assert_equal('Xdir', fnamemodify(getline(1), ":t"))})
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
639
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
640 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
641 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
642 endfunc
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
643
14948
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
644 func Test_terminal_cwd_failure()
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
645 " Case 1: Provided directory is not actually a directory. Attempt to make
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
646 " the file executable as well.
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
647 call writefile([], 'Xfile')
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
648 call setfperm('Xfile', 'rwx------')
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
649 call assert_fails("call term_start(&shell, {'cwd': 'Xfile'})", 'E475:')
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
650 call delete('Xfile')
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
651
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
652 " Case 2: Directory does not exist.
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
653 call assert_fails("call term_start(&shell, {'cwd': 'Xdir'})", 'E475:')
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
654
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
655 " Case 3: Directory exists but is not accessible.
14995
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
656 " Skip this for root, it will be accessible anyway.
18277
f6dcf7eabd26 patch 8.1.2133: some tests fail when run as root
Bram Moolenaar <Bram@vim.org>
parents: 18170
diff changeset
657 if !IsRoot()
14995
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
658 call mkdir('XdirNoAccess', '', '0600')
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
659 " return early if the directory permissions could not be set properly
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
660 if getfperm('XdirNoAccess')[2] == 'x'
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
661 call delete('XdirNoAccess', 'rf')
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
662 return
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
663 endif
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
664 call assert_fails("call term_start(&shell, {'cwd': 'XdirNoAccess'})", 'E475:')
bc0f3c4fb992 patch 8.1.0509: checking cwd not accessible fails for root
Bram Moolenaar <Bram@vim.org>
parents: 14948
diff changeset
665 call delete('XdirNoAccess', 'rf')
14948
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
666 endif
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
667 endfunc
cb07193c6257 patch 8.1.0485: term_start() does not check if directory is accessible
Bram Moolenaar <Bram@vim.org>
parents: 14459
diff changeset
668
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
669 func Test_terminal_servername()
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21606
diff changeset
670 CheckFeature clientserver
14063
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
671 call s:test_environment("VIM_SERVERNAME", v:servername)
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
672 endfunc
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
673
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
674 func Test_terminal_version()
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
675 call s:test_environment("VIM_TERMINAL", string(v:version))
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
676 endfunc
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
677
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
678 func s:test_environment(name, value)
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
679 let buf = Run_shell_in_terminal({})
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
680 " Wait for the shell to display a prompt
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
681 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
682 if has('win32')
14063
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
683 call term_sendkeys(buf, "echo %" . a:name . "%\r")
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
684 else
14063
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
685 call term_sendkeys(buf, "echo $" . a:name . "\r")
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
686 endif
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
687 call TermWait(buf)
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
688 call StopShellInTerminal(buf)
14063
f39150ec146e patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 14027
diff changeset
689 call WaitForAssert({-> assert_equal(a:value, getline(2))})
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
690
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
691 exe buf . 'bwipe'
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
692 unlet buf
12907
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
693 endfunc
32531a3eab1f patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents: 12903
diff changeset
694
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
695 func Test_terminal_env()
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
696 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
697 " Wait for the shell to display a prompt
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
698 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
12724
17c257dd2438 patch 8.0.1240: MS-Windows: term_start() does not support environment
Christian Brabandt <cb@256bit.org>
parents: 12650
diff changeset
699 if has('win32')
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
700 call term_sendkeys(buf, "echo %TESTENV%\r")
12724
17c257dd2438 patch 8.0.1240: MS-Windows: term_start() does not support environment
Christian Brabandt <cb@256bit.org>
parents: 12650
diff changeset
701 else
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
702 call term_sendkeys(buf, "echo $TESTENV\r")
12724
17c257dd2438 patch 8.0.1240: MS-Windows: term_start() does not support environment
Christian Brabandt <cb@256bit.org>
parents: 12650
diff changeset
703 endif
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
704 eval buf->TermWait()
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
705 call StopShellInTerminal(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
706 call WaitForAssert({-> assert_equal('correct', getline(2))})
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
707
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
708 exe buf . 'bwipe'
12043
2796a2c9fc17 patch 8.0.0902: cannot specify directory or environment for a job
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
709 endfunc
12086
69f2392e6cfb patch 8.0.0923: crash in GUI when terminal job exits
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
710
12096
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
711 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
712 let buf = term_start([&shell, &shellcmdflag, 'echo "123"'])
22742
f7f2d73ff85e patch 8.2.1919: assert_fails() setting emsg_silent changes normal execution
Bram Moolenaar <Bram@vim.org>
parents: 22448
diff changeset
713 call assert_fails(buf . 'bwipe', 'E89:')
12096
0a61213afdd2 patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents: 12086
diff changeset
714 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
715 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
716 endfunction
12154
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
717
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
718 func Test_terminal_noblock()
25969
a5a772dace5b patch 8.2.3518: Test_xrestore sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 24557
diff changeset
719 let g:test_is_flaky = 1
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
720 let buf = term_start(&shell)
19770
4e843fc8772f patch 8.2.0441: terminal noblock test is still failing on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19768
diff changeset
721 let wait_time = 5000
4e843fc8772f patch 8.2.0441: terminal noblock test is still failing on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19768
diff changeset
722 let letters = 'abcdefghijklmnopqrstuvwxyz'
15677
772e72b046a3 patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
723 if has('bsd') || has('mac') || has('sun')
12339
040ec95b8647 patch 8.0.1049: shell on Mac can't handle long text
Christian Brabandt <cb@256bit.org>
parents: 12313
diff changeset
724 " The shell or something else has a problem dealing with more than 1000
19770
4e843fc8772f patch 8.2.0441: terminal noblock test is still failing on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19768
diff changeset
725 " characters at the same time. It's very slow too.
12339
040ec95b8647 patch 8.0.1049: shell on Mac can't handle long text
Christian Brabandt <cb@256bit.org>
parents: 12313
diff changeset
726 let len = 1000
19768
0d1088e3c53f patch 8.2.0440: terminal noblock test is still very flaky on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19764
diff changeset
727 let wait_time = 15000
19770
4e843fc8772f patch 8.2.0441: terminal noblock test is still failing on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19768
diff changeset
728 let letters = 'abcdefghijklm'
15725
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
729 " NPFS is used in Windows, nonblocking mode does not work properly.
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
730 elseif has('win32')
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
731 let len = 1
12339
040ec95b8647 patch 8.0.1049: shell on Mac can't handle long text
Christian Brabandt <cb@256bit.org>
parents: 12313
diff changeset
732 else
040ec95b8647 patch 8.0.1049: shell on Mac can't handle long text
Christian Brabandt <cb@256bit.org>
parents: 12313
diff changeset
733 let len = 5000
040ec95b8647 patch 8.0.1049: shell on Mac can't handle long text
Christian Brabandt <cb@256bit.org>
parents: 12313
diff changeset
734 endif
12154
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
735
19768
0d1088e3c53f patch 8.2.0440: terminal noblock test is still very flaky on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19764
diff changeset
736 " Send a lot of text lines, should be buffered properly.
19770
4e843fc8772f patch 8.2.0441: terminal noblock test is still failing on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19768
diff changeset
737 for c in split(letters, '\zs')
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
738 call term_sendkeys(buf, 'echo ' . repeat(c, len) . "\<cr>")
12154
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
739 endfor
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
740 call term_sendkeys(buf, "echo done\<cr>")
12198
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
741
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
742 " On MS-Windows there is an extra empty line below "done". Find "done" in
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
743 " the last-but-one or the last-but-two line.
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
744 let lnum = term_getsize(buf)[0] - 1
19768
0d1088e3c53f patch 8.2.0440: terminal noblock test is still very flaky on BSD
Bram Moolenaar <Bram@vim.org>
parents: 19764
diff changeset
745 call WaitForAssert({-> assert_match('done', term_getline(buf, lnum - 1) .. '//' .. term_getline(buf, lnum))}, wait_time)
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
746 let line = term_getline(buf, lnum)
12198
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
747 if line !~ 'done'
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
748 let line = term_getline(buf, lnum - 1)
12198
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
749 endif
65cff399750b patch 8.0.0979: terminal noblock test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12196
diff changeset
750 call assert_match('done', line)
12154
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
751
12765
c1347c968d31 patch 8.0.1260: using global variables for WaitFor()
Christian Brabandt <cb@256bit.org>
parents: 12734
diff changeset
752 let g:job = term_getjob(buf)
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
753 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
754 call TermWait(buf)
12166
f512c507b061 patch 8.0.0963: terminal test fails on MacOS
Christian Brabandt <cb@256bit.org>
parents: 12156
diff changeset
755 unlet g:job
12154
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
756 bwipe
71e10b81226d patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents: 12126
diff changeset
757 endfunc
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
758
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
759 func Test_terminal_write_stdin()
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
760 " TODO: enable once writing to stdin works on MS-Windows
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
761 CheckNotMSWindows
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
762 CheckExecutable wc
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
763
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
764 call setline(1, ['one', 'two', 'three'])
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
765 %term wc
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
766 call WaitForAssert({-> assert_match('3', getline("$"))})
12309
e1f44e4afe67 patch 8.0.1034: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12271
diff changeset
767 let nrs = split(getline('$'))
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
768 call assert_equal(['3', '3', '14'], nrs)
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
769 %bwipe!
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
770
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
771 call setline(1, ['one', 'two', 'three', 'four'])
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
772 2,3term wc
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
773 call WaitForAssert({-> assert_match('2', getline("$"))})
12309
e1f44e4afe67 patch 8.0.1034: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12271
diff changeset
774 let nrs = split(getline('$'))
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
775 call assert_equal(['2', '2', '10'], nrs)
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
776 %bwipe!
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
777 endfunc
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
778
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
779 func Test_terminal_eof_arg()
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
780 call CheckPython(s:python)
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
781
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
782 call setline(1, ['print("hello")'])
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
783 exe '1term ++eof=exit(123) ' .. s:python
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
784 " MS-Windows echoes the input, Unix doesn't.
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
785 if has('win32')
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
786 call WaitFor({-> getline('$') =~ 'exit(123)'})
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
787 call assert_equal('hello', getline(line('$') - 1))
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
788 else
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
789 call WaitFor({-> getline('$') =~ 'hello'})
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
790 call assert_equal('hello', getline('$'))
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
791 endif
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
792 call assert_equal(123, bufnr()->term_getjob()->job_info().exitval)
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
793 %bwipe!
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
794 endfunc
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
795
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
796 func Test_terminal_eof_arg_win32_ctrl_z()
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
797 CheckMSWindows
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
798 call CheckPython(s:python)
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
799
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
800 call setline(1, ['print("hello")'])
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
801 exe '1term ++eof=<C-Z> ' .. s:python
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
802 call WaitForAssert({-> assert_match('\^Z', getline(line('$') - 1))})
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
803 call assert_match('\^Z', getline(line('$') - 1))
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
804 %bwipe!
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
805 endfunc
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
806
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
807 func Test_terminal_duplicate_eof_arg()
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
808 call CheckPython(s:python)
12313
44f3c9b7eec4 patch 8.0.1036: ++eof argument for terminal only available on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12309
diff changeset
809
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
810 " Check the last specified ++eof arg is used and should not memory leak.
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
811 new
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
812 call setline(1, ['print("hello")'])
20219
820f24dc1e3e patch 8.2.0665: wrongly assuming Python executable is called "python"
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
813 exe '1term ++eof=<C-Z> ++eof=exit(123) ' .. s:python
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
814 " MS-Windows echoes the input, Unix doesn't.
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
815 if has('win32')
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
816 call WaitFor({-> getline('$') =~ 'exit(123)'})
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
817 call assert_equal('hello', getline(line('$') - 1))
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
818 else
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
819 call WaitFor({-> getline('$') =~ 'hello'})
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
820 call assert_equal('hello', getline('$'))
12313
44f3c9b7eec4 patch 8.0.1036: ++eof argument for terminal only available on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12309
diff changeset
821 endif
19245
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
822 call assert_equal(123, bufnr()->term_getjob()->job_info().exitval)
5ed8297121fa patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
823 %bwipe!
12196
9237b087583c patch 8.0.0978: writing to terminal job is not tested
Christian Brabandt <cb@256bit.org>
parents: 12192
diff changeset
824 endfunc
12240
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
825
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
826 func Test_terminal_no_cmd()
25969
a5a772dace5b patch 8.2.3518: Test_xrestore sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 24557
diff changeset
827 let g:test_is_flaky = 1
12240
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
828 let buf = term_start('NONE', {})
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
829 call assert_notequal(0, buf)
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
830
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12357
diff changeset
831 let pty = job_info(term_getjob(buf))['tty_out']
12240
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
832 call assert_notequal('', pty)
15583
3137345451a4 patch 8.1.0799: calling deleted function; test doesn't work on Mac
Bram Moolenaar <Bram@vim.org>
parents: 15577
diff changeset
833 if has('gui_running') && !has('win32')
3137345451a4 patch 8.1.0799: calling deleted function; test doesn't work on Mac
Bram Moolenaar <Bram@vim.org>
parents: 15577
diff changeset
834 " In the GUI job_start() doesn't work, it does not read from the pty.
3137345451a4 patch 8.1.0799: calling deleted function; test doesn't work on Mac
Bram Moolenaar <Bram@vim.org>
parents: 15577
diff changeset
835 call system('echo "look here" > ' . pty)
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12357
diff changeset
836 else
15583
3137345451a4 patch 8.1.0799: calling deleted function; test doesn't work on Mac
Bram Moolenaar <Bram@vim.org>
parents: 15577
diff changeset
837 " Otherwise using a job works on all systems.
3137345451a4 patch 8.1.0799: calling deleted function; test doesn't work on Mac
Bram Moolenaar <Bram@vim.org>
parents: 15577
diff changeset
838 call job_start([&shell, &shellcmdflag, 'echo "look here" > ' . pty])
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12357
diff changeset
839 endif
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
840 call WaitForAssert({-> assert_match('look here', term_getline(buf, 1))})
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12357
diff changeset
841
12240
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
842 bwipe!
24abce52ad20 patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents: 12230
diff changeset
843 endfunc
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
844
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
845 func Test_terminal_special_chars()
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
846 " this file name only works on Unix
18041
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
847 CheckUnix
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
848
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
849 call mkdir('Xdir with spaces')
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
850 call writefile(['x'], 'Xdir with spaces/quoted"file')
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
851 term ls Xdir\ with\ spaces/quoted\"file
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
852 call WaitForAssert({-> assert_match('quoted"file', term_getline('', 1))})
19493
74add0046945 patch 8.2.0304: terminal test if failing on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19457
diff changeset
853 " make sure the job has finished
74add0046945 patch 8.2.0304: terminal test if failing on some systems
Bram Moolenaar <Bram@vim.org>
parents: 19457
diff changeset
854 call WaitForAssert({-> assert_match('finish', term_getstatus(bufnr()))})
12343
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
855
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
856 call delete('Xdir with spaces', 'rf')
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
857 bwipe
72046661f6d0 patch 8.0.1051: cannot run terminal with spaces in argument
Christian Brabandt <cb@256bit.org>
parents: 12339
diff changeset
858 endfunc
12345
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
859
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
860 func Test_terminal_wrong_options()
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
861 call assert_fails('call term_start(&shell, {
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
862 \ "in_io": "file",
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
863 \ "in_name": "xxx",
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
864 \ "out_io": "file",
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
865 \ "out_name": "xxx",
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
866 \ "err_io": "file",
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
867 \ "err_name": "xxx"
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
868 \ })', 'E474:')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
869 call assert_fails('call term_start(&shell, {
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
870 \ "out_buf": bufnr("%")
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
871 \ })', 'E474:')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
872 call assert_fails('call term_start(&shell, {
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
873 \ "err_buf": bufnr("%")
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
874 \ })', 'E474:')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
875 endfunc
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
876
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
877 func Test_terminal_redir_file()
25969
a5a772dace5b patch 8.2.3518: Test_xrestore sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 24557
diff changeset
878 let g:test_is_flaky = 1
13860
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
879 let cmd = Get_cat_123_cmd()
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
880 let buf = term_start(cmd, {'out_io': 'file', 'out_name': 'Xfile'})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
881 call TermWait(buf)
15725
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
882 " ConPTY may precede escape sequence. There are things that are not so.
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
883 if !has('conpty')
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
884 call WaitForAssert({-> assert_notequal(0, len(readfile("Xfile")))})
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
885 call assert_match('123', readfile('Xfile')[0])
a3e2e7948ee4 patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents: 15677
diff changeset
886 endif
13860
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
887 let g:job = term_getjob(buf)
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
888 call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
21445
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
889
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
890 if has('win32')
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
891 " On Windows we cannot delete a file being used by a process. When
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
892 " job_status() returns "dead", the process remains for a short time.
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
893 " Just wait for a moment.
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
894 sleep 50m
ae23caa42dac patch 8.2.1273: MS-Windows: terminal test may leave file behind
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
895 endif
13860
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
896 call delete('Xfile')
7f892e37b017 patch 8.0.1801: MS-Windows: redirecting terminal output does not work
Christian Brabandt <cb@256bit.org>
parents: 13835
diff changeset
897 bwipe
12345
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
898
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
899 if has('unix')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
900 call writefile(['one line'], 'Xfile')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
901 let buf = term_start('cat', {'in_io': 'file', 'in_name': 'Xfile'})
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
902 call TermWait(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
903 call WaitForAssert({-> assert_equal('one line', term_getline(buf, 1))})
12357
9a7fb1d01137 patch 8.0.1058: terminal redirection test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12355
diff changeset
904 let g:job = term_getjob(buf)
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
905 call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
12345
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
906 bwipe
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
907 call delete('Xfile')
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
908 endif
76ab57a79183 patch 8.0.1052: term_start() does not allow in_io, out_io and err_io options
Christian Brabandt <cb@256bit.org>
parents: 12343
diff changeset
909 endfunc
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
910
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
911 func TerminalTmap(remap)
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
912 let buf = Run_shell_in_terminal({})
24212
6ddfe0f45b4c patch 8.2.2647: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 24006
diff changeset
913 " Wait for the shell to display a prompt
6ddfe0f45b4c patch 8.2.2647: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 24006
diff changeset
914 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
915 call assert_equal('t', mode())
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
916
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
917 if a:remap
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
918 tmap 123 456
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
919 else
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
920 tnoremap 123 456
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
921 endif
12983
7a9c4a8b1ceb patch 8.0.1367: terminal test hangs, executing abcde
Christian Brabandt <cb@256bit.org>
parents: 12907
diff changeset
922 " don't use abcde, it's an existing command
7a9c4a8b1ceb patch 8.0.1367: terminal test hangs, executing abcde
Christian Brabandt <cb@256bit.org>
parents: 12907
diff changeset
923 tmap 456 abxde
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
924 call assert_equal('456', maparg('123', 't'))
12983
7a9c4a8b1ceb patch 8.0.1367: terminal test hangs, executing abcde
Christian Brabandt <cb@256bit.org>
parents: 12907
diff changeset
925 call assert_equal('abxde', maparg('456', 't'))
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
926 call feedkeys("123", 'tx')
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
927 call WaitForAssert({-> assert_match('abxde\|456', term_getline(buf, term_getcursor(buf)[0]))})
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
928 let lnum = term_getcursor(buf)[0]
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
929 if a:remap
12983
7a9c4a8b1ceb patch 8.0.1367: terminal test hangs, executing abcde
Christian Brabandt <cb@256bit.org>
parents: 12907
diff changeset
930 call assert_match('abxde', term_getline(buf, lnum))
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
931 else
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
932 call assert_match('456', term_getline(buf, lnum))
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
933 endif
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
934
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
935 call term_sendkeys(buf, "\r")
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
936 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
937 call TermWait(buf)
12457
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
938
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
939 tunmap 123
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
940 tunmap 456
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
941 call assert_equal('', maparg('123', 't'))
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
942 close
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
943 unlet g:job
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
944 endfunc
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
945
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
946 func Test_terminal_tmap()
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
947 call TerminalTmap(1)
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
948 call TerminalTmap(0)
dfb8254aa735 patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents: 12431
diff changeset
949 endfunc
12648
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
950
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
951 func Test_terminal_wall()
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
952 let buf = Run_shell_in_terminal({})
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
953 wall
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
954 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
955 call TermWait(buf)
12648
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
956 exe buf . 'bwipe'
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
957 unlet g:job
cdfd6eb8bb80 patch 8.0.1202: :wall gives an errof for a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12505
diff changeset
958 endfunc
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
959
13302
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
960 func Test_terminal_wqall()
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
961 let buf = Run_shell_in_terminal({})
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
962 call assert_fails('wqall', 'E948:')
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
963 call StopShellInTerminal(buf)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
964 call TermWait(buf)
13302
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
965 exe buf . 'bwipe'
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
966 unlet g:job
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
967 endfunc
b5806be0b36d patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13158
diff changeset
968
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
969 func Test_terminal_composing_unicode()
25969
a5a772dace5b patch 8.2.3518: Test_xrestore sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 24557
diff changeset
970 let g:test_is_flaky = 1
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
971 let save_enc = &encoding
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
972 set encoding=utf-8
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
973
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
974 if has('win32')
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
975 let cmd = "cmd /K chcp 65001"
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
976 let lnum = [3, 6, 9]
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
977 else
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
978 let cmd = &shell
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
979 let lnum = [1, 3, 5]
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
980 endif
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
981
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
982 enew
22161
4373f3569140 patch 8.2.1630: terminal test fails
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
983 let buf = term_start(cmd, {'curwin': 1})
12734
810a4c3d4f7e patch 8.0.1245: when WaitFor() has a wrong expression it just waits a second
Christian Brabandt <cb@256bit.org>
parents: 12724
diff changeset
984 let g:job = term_getjob(buf)
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
985 call WaitFor({-> term_getline(buf, 1) !=# ''}, 1000)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
986
13750
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
987 if has('win32')
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
988 call assert_equal('cmd', job_info(g:job).cmd[0])
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
989 else
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
990 call assert_equal(&shell, job_info(g:job).cmd[0])
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
991 endif
3ab6198c1f9a patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd
Christian Brabandt <cb@256bit.org>
parents: 13742
diff changeset
992
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
993 " ascii + composing
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
994 let txt = "a\u0308bc"
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
995 call term_sendkeys(buf, "echo " . txt)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
996 call TermWait(buf, 25)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
997 call assert_match("echo " . txt, term_getline(buf, lnum[0]))
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
998 call term_sendkeys(buf, "\<cr>")
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
999 call WaitForAssert({-> assert_equal(txt, term_getline(buf, lnum[0] + 1))}, 1000)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1000 let l = term_scrape(buf, lnum[0] + 1)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1001 call assert_equal("a\u0308", l[0].chars)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1002 call assert_equal("b", l[1].chars)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1003 call assert_equal("c", l[2].chars)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1004
23890
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1005 " multibyte + composing: がぎぐげご
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1006 let txt = "\u304b\u3099\u304e\u304f\u3099\u3052\u3053\u3099"
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1007 call term_sendkeys(buf, "echo " . txt)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
1008 call TermWait(buf, 25)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1009 call assert_match("echo " . txt, term_getline(buf, lnum[1]))
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1010 call term_sendkeys(buf, "\<cr>")
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1011 call WaitForAssert({-> assert_equal(txt, term_getline(buf, lnum[1] + 1))}, 1000)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1012 let l = term_scrape(buf, lnum[1] + 1)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1013 call assert_equal("\u304b\u3099", l[0].chars)
23890
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1014 call assert_equal(2, l[0].width)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1015 call assert_equal("\u304e", l[1].chars)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1016 call assert_equal(2, l[1].width)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1017 call assert_equal("\u304f\u3099", l[2].chars)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1018 call assert_equal(2, l[2].width)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1019 call assert_equal("\u3052", l[3].chars)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1020 call assert_equal(2, l[3].width)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1021 call assert_equal("\u3053\u3099", l[4].chars)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1022 call assert_equal(2, l[4].width)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1023
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1024 " \u00a0 + composing
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1025 let txt = "abc\u00a0\u0308"
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1026 call term_sendkeys(buf, "echo " . txt)
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19898
diff changeset
1027 call TermWait(buf, 25)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1028 call assert_match("echo " . txt, term_getline(buf, lnum[2]))
20263
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1029 call term_sendkeys(buf, "\<cr>")
a85a3207679f patch 8.2.0687: some tests do not work on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 20219
diff changeset
1030 call WaitForAssert({-> assert_equal(txt, term_getline(buf, lnum[2] + 1))}, 1000)
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1031 let l = term_scrape(buf, lnum[2] + 1)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1032 call assert_equal("\u00a0\u0308", l[3].chars)
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1033
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1034 call term_sendkeys(buf, "exit\r")
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1035 call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1036 bwipe!
12734
810a4c3d4f7e patch 8.0.1245: when WaitFor() has a wrong expression it just waits a second
Christian Brabandt <cb@256bit.org>
parents: 12724
diff changeset
1037 unlet g:job
12650
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1038 let &encoding = save_enc
f58755eb453e patch 8.0.1203: terminal window mistreats composing characters
Christian Brabandt <cb@256bit.org>
parents: 12648
diff changeset
1039 endfunc
12903
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1040
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1041 func Test_terminal_aucmd_on_close()
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1042 fun Nop()
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1043 let s:called = 1
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1044 endfun
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1045
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1046 aug repro
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1047 au!
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1048 au BufWinLeave * call Nop()
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1049 aug END
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1050
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1051 let [cmd, waittime] = s:get_sleep_cmd()
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1052
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1053 call assert_equal(1, winnr('$'))
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1054 new
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1055 call setline(1, ['one', 'two'])
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1056 exe 'term ++close ' . cmd
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1057 wincmd p
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1058 call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
12903
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1059 call assert_equal(1, s:called)
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1060 bwipe!
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1061
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1062 unlet s:called
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1063 au! repro
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1064 delfunc Nop
411a30bd7e8a patch 8.0.1328: trouble when using ":term ++close" with autocmd
Christian Brabandt <cb@256bit.org>
parents: 12765
diff changeset
1065 endfunc
13109
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1066
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1067 func Test_terminal_term_start_empty_command()
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1068 let cmd = "call term_start('', {'curwin' : 1, 'term_finish' : 'close'})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1069 call assert_fails(cmd, 'E474:')
13109
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1070 let cmd = "call term_start('', {'curwin' : 1, 'term_finish' : 'close'})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1071 call assert_fails(cmd, 'E474:')
13109
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1072 let cmd = "call term_start({}, {'curwin' : 1, 'term_finish' : 'close'})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1073 call assert_fails(cmd, 'E474:')
13109
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1074 let cmd = "call term_start(0, {'curwin' : 1, 'term_finish' : 'close'})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1075 call assert_fails(cmd, 'E474:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1076 let cmd = "call term_start('', {'term_name' : []})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1077 call assert_fails(cmd, 'E730:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1078 let cmd = "call term_start('', {'term_finish' : 'axby'})"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21897
diff changeset
1079 call assert_fails(cmd, 'E475:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1080 let cmd = "call term_start('', {'eof_chars' : []})"
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1081 call assert_fails(cmd, 'E730:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1082 let cmd = "call term_start('', {'term_kill' : []})"
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1083 call assert_fails(cmd, 'E730:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1084 let cmd = "call term_start('', {'tty_type' : []})"
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1085 call assert_fails(cmd, 'E730:')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1086 let cmd = "call term_start('', {'tty_type' : 'abc'})"
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1087 call assert_fails(cmd, 'E475:')
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1088 let cmd = "call term_start('', {'term_highlight' : []})"
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1089 call assert_fails(cmd, 'E730:')
20524
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1090 if has('gui') || has('termguicolors')
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1091 let cmd = "call term_start('', {'ansi_colors' : 'abc'})"
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1092 call assert_fails(cmd, 'E475:')
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1093 let cmd = "call term_start('', {'ansi_colors' : [[]]})"
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1094 call assert_fails(cmd, 'E730:')
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1095 let cmd = "call term_start('', {'ansi_colors' : repeat(['blue'], 18)})"
20524
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1096 if has('gui_running') || has('termguicolors')
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1097 call assert_fails(cmd, 'E475:')
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1098 else
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1099 call assert_fails(cmd, 'E254:')
bed30e6b5a09 patch 8.2.0816: terminal test fails when compiled with Athena
Bram Moolenaar <Bram@vim.org>
parents: 20514
diff changeset
1100 endif
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1101 endif
13109
fb1b162cdcf6 patch 8.0.1429: crash when calling term_start() with empty argument
Christian Brabandt <cb@256bit.org>
parents: 12983
diff changeset
1102 endfunc
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1103
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1104 func Test_terminal_response_to_control_sequence()
18041
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
1105 CheckUnix
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1106
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1107 let buf = Run_shell_in_terminal({})
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1108 call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1109
13543
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1110 call term_sendkeys(buf, "cat\<CR>")
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1111 call WaitForAssert({-> assert_match('cat', term_getline(buf, 1))})
13156
36c503100cb3 patch 8.0.1452: terminal test fails on some systems
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
1112
13543
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1113 " Request the cursor position.
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1114 call term_sendkeys(buf, "\x1b[6n\<CR>")
13156
36c503100cb3 patch 8.0.1452: terminal test fails on some systems
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
1115
36c503100cb3 patch 8.0.1452: terminal test fails on some systems
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
1116 " Wait for output from tty to display, below an empty line.
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1117 call WaitForAssert({-> assert_match('3;1R', term_getline(buf, 4))})
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1118
13543
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1119 " End "cat" gently.
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1120 call term_sendkeys(buf, "\<CR>\<C-D>")
98d832e4e394 patch 8.0.1645: test for terminal response to escape sequence may fail
Christian Brabandt <cb@256bit.org>
parents: 13541
diff changeset
1121
17164
7927cf327396 patch 8.1.1581: shared functions for testing are disorganised
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
1122 call StopShellInTerminal(buf)
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1123 exe buf . 'bwipe'
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1124 unlet g:job
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13109
diff changeset
1125 endfunc
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1126
26554
7a74515dde6b patch 8.2.3806: terminal focus test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 26546
diff changeset
1127 " Run this first, it fails when run after other tests.
7a74515dde6b patch 8.2.3806: terminal focus test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 26546
diff changeset
1128 func Test_aa_terminal_focus_events()
26462
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1129 CheckNotGui
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1130 CheckUnix
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1131 CheckRunVimInTerminal
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1132
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1133 let save_term = &term
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1134 let save_ttymouse = &ttymouse
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1135 set term=xterm ttymouse=xterm2
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1136
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1137 let lines =<< trim END
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1138 set term=xterm ttymouse=xterm2
26466
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1139 au FocusLost * call setline(1, 'I am lost') | set nomod
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1140 au FocusGained * call setline(1, 'I am back') | set nomod
26462
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1141 END
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1142 call writefile(lines, 'XtermFocus')
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1143 let buf = RunVimInTerminal('-S XtermFocus', #{rows: 6})
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1144
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1145 " Send a focus event to ourselves, it should be forwarded to the terminal
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1146 call feedkeys("\<Esc>[O", "Lx!")
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1147 call TermWait(buf)
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1148 call VerifyScreenDump(buf, 'Test_terminal_focus_1', {})
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1149
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1150 call feedkeys("\<Esc>[I", "Lx!")
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1151 call TermWait(buf)
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1152 call VerifyScreenDump(buf, 'Test_terminal_focus_2', {})
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1153
26466
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1154 " check that a command line being edited is redrawn in place
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1155 call term_sendkeys(buf, ":" .. repeat('x', 80))
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1156 call TermWait(buf)
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1157 call feedkeys("\<Esc>[O", "Lx!")
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1158 call TermWait(buf)
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1159 call VerifyScreenDump(buf, 'Test_terminal_focus_3', {})
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1160 call term_sendkeys(buf, "\<Esc>")
d413104a94c8 patch 8.2.3763: when editing the cmdline a callback may cause a scroll up
Bram Moolenaar <Bram@vim.org>
parents: 26462
diff changeset
1161
26462
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1162 call StopVimInTerminal(buf)
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1163 call delete('XtermFocus')
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1164 let &term = save_term
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1165 let &ttymouse = save_ttymouse
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1166 endfunc
3af56224dca6 patch 8.2.3761: focus change is not passed on to a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 26217
diff changeset
1167
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1168 " Run Vim, start a terminal in that Vim with the kill argument,
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1169 " :qall works.
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1170 func Run_terminal_qall_kill(line1, line2)
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1171 " 1. Open a terminal window and wait for the prompt to appear
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1172 " 2. set kill using term_setkill()
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1173 " 3. make Vim exit, it will kill the shell
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1174 let after = [
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1175 \ a:line1,
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1176 \ 'let buf = bufnr("%")',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1177 \ 'while term_getline(buf, 1) =~ "^\\s*$"',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1178 \ ' sleep 10m',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1179 \ 'endwhile',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1180 \ a:line2,
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1181 \ 'au VimLeavePre * call writefile(["done"], "Xdone")',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1182 \ 'qall',
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1183 \ ]
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1184 if !RunVim([], after, '')
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1185 return
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1186 endif
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1187 call assert_equal("done", readfile("Xdone")[0])
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1188 call delete("Xdone")
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1189 endfunc
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1190
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1191 " Run Vim in a terminal, then start a terminal in that Vim with a kill
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1192 " argument, check that :qall works.
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1193 func Test_terminal_qall_kill_arg()
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1194 call Run_terminal_qall_kill('term ++kill=kill', '')
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1195 endfunc
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1196
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1197 " Run Vim, start a terminal in that Vim, set the kill argument with
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1198 " term_setkill(), check that :qall works.
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1199 func Test_terminal_qall_kill_func()
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
1200 call Run_terminal_qall_kill('term', 'eval buf->term_setkill("kill")')
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1201 endfunc
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1202
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1203 " Run Vim, start a terminal in that Vim without the kill argument,
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1204 " check that :qall does not exit, :qall! does.
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1205 func Test_terminal_qall_exit()
16720
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1206 let after =<< trim [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1207 term
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1208 let buf = bufnr("%")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1209 while term_getline(buf, 1) =~ "^\\s*$"
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1210 sleep 10m
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1211 endwhile
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1212 set nomore
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1213 au VimLeavePre * call writefile(["too early"], "Xdone")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1214 qall
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1215 au! VimLeavePre * exe buf . "bwipe!" | call writefile(["done"], "Xdone")
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1216 cquit
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1217 [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 16656
diff changeset
1218
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1219 if !RunVim([], after, '')
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1220 return
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1221 endif
13499
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1222 call assert_equal("done", readfile("Xdone")[0])
661394686fd8 patch 8.0.1623: terminal kill tests are flaky
Christian Brabandt <cb@256bit.org>
parents: 13476
diff changeset
1223 call delete("Xdone")
13438
33eea5ce5415 patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13435
diff changeset
1224 endfunc
13440
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1225
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1226 " Run Vim in a terminal, then start a terminal in that Vim without a kill
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1227 " argument, check that :confirm qall works.
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1228 func Test_terminal_qall_prompt()
18143
2416e1a887ca patch 8.1.2066: no tests for state()
Bram Moolenaar <Bram@vim.org>
parents: 18137
diff changeset
1229 CheckRunVimInTerminal
13440
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1230 let buf = RunVimInTerminal('', {})
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1231
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1232 " Open a terminal window and wait for the prompt to appear
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1233 call term_sendkeys(buf, ":term\<CR>")
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1234 call WaitForAssert({-> assert_match('\[running]', term_getline(buf, 10))})
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1235 call WaitForAssert({-> assert_notmatch('^\s*$', term_getline(buf, 1))})
13440
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1236
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1237 " make Vim exit, it will prompt to kill the shell
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1238 call term_sendkeys(buf, "\<C-W>:confirm qall\<CR>")
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1239 call WaitForAssert({-> assert_match('ancel:', term_getline(buf, 20))})
13440
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1240 call term_sendkeys(buf, "y")
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1241 call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
13440
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1242
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1243 " close the terminal window where Vim was running
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1244 quit
22439cdda382 patch 8.0.1594: :conform qall not tested with active terminal window
Christian Brabandt <cb@256bit.org>
parents: 13438
diff changeset
1245 endfunc
13444
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1246
18402
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1247 " Run Vim in a terminal, then start a terminal window with a shell and check
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1248 " that Vim exits if it is closed.
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1249 func Test_terminal_exit()
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1250 CheckRunVimInTerminal
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1251
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1252 let lines =<< trim END
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1253 let winid = win_getid()
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1254 help
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1255 term
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1256 let termid = win_getid()
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1257 call win_gotoid(winid)
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1258 close
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1259 call win_gotoid(termid)
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1260 END
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1261 call writefile(lines, 'XtermExit')
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1262 let buf = RunVimInTerminal('-S XtermExit', #{rows: 10})
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1263 let job = term_getjob(buf)
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1264 call WaitForAssert({-> assert_equal("run", job_status(job))})
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1265
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1266 " quit the shell, it will make Vim exit
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1267 call term_sendkeys(buf, "exit\<CR>")
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1268 call WaitForAssert({-> assert_equal("dead", job_status(job))})
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1269
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1270 call delete('XtermExit')
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1271 endfunc
527b7084c556 patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents: 18327
diff changeset
1272
13462
568dcfac9daf patch 8.0.1605: terminal test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents: 13444
diff changeset
1273 func Test_terminal_open_autocmd()
13444
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1274 augroup repro
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1275 au!
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1276 au TerminalOpen * let s:called += 1
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1277 augroup END
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1278
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1279 let s:called = 0
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1280
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1281 " Open a terminal window with :terminal
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1282 terminal
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1283 call assert_equal(1, s:called)
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1284 bwipe!
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1285
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1286 " Open a terminal window with term_start()
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1287 call term_start(&shell)
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1288 call assert_equal(2, s:called)
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1289 bwipe!
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1290
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1291 " Open a hidden terminal buffer with :terminal
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1292 terminal ++hidden
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1293 call assert_equal(3, s:called)
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1294 for buf in term_list()
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1295 exe buf . "bwipe!"
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1296 endfor
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1297
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1298 " Open a hidden terminal buffer with term_start()
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1299 let buf = term_start(&shell, {'hidden': 1})
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1300 call assert_equal(4, s:called)
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1301 exe buf . "bwipe!"
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1302
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1303 unlet s:called
9f06f7aca74c patch 8.0.1596: no autocommand specifically for opening a terminal window
Christian Brabandt <cb@256bit.org>
parents: 13440
diff changeset
1304 au! repro
22872
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1305 endfunc
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1306
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1307 func Test_open_term_from_cmd()
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1308 CheckUnix
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1309 CheckRunVimInTerminal
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1310
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1311 let lines =<< trim END
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1312 call setline(1, ['a', 'b', 'c'])
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1313 3
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1314 set incsearch
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1315 cnoremap <F3> <Cmd>call term_start(['/bin/sh', '-c', ':'])<CR>
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1316 END
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1317 call writefile(lines, 'Xopenterm')
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1318 let buf = RunVimInTerminal('-S Xopenterm', {})
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1319
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1320 " this opens a window, incsearch should not use the old cursor position
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1321 call term_sendkeys(buf, "/\<F3>")
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1322 call VerifyScreenDump(buf, 'Test_terminal_from_cmd', {})
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1323 call term_sendkeys(buf, "\<Esc>")
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1324 call term_sendkeys(buf, ":q\<CR>")
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1325
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1326 call StopVimInTerminal(buf)
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1327 call delete('Xopenterm')
5a7db84713dc patch 8.2.1983: ml_get error when using <Cmd> to open a terminal
Bram Moolenaar <Bram@vim.org>
parents: 22864
diff changeset
1328 endfunc
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1329
23890
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1330 func Test_combining_double_width()
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1331 CheckUnix
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1332 CheckRunVimInTerminal
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1333
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1334 call writefile(["\xe3\x83\x9b\xe3\x82\x9a"], 'Xonedouble')
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1335 let lines =<< trim END
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1336 call term_start(['/bin/sh', '-c', 'cat Xonedouble'])
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1337 END
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1338 call writefile(lines, 'Xcombining')
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1339 let buf = RunVimInTerminal('-S Xcombining', #{rows: 9})
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1340
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1341 " this opens a window, incsearch should not use the old cursor position
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1342 call VerifyScreenDump(buf, 'Test_terminal_combining', {})
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1343 call term_sendkeys(buf, ":q\<CR>")
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1344
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1345 call StopVimInTerminal(buf)
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1346 call delete('Xonedouble')
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1347 call delete('Xcombining')
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1348 endfunc
57c71d51e937 patch 8.2.2487: terminal shows garbage after double-wide character
Bram Moolenaar <Bram@vim.org>
parents: 22987
diff changeset
1349
22876
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1350 func Test_terminal_popup_with_cmd()
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1351 " this was crashing
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1352 let buf = term_start(&shell, #{hidden: v:true})
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1353 let s:winid = popup_create(buf, {})
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1354 tnoremap <F3> <Cmd>call popup_close(s:winid)<CR>
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1355 call feedkeys("\<F3>", 'xt')
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1356
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1357 tunmap <F3>
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1358 exe 'bwipe! ' .. buf
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1359 unlet s:winid
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1360 endfunc
b952e0a3af2f patch 8.2.1985: crash when closing terminal popup with <Cmd> mapping
Bram Moolenaar <Bram@vim.org>
parents: 22872
diff changeset
1361
22900
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1362 func Test_terminal_popup_bufload()
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1363 let termbuf = term_start(&shell, #{hidden: v:true, term_finish: 'close'})
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1364 let winid = popup_create(termbuf, {})
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1365 sleep 50m
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1366
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1367 let newbuf = bufadd('')
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1368 call bufload(newbuf)
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1369 call setbufline(newbuf, 1, 'foobar')
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1370
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1371 " must not have switched to another window
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1372 call assert_equal(winid, win_getid())
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1373
22904
a7c1a92bd13c patch 8.2.1999: terminal popup test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 22902
diff changeset
1374 call StopShellInTerminal(termbuf)
a7c1a92bd13c patch 8.2.1999: terminal popup test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 22902
diff changeset
1375 call WaitFor({-> win_getid() != winid})
22900
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1376 exe 'bwipe! ' .. newbuf
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1377 endfunc
2c1520981e63 patch 8.2.1997: window changes when using bufload() while in a terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22882
diff changeset
1378
26544
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1379 func Test_terminal_popup_two_windows()
26546
d9aac1eaf9a3 patch 8.2.3802: terminal in two windows test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 26544
diff changeset
1380 CheckRunVimInTerminal
26544
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1381 CheckUnix
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1382
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1383 " use "sh" instead of "&shell" in the hope it will use a short prompt
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1384 let lines =<< trim END
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1385 let termbuf = term_start('sh', #{hidden: v:true, term_finish: 'close'})
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1386 exe 'buffer ' .. termbuf
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1387
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1388 let winid = popup_create(termbuf, #{line: 2, minwidth: 30, border: []})
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1389 sleep 50m
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1390
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1391 call term_sendkeys(termbuf, "echo 'test'")
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1392 END
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1393 call writefile(lines, 'XpopupScript')
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1394 let buf = RunVimInTerminal('-S XpopupScript', {})
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1395
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1396 " typed text appears both in normal window and in popup
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1397 call WaitForAssert({-> assert_match("echo 'test'", term_getline(buf, 1))})
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1398 call WaitForAssert({-> assert_match("echo 'test'", term_getline(buf, 3))})
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1399
26546
d9aac1eaf9a3 patch 8.2.3802: terminal in two windows test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 26544
diff changeset
1400 call term_sendkeys(buf, "\<CR>\<CR>exit\<CR>")
d9aac1eaf9a3 patch 8.2.3802: terminal in two windows test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 26544
diff changeset
1401 call TermWait(buf)
d9aac1eaf9a3 patch 8.2.3802: terminal in two windows test fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 26544
diff changeset
1402 call term_sendkeys(buf, ":q\<CR>")
26544
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1403 call StopVimInTerminal(buf)
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1404 call delete('XpopupScript')
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1405 endfunc
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1406
22882
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1407 func Test_terminal_popup_insert_cmd()
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1408 CheckUnix
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1409
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1410 inoremap <F3> <Cmd>call StartTermInPopup()<CR>
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1411 func StartTermInPopup()
22902
1bde09eef44a patch 8.2.1998: terminal Cmd test sometimes fails to close popup
Bram Moolenaar <Bram@vim.org>
parents: 22900
diff changeset
1412 call term_start(['/bin/sh', '-c', 'cat'], #{hidden: v:true, term_finish: 'close'})->popup_create(#{highlight: 'Pmenu'})
22882
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1413 endfunc
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1414 call feedkeys("i\<F3>")
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1415 sleep 10m
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1416 call assert_equal('n', mode())
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1417
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1418 call feedkeys("\<C-D>", 'xt')
22920
696364caabea patch 8.2.2007: test for insert mode in popup is not reliable
Bram Moolenaar <Bram@vim.org>
parents: 22904
diff changeset
1419 call WaitFor({-> popup_list() == []})
22882
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1420 delfunc StartTermInPopup
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1421 iunmap <F3>
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1422 endfunc
be7f52838056 patch 8.2.1988: still in Insert mode when opening terminal popup
Bram Moolenaar <Bram@vim.org>
parents: 22876
diff changeset
1423
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1424 func Check_dump01(off)
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1425 call assert_equal('one two three four five', trim(getline(a:off + 1)))
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1426 call assert_equal('~ Select Word', trim(getline(a:off + 7)))
13559
af68603e213d patch 8.0.1653: screen dump is made too soon
Christian Brabandt <cb@256bit.org>
parents: 13557
diff changeset
1427 call assert_equal(':popup PopUp', trim(getline(a:off + 20)))
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1428 endfunc
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1429
13557
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1430 func Test_terminal_dumpwrite_composing()
18143
2416e1a887ca patch 8.1.2066: no tests for state()
Bram Moolenaar <Bram@vim.org>
parents: 18137
diff changeset
1431 CheckRunVimInTerminal
26544
30abd8e55ee5 patch 8.2.3801: if a terminal shows in two windows, only one is redrawn
Bram Moolenaar <Bram@vim.org>
parents: 26466
diff changeset
1432
13557
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1433 let save_enc = &encoding
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1434 set encoding=utf-8
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1435 call assert_equal(1, winnr('$'))
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1436
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1437 let text = " a\u0300 e\u0302 o\u0308"
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1438 call writefile([text], 'Xcomposing')
13816
9b0e4976dac6 patch 8.0.1780: test fails because Vim in a terminal uses wrong 'encoding'
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
1439 let buf = RunVimInTerminal('--cmd "set encoding=utf-8" Xcomposing', {})
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13798
diff changeset
1440 call WaitForAssert({-> assert_match(text, term_getline(buf, 1))})
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
1441 eval 'Xdump'->term_dumpwrite(buf)
13557
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1442 let dumpline = readfile('Xdump')[0]
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1443 call assert_match('|à| |ê| |ö', dumpline)
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1444
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1445 call StopVimInTerminal(buf)
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1446 call delete('Xcomposing')
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1447 call delete('Xdump')
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1448 let &encoding = save_enc
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1449 endfunc
4911058c43eb patch 8.0.1652: term_dumpwrite() does not output composing characters
Christian Brabandt <cb@256bit.org>
parents: 13555
diff changeset
1450
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1451 " Tests for failures in the term_dumpwrite() function
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1452 func Test_terminal_dumpwrite_errors()
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1453 CheckRunVimInTerminal
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1454 call assert_fails("call term_dumpwrite({}, 'Xtest.dump')", 'E728:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1455 let buf = RunVimInTerminal('', {})
21897
e0af4660dfc7 patch 8.2.1498: on slow systems tests can be flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1456 call TermWait(buf)
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1457 call assert_fails("call term_dumpwrite(buf, 'Xtest.dump', '')", 'E715:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1458 call assert_fails("call term_dumpwrite(buf, [])", 'E730:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1459 call writefile([], 'Xtest.dump')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1460 call assert_fails("call term_dumpwrite(buf, 'Xtest.dump')", 'E953:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1461 call delete('Xtest.dump')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1462 call assert_fails("call term_dumpwrite(buf, '')", 'E482:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1463 call assert_fails("call term_dumpwrite(buf, test_null_string())", 'E482:')
20508
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1464 call test_garbagecollect_now()
22780
2e681033d766 patch 8.2.1938: wiping out a terminal buffer makes some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22742
diff changeset
1465 call StopVimInTerminal(buf, 0)
21897
e0af4660dfc7 patch 8.2.1498: on slow systems tests can be flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1466 call TermWait(buf)
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1467 call assert_fails("call term_dumpwrite(buf, 'Xtest.dump')", 'E958:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1468 call assert_fails('call term_sendkeys([], ":q\<CR>")', 'E745:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1469 call assert_equal(0, term_sendkeys(buf, ":q\<CR>"))
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1470 endfunc
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1471
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1472 " just testing basic functionality.
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1473 func Test_terminal_dumpload()
16912
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1474 let curbuf = winbufnr('')
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1475 call assert_equal(1, winnr('$'))
16912
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1476 let buf = term_dumpload('dumps/Test_popup_command_01.dump')
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1477 call assert_equal(2, winnr('$'))
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1478 call assert_equal(20, line('$'))
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1479 call Check_dump01(0)
16912
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1480
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1481 " Load another dump in the same window
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
1482 let buf2 = 'dumps/Test_diff_01.dump'->term_dumpload({'bufnr': buf})
16912
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1483 call assert_equal(buf, buf2)
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1484 call assert_notequal('one two three four five', trim(getline(1)))
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1485
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1486 " Load the first dump again in the same window
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1487 let buf2 = term_dumpload('dumps/Test_popup_command_01.dump', {'bufnr': buf})
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1488 call assert_equal(buf, buf2)
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1489 call Check_dump01(0)
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1490
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1491 call assert_fails("call term_dumpload('dumps/Test_popup_command_01.dump', {'bufnr': curbuf})", 'E475:')
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1492 call assert_fails("call term_dumpload('dumps/Test_popup_command_01.dump', {'bufnr': 9999})", 'E86:')
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1493 new
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1494 let closedbuf = winbufnr('')
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1495 quit
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1496 call assert_fails("call term_dumpload('dumps/Test_popup_command_01.dump', {'bufnr': closedbuf})", 'E475:')
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1497 call assert_fails('call term_dumpload([])', 'E730:')
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1498 call assert_fails('call term_dumpload("xabcy.dump")', 'E485:')
16912
a5e3509b33ca patch 8.1.1457: cannot reuse a buffer when loading a screen dump
Bram Moolenaar <Bram@vim.org>
parents: 16720
diff changeset
1499
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1500 quit
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1501 endfunc
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1502
18327
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1503 func Test_terminal_dumpload_dump()
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1504 CheckRunVimInTerminal
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1505
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1506 let lines =<< trim END
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1507 call term_dumpload('dumps/Test_popupwin_22.dump', #{term_rows: 12})
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1508 END
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1509 call writefile(lines, 'XtermDumpload')
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1510 let buf = RunVimInTerminal('-S XtermDumpload', #{rows: 15})
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1511 call VerifyScreenDump(buf, 'Test_terminal_dumpload', {})
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1512
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1513 call StopVimInTerminal(buf)
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1514 call delete('XtermDumpload')
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1515 endfunc
0e9d3a77c624 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Bram Moolenaar <Bram@vim.org>
parents: 18321
diff changeset
1516
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1517 func Test_terminal_dumpdiff()
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1518 call assert_equal(1, winnr('$'))
18033
049a7481d737 patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
1519 eval 'dumps/Test_popup_command_01.dump'->term_dumpdiff('dumps/Test_popup_command_02.dump')
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1520 call assert_equal(2, winnr('$'))
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1521 call assert_equal(62, line('$'))
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1522 call Check_dump01(0)
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1523 call Check_dump01(42)
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1524 call assert_equal(' bbbbbbbbbbbbbbbbbb ', getline(26)[0:29])
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1525 quit
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1526
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1527 call assert_fails('call term_dumpdiff("X1.dump", [])', 'E730:')
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1528 call assert_fails('call term_dumpdiff("X1.dump", "X2.dump")', 'E485:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1529 call writefile([], 'X1.dump')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1530 call assert_fails('call term_dumpdiff("X1.dump", "X2.dump")', 'E485:')
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
1531 call delete('X1.dump')
13525
7d0a8ca17f30 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Christian Brabandt <cb@256bit.org>
parents: 13499
diff changeset
1532 endfunc
13527
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1533
15832
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1534 func Test_terminal_dumpdiff_swap()
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1535 call assert_equal(1, winnr('$'))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1536 call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_popup_command_03.dump')
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1537 call assert_equal(2, winnr('$'))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1538 call assert_equal(62, line('$'))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1539 call assert_match('Test_popup_command_01.dump', getline(21))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1540 call assert_match('Test_popup_command_03.dump', getline(42))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1541 call assert_match('Undo', getline(3))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1542 call assert_match('three four five', getline(45))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1543
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1544 normal s
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1545 call assert_match('Test_popup_command_03.dump', getline(21))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1546 call assert_match('Test_popup_command_01.dump', getline(42))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1547 call assert_match('three four five', getline(3))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1548 call assert_match('Undo', getline(45))
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1549 quit
20508
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1550
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1551 " Diff two terminal dump files with different number of rows
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1552 " Swap the diffs
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1553 call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_winline_rnu.dump')
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1554 call assert_match('Test_popup_command_01.dump', getline(21))
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1555 call assert_match('Test_winline_rnu.dump', getline(42))
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1556 normal s
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1557 call assert_match('Test_winline_rnu.dump', getline(6))
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1558 call assert_match('Test_popup_command_01.dump', getline(27))
357dea6b9fde patch 8.2.0808: not enough testing for the terminal window
Bram Moolenaar <Bram@vim.org>
parents: 20502
diff changeset
1559 quit
15832
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1560 endfunc
85c94163c4ab patch 8.1.0923: terminal dump diff swap does not update file names
Bram Moolenaar <Bram@vim.org>
parents: 15830
diff changeset
1561
13527
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1562 func Test_terminal_dumpdiff_options()
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1563 set laststatus=0
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1564 call assert_equal(1, winnr('$'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1565 let height = winheight(0)
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1566 call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_popup_command_02.dump', {'vertical': 1, 'term_cols': 33})
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1567 call assert_equal(2, winnr('$'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1568 call assert_equal(height, winheight(winnr()))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1569 call assert_equal(33, winwidth(winnr()))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1570 call assert_equal('dump diff dumps/Test_popup_command_01.dump', bufname('%'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1571 quit
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1572
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1573 call assert_equal(1, winnr('$'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1574 call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_popup_command_02.dump', {'vertical': 0, 'term_rows': 13, 'term_name': 'something else'})
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1575 call assert_equal(2, winnr('$'))
17262
041156ce1d22 patch 8.1.1630: various small problems
Bram Moolenaar <Bram@vim.org>
parents: 17164
diff changeset
1576 call assert_equal(&columns, winwidth(0))
041156ce1d22 patch 8.1.1630: various small problems
Bram Moolenaar <Bram@vim.org>
parents: 17164
diff changeset
1577 call assert_equal(13, winheight(0))
13527
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1578 call assert_equal('something else', bufname('%'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1579 quit
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1580
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1581 call assert_equal(1, winnr('$'))
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1582 call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_popup_command_02.dump', {'curwin': 1})
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1583 call assert_equal(1, winnr('$'))
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
1584 call assert_fails("call term_dumpdiff('dumps/Test_popup_command_01.dump', 'dumps/Test_popup_command_02.dump', {'bufnr': -1})", 'E475:')
13527
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1585 bwipe
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1586
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1587 set laststatus&
b2b99d01321b patch 8.0.1637: no test for term_dumpdiff() options argument
Christian Brabandt <cb@256bit.org>
parents: 13525
diff changeset
1588 endfunc
13535
e9ffb5b35266 patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents: 13527
diff changeset
1589
15557
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1590 " When drawing the statusline the cursor position may not have been updated
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1591 " yet.
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1592 " 1. create a terminal, make it show 2 lines
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1593 " 2. 0.5 sec later: leave terminal window, execute "i"
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1594 " 3. 0.5 sec later: clear terminal window, now it's 1 line
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1595 " 4. 0.5 sec later: redraw, including statusline (used to trigger bug)
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1596 " 4. 0.5 sec later: should be done, clean up
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1597 func Test_terminal_statusline()
18041
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
1598 CheckUnix
060e1b1220c6 patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18039
diff changeset
1599
15557
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1600 set statusline=x
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1601 terminal
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1602 let tbuf = bufnr('')
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1603 call term_sendkeys(tbuf, "clear; echo a; echo b; sleep 1; clear\n")
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1604 call timer_start(500, { tid -> feedkeys("\<C-w>j", 'tx') })
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1605 call timer_start(1500, { tid -> feedkeys("\<C-l>", 'tx') })
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1606 au BufLeave * if &buftype == 'terminal' | silent! normal i | endif
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1607
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1608 sleep 2
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1609 exe tbuf . 'bwipe!'
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1610 au! BufLeave
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1611 set statusline=
c0560da7873e patch 8.1.0786: ml_get error when updating the status line
Bram Moolenaar <Bram@vim.org>
parents: 15545
diff changeset
1612 endfunc
16241
c1698187c482 patch 8.1.1125: libvterm does not handle the window position report
Bram Moolenaar <Bram@vim.org>
parents: 16233
diff changeset
1613
22448
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1614 func Test_terminal_window_focus()
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1615 let winid1 = win_getid()
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1616 terminal
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1617 let winid2 = win_getid()
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1618 call feedkeys("\<C-W>j", 'xt')
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1619 call assert_equal(winid1, win_getid())
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1620 call feedkeys("\<C-W>k", 'xt')
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1621 call assert_equal(winid2, win_getid())
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1622 " can use a cursor key here
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1623 call feedkeys("\<C-W>\<Down>", 'xt')
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1624 call assert_equal(winid1, win_getid())
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1625 call feedkeys("\<C-W>\<Up>", 'xt')
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1626 call assert_equal(winid2, win_getid())
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1627
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1628 bwipe!
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1629 endfunc
5e287462487e patch 8.2.1772: cannot use CTRL-W <Down> to move out of a terminal window
Bram Moolenaar <Bram@vim.org>
parents: 22161
diff changeset
1630
21253
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1631 func Api_drop_common(options)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1632 call assert_equal(1, winnr('$'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1633
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1634 " Use the title termcap entries to output the escape sequence.
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1635 call writefile([
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1636 \ 'set title',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1637 \ 'exe "set t_ts=\<Esc>]51; t_fs=\x07"',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1638 \ 'let &titlestring = ''["drop","Xtextfile"' . a:options . ']''',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1639 \ 'redraw',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1640 \ "set t_ts=",
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1641 \ ], 'Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1642 let buf = RunVimInTerminal('-S Xscript', {})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1643 call WaitFor({-> bufnr('Xtextfile') > 0})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1644 call assert_equal('Xtextfile', expand('%:t'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1645 call assert_true(winnr('$') >= 3)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1646 return buf
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1647 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1648
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1649 func Test_terminal_api_drop_newwin()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1650 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1651 let buf = Api_drop_common('')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1652 call assert_equal(0, &bin)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1653 call assert_equal('', &fenc)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1654
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1655 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1656 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1657 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1658 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1659
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1660 func Test_terminal_api_drop_newwin_bin()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1661 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1662 let buf = Api_drop_common(',{"bin":1}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1663 call assert_equal(1, &bin)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1664
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1665 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1666 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1667 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1668 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1669
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1670 func Test_terminal_api_drop_newwin_binary()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1671 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1672 let buf = Api_drop_common(',{"binary":1}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1673 call assert_equal(1, &bin)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1674
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1675 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1676 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1677 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1678 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1679
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1680 func Test_terminal_api_drop_newwin_nobin()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1681 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1682 set binary
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1683 let buf = Api_drop_common(',{"nobin":1}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1684 call assert_equal(0, &bin)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1685
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1686 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1687 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1688 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1689 set nobinary
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1690 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1691
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1692 func Test_terminal_api_drop_newwin_nobinary()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1693 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1694 set binary
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1695 let buf = Api_drop_common(',{"nobinary":1}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1696 call assert_equal(0, &bin)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1697
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1698 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1699 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1700 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1701 set nobinary
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1702 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1703
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1704 func Test_terminal_api_drop_newwin_ff()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1705 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1706 let buf = Api_drop_common(',{"ff":"dos"}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1707 call assert_equal("dos", &ff)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1708
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1709 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1710 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1711 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1712 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1713
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1714 func Test_terminal_api_drop_newwin_fileformat()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1715 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1716 let buf = Api_drop_common(',{"fileformat":"dos"}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1717 call assert_equal("dos", &ff)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1718
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1719 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1720 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1721 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1722 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1723
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1724 func Test_terminal_api_drop_newwin_enc()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1725 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1726 let buf = Api_drop_common(',{"enc":"utf-16"}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1727 call assert_equal("utf-16", &fenc)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1728
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1729 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1730 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1731 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1732 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1733
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1734 func Test_terminal_api_drop_newwin_encoding()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1735 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1736 let buf = Api_drop_common(',{"encoding":"utf-16"}')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1737 call assert_equal("utf-16", &fenc)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1738
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1739 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1740 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1741 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1742 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1743
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1744 func Test_terminal_api_drop_oldwin()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1745 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1746 let firstwinid = win_getid()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1747 split Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1748 let textfile_winid = win_getid()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1749 call assert_equal(2, winnr('$'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1750 call win_gotoid(firstwinid)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1751
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1752 " Use the title termcap entries to output the escape sequence.
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1753 call writefile([
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1754 \ 'set title',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1755 \ 'exe "set t_ts=\<Esc>]51; t_fs=\x07"',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1756 \ 'let &titlestring = ''["drop","Xtextfile"]''',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1757 \ 'redraw',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1758 \ "set t_ts=",
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1759 \ ], 'Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1760 let buf = RunVimInTerminal('-S Xscript', {'rows': 10})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1761 call WaitForAssert({-> assert_equal('Xtextfile', expand('%:t'))})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1762 call assert_equal(textfile_winid, win_getid())
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1763
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1764 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1765 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1766 bwipe Xtextfile
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1767 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1768
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1769 func Tapi_TryThis(bufnum, arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1770 let g:called_bufnum = a:bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1771 let g:called_arg = a:arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1772 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1773
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1774 func WriteApiCall(funcname)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1775 " Use the title termcap entries to output the escape sequence.
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1776 call writefile([
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1777 \ 'set title',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1778 \ 'exe "set t_ts=\<Esc>]51; t_fs=\x07"',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1779 \ 'let &titlestring = ''["call","' . a:funcname . '",["hello",123]]''',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1780 \ 'redraw',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1781 \ "set t_ts=",
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1782 \ ], 'Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1783 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1784
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1785 func Test_terminal_api_call()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1786 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1787
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1788 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1789 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1790
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1791 call WriteApiCall('Tapi_TryThis')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1792
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1793 " Default
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1794 let buf = RunVimInTerminal('-S Xscript', {})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1795 call WaitFor({-> exists('g:called_bufnum')})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1796 call assert_equal(buf, g:called_bufnum)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1797 call assert_equal(['hello', 123], g:called_arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1798 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1799
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1800 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1801 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1802
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1803 " Enable explicitly
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1804 let buf = RunVimInTerminal('-S Xscript', {'term_api': 'Tapi_Try'})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1805 call WaitFor({-> exists('g:called_bufnum')})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1806 call assert_equal(buf, g:called_bufnum)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1807 call assert_equal(['hello', 123], g:called_arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1808 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1809
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1810 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1811 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1812
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1813 func! ApiCall_TryThis(bufnum, arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1814 let g:called_bufnum2 = a:bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1815 let g:called_arg2 = a:arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1816 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1817
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1818 call WriteApiCall('ApiCall_TryThis')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1819
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1820 " Use prefix match
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1821 let buf = RunVimInTerminal('-S Xscript', {'term_api': 'ApiCall_'})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1822 call WaitFor({-> exists('g:called_bufnum2')})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1823 call assert_equal(buf, g:called_bufnum2)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1824 call assert_equal(['hello', 123], g:called_arg2)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1825 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1826
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
1827 call assert_fails("call term_start('ls', {'term_api' : []})", 'E730:')
21253
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1828
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1829 unlet! g:called_bufnum2
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1830 unlet! g:called_arg2
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1831
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1832 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1833 delfunction! ApiCall_TryThis
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1834 unlet! g:called_bufnum2
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1835 unlet! g:called_arg2
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1836 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1837
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1838 func Test_terminal_api_call_fails()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1839 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1840
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1841 func! TryThis(bufnum, arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1842 let g:called_bufnum3 = a:bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1843 let g:called_arg3 = a:arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1844 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1845
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1846 call WriteApiCall('TryThis')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1847
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1848 unlet! g:called_bufnum3
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1849 unlet! g:called_arg3
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1850
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1851 " Not permitted
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1852 call ch_logfile('Xlog', 'w')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1853 let buf = RunVimInTerminal('-S Xscript', {'term_api': ''})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1854 call WaitForAssert({-> assert_match('Unpermitted function: TryThis', string(readfile('Xlog')))})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1855 call assert_false(exists('g:called_bufnum3'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1856 call assert_false(exists('g:called_arg3'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1857 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1858
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1859 " No match
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1860 call ch_logfile('Xlog', 'w')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1861 let buf = RunVimInTerminal('-S Xscript', {'term_api': 'TryThat'})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1862 call WaitFor({-> string(readfile('Xlog')) =~ 'Unpermitted function: TryThis'})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1863 call assert_false(exists('g:called_bufnum3'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1864 call assert_false(exists('g:called_arg3'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1865 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1866
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1867 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1868 call ch_logfile('')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1869 call delete('Xlog')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1870 delfunction! TryThis
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1871 unlet! g:called_bufnum3
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1872 unlet! g:called_arg3
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1873 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1874
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1875 let s:caught_e937 = 0
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1876
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1877 func Tapi_Delete(bufnum, arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1878 try
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1879 execute 'bdelete!' a:bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1880 catch /E937:/
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1881 let s:caught_e937 = 1
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1882 endtry
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1883 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1884
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1885 func Test_terminal_api_call_fail_delete()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1886 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1887
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1888 call WriteApiCall('Tapi_Delete')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1889 let buf = RunVimInTerminal('-S Xscript', {})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1890 call WaitForAssert({-> assert_equal(1, s:caught_e937)})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1891
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1892 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1893 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1894 call ch_logfile('', '')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1895 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1896
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1897 func Test_terminal_setapi_and_call()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1898 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1899
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1900 call WriteApiCall('Tapi_TryThis')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1901 call ch_logfile('Xlog', 'w')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1902
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1903 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1904 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1905
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1906 let buf = RunVimInTerminal('-S Xscript', {'term_api': ''})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1907 call WaitForAssert({-> assert_match('Unpermitted function: Tapi_TryThis', string(readfile('Xlog')))})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1908 call assert_false(exists('g:called_bufnum'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1909 call assert_false(exists('g:called_arg'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1910
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1911 eval buf->term_setapi('Tapi_')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1912 call term_sendkeys(buf, ":set notitle\<CR>")
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1913 call term_sendkeys(buf, ":source Xscript\<CR>")
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1914 call WaitFor({-> exists('g:called_bufnum')})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1915 call assert_equal(buf, g:called_bufnum)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1916 call assert_equal(['hello', 123], g:called_arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1917
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1918 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1919
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1920 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1921 call ch_logfile('')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1922 call delete('Xlog')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1923 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1924 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1925 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1926
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1927 func Test_terminal_api_arg()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1928 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1929
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1930 call WriteApiCall('Tapi_TryThis')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1931 call ch_logfile('Xlog', 'w')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1932
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1933 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1934 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1935
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1936 execute 'term ++api= ' .. GetVimCommandCleanTerm() .. '-S Xscript'
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1937 let buf = bufnr('%')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1938 call WaitForAssert({-> assert_match('Unpermitted function: Tapi_TryThis', string(readfile('Xlog')))})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1939 call assert_false(exists('g:called_bufnum'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1940 call assert_false(exists('g:called_arg'))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1941
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1942 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1943
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1944 call ch_logfile('Xlog', 'w')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1945
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1946 execute 'term ++api=Tapi_ ' .. GetVimCommandCleanTerm() .. '-S Xscript'
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1947 let buf = bufnr('%')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1948 call WaitFor({-> exists('g:called_bufnum')})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1949 call assert_equal(buf, g:called_bufnum)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1950 call assert_equal(['hello', 123], g:called_arg)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1951
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1952 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1953
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1954 call delete('Xscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1955 call ch_logfile('')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1956 call delete('Xlog')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1957 unlet! g:called_bufnum
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1958 unlet! g:called_arg
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1959 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1960
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1961 func Test_terminal_ansicolors_default()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1962 CheckFunction term_getansicolors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1963
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1964 let colors = [
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1965 \ '#000000', '#e00000',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1966 \ '#00e000', '#e0e000',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1967 \ '#0000e0', '#e000e0',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1968 \ '#00e0e0', '#e0e0e0',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1969 \ '#808080', '#ff4040',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1970 \ '#40ff40', '#ffff40',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1971 \ '#4040ff', '#ff40ff',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1972 \ '#40ffff', '#ffffff',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1973 \]
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1974
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1975 let buf = Run_shell_in_terminal({})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1976 call assert_equal(colors, term_getansicolors(buf))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1977 call StopShellInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1978 call TermWait(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1979 call assert_equal([], term_getansicolors(buf))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1980
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1981 exe buf . 'bwipe'
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1982 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1983
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1984 let s:test_colors = [
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1985 \ '#616e64', '#0d0a79',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1986 \ '#6d610d', '#0a7373',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1987 \ '#690d0a', '#6d696e',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1988 \ '#0d0a6f', '#616e0d',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1989 \ '#0a6479', '#6d0d0a',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1990 \ '#617373', '#0d0a69',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1991 \ '#6d690d', '#0a6e6f',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1992 \ '#610d0a', '#6e6479',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1993 \]
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1994
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1995 func Test_terminal_ansicolors_global()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1996 CheckFeature termguicolors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1997 CheckFunction term_getansicolors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1998
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
1999 let g:terminal_ansi_colors = reverse(copy(s:test_colors))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2000 let buf = Run_shell_in_terminal({})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2001 call assert_equal(g:terminal_ansi_colors, term_getansicolors(buf))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2002 call StopShellInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2003 call TermWait(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2004
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2005 exe buf . 'bwipe'
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2006 unlet g:terminal_ansi_colors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2007 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2008
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2009 func Test_terminal_ansicolors_func()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2010 CheckFeature termguicolors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2011 CheckFunction term_getansicolors
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2012
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2013 let g:terminal_ansi_colors = reverse(copy(s:test_colors))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2014 let buf = Run_shell_in_terminal({'ansi_colors': s:test_colors})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2015 call assert_equal(s:test_colors, term_getansicolors(buf))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2016
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2017 call term_setansicolors(buf, g:terminal_ansi_colors)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2018 call assert_equal(g:terminal_ansi_colors, buf->term_getansicolors())
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2019
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2020 let colors = [
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2021 \ 'ivory', 'AliceBlue',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2022 \ 'grey67', 'dark goldenrod',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2023 \ 'SteelBlue3', 'PaleVioletRed4',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2024 \ 'MediumPurple2', 'yellow2',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2025 \ 'RosyBrown3', 'OrangeRed2',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2026 \ 'white smoke', 'navy blue',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2027 \ 'grey47', 'gray97',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2028 \ 'MistyRose2', 'DodgerBlue4',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2029 \]
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2030 eval buf->term_setansicolors(colors)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2031
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2032 let colors[4] = 'Invalid'
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
2033 call assert_fails('call term_setansicolors(buf, colors)', 'E254:')
21253
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2034 call assert_fails('call term_setansicolors(buf, {})', 'E714:')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2035
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2036 call StopShellInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2037 call TermWait(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2038 call assert_equal(0, term_setansicolors(buf, []))
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2039 exe buf . 'bwipe'
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2040 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2041
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2042 func Test_terminal_all_ansi_colors()
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2043 CheckRunVimInTerminal
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2044
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2045 " Use all the ANSI colors.
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2046 call writefile([
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2047 \ 'call setline(1, "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP XXYYZZ")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2048 \ 'hi Tblack ctermfg=0 ctermbg=8',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2049 \ 'hi Tdarkred ctermfg=1 ctermbg=9',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2050 \ 'hi Tdarkgreen ctermfg=2 ctermbg=10',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2051 \ 'hi Tbrown ctermfg=3 ctermbg=11',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2052 \ 'hi Tdarkblue ctermfg=4 ctermbg=12',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2053 \ 'hi Tdarkmagenta ctermfg=5 ctermbg=13',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2054 \ 'hi Tdarkcyan ctermfg=6 ctermbg=14',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2055 \ 'hi Tlightgrey ctermfg=7 ctermbg=15',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2056 \ 'hi Tdarkgrey ctermfg=8 ctermbg=0',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2057 \ 'hi Tred ctermfg=9 ctermbg=1',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2058 \ 'hi Tgreen ctermfg=10 ctermbg=2',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2059 \ 'hi Tyellow ctermfg=11 ctermbg=3',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2060 \ 'hi Tblue ctermfg=12 ctermbg=4',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2061 \ 'hi Tmagenta ctermfg=13 ctermbg=5',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2062 \ 'hi Tcyan ctermfg=14 ctermbg=6',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2063 \ 'hi Twhite ctermfg=15 ctermbg=7',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2064 \ 'hi TdarkredBold ctermfg=1 cterm=bold',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2065 \ 'hi TgreenBold ctermfg=10 cterm=bold',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2066 \ 'hi TmagentaBold ctermfg=13 cterm=bold ctermbg=5',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2067 \ '',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2068 \ 'call matchadd("Tblack", "A")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2069 \ 'call matchadd("Tdarkred", "B")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2070 \ 'call matchadd("Tdarkgreen", "C")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2071 \ 'call matchadd("Tbrown", "D")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2072 \ 'call matchadd("Tdarkblue", "E")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2073 \ 'call matchadd("Tdarkmagenta", "F")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2074 \ 'call matchadd("Tdarkcyan", "G")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2075 \ 'call matchadd("Tlightgrey", "H")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2076 \ 'call matchadd("Tdarkgrey", "I")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2077 \ 'call matchadd("Tred", "J")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2078 \ 'call matchadd("Tgreen", "K")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2079 \ 'call matchadd("Tyellow", "L")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2080 \ 'call matchadd("Tblue", "M")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2081 \ 'call matchadd("Tmagenta", "N")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2082 \ 'call matchadd("Tcyan", "O")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2083 \ 'call matchadd("Twhite", "P")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2084 \ 'call matchadd("TdarkredBold", "X")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2085 \ 'call matchadd("TgreenBold", "Y")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2086 \ 'call matchadd("TmagentaBold", "Z")',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2087 \ 'redraw',
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2088 \ ], 'Xcolorscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2089 let buf = RunVimInTerminal('-S Xcolorscript', {'rows': 10})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2090 call VerifyScreenDump(buf, 'Test_terminal_all_ansi_colors', {})
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2091
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2092 call term_sendkeys(buf, ":q\<CR>")
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2093 call StopVimInTerminal(buf)
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2094 call delete('Xcolorscript')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2095 endfunc
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 21126
diff changeset
2096
24309
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2097 function On_BufFilePost()
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2098 doautocmd <nomodeline> User UserEvent
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2099 endfunction
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2100
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2101 func Test_terminal_nested_autocmd()
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2102 new
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2103 call setline(1, range(500))
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2104 $
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2105 let lastline = line('.')
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2106
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2107 augroup TermTest
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2108 autocmd BufFilePost * call On_BufFilePost()
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2109 autocmd User UserEvent silent
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2110 augroup END
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2111
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2112 let cmd = Get_cat_123_cmd()
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2113 let buf = term_start(cmd, #{term_finish: 'close', hidden: 1})
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2114 call assert_equal(lastline, line('.'))
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2115
24319
cc40b0d66646 patch 8.2.2700: nested autocmd test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 24309
diff changeset
2116 let job = term_getjob(buf)
cc40b0d66646 patch 8.2.2700: nested autocmd test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 24309
diff changeset
2117 call WaitForAssert({-> assert_equal("dead", job_status(job))})
24309
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2118 call delete('Xtext')
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2119 augroup TermTest
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2120 au!
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2121 augroup END
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2122 endfunc
f8619a303e9d patch 8.2.2695: cursor position reset with nested autocommands
Bram Moolenaar <Bram@vim.org>
parents: 24212
diff changeset
2123
24557
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2124 func Test_terminal_adds_jump()
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2125 clearjumps
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2126 call term_start("ls", #{curwin: 1})
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2127 call assert_equal(1, getjumplist()[0]->len())
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2128 bwipe!
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2129 endfunc
7a4cc4d3a40a patch 8.2.2818: no jump added when opening terminal in current window
Bram Moolenaar <Bram@vim.org>
parents: 24319
diff changeset
2130
26217
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2131 func Close_cb(ch, ctx)
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2132 call term_wait(a:ctx.bufnr)
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2133 let g:close_done = 'done'
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2134 endfunc
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2135
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2136 func Test_term_wait_in_close_cb()
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2137 let g:close_done = ''
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2138 let ctx = {}
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2139 let ctx.bufnr = term_start('echo "HELLO WORLD"',
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2140 \ {'close_cb': {ch -> Close_cb(ch, ctx)}})
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2141
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2142 call WaitForAssert({-> assert_equal("done", g:close_done)})
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2143
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2144 unlet g:close_done
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2145 bwipe!
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2146 endfunc
d25c0b0aad7d patch 8.2.3640: freeze when calling term_wait() in a close callback
Bram Moolenaar <Bram@vim.org>
parents: 26185
diff changeset
2147
20365
6bcd12791bf1 patch 8.2.0738: mouse handling in a terminal window not well tested
Bram Moolenaar <Bram@vim.org>
parents: 20263
diff changeset
2148
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19840
diff changeset
2149 " vim: shiftwidth=2 sts=2 expandtab