annotate src/testdir/test_vim9_fails.vim @ 34657:75a8299ca1ea

Added tag v9.1.0212 for changeset 3b29a2cdbf747685e9f7f8b51c2f05d9dccfa490
author Christian Brabandt <cb@256bit.org>
date Wed, 27 Mar 2024 11:00:08 +0100
parents 54e36d01847b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22582
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Test for Vim9 script with failures, causing memory leaks to be reported.
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2 " The leaks happen after a fork() and can be ignored.
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3
26410
b94ef0b282f1 patch 8.2.3736: test fails without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 26368
diff changeset
4 source check.vim
b94ef0b282f1 patch 8.2.3736: test fails without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 26368
diff changeset
5
22582
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
6 def Test_assignment()
26410
b94ef0b282f1 patch 8.2.3736: test fails without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 26368
diff changeset
7 if !has('channel')
b94ef0b282f1 patch 8.2.3736: test fails without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 26368
diff changeset
8 CheckFeature channel
b94ef0b282f1 patch 8.2.3736: test fails without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 26368
diff changeset
9 else
22582
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10 var chan1: channel
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 var job1: job
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12 var job2: job = job_start('willfail')
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
13 endif
a3df1fb28d44 patch 8.2.1839: Vim9: memory leaks reported in assign test
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
14 enddef
26368
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
15
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
16 " Unclear why this test causes valgrind to report problems.
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
17 def Test_job_info_return_type()
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
18 if !has('job')
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
19 CheckFeature job
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
20 else
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
21 var job: job = job_start(&shell)
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
22 var jobs = job_info()
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
23 assert_equal('list<job>', typename(jobs))
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
24 assert_equal('dict<any>', typename(job_info(jobs[0])))
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
25 job_stop(job)
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
26 endif
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
27 enddef
744fdb15347d patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
Bram Moolenaar <Bram@vim.org>
parents: 22582
diff changeset
28
30443
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
29 " Using "idx" from a legacy global function does not work.
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
30 " This caused a crash when called from legacy context.
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
31 " This creates a dict that contains a partial that refers to the dict, causing
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
32 " valgrind to report "possibly leaked memory".
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
33 func Test_partial_call_fails()
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
34 let lines =<< trim END
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
35 vim9script
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
36
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
37 var l = ['a', 'b', 'c']
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
38 def Iter(container: any): any
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
39 var idx = -1
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
40 var obj = {state: container}
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
41 def g:NextItem__(self: dict<any>): any
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
42 ++idx
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
43 return self.state[idx]
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
44 enddef
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
45 obj.__next__ = function('g:NextItem__', [obj])
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
46 return obj
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
47 enddef
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
48
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
49 var it = Iter(l)
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
50 echo it.__next__()
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
51 END
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
52 call writefile(lines, 'XpartialCall', 'D')
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
53 let caught = 'no'
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
54 try
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
55 source XpartialCall
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
56 catch /E1248:/
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
57 let caught = 'yes'
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
58 endtry
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
59 call assert_equal('yes', caught)
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
60 delfunc g:NextItem__
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
61 endfunc
54e36d01847b patch 9.0.0557: valgrind reports possibly leaked memory
Bram Moolenaar <Bram@vim.org>
parents: 26410
diff changeset
62