Mercurial > vim
annotate src/testdir/test_plus_arg_edit.vim @ 34372:d8c69a773456 v9.1.0115
patch 9.1.0115: Using freed memory with full tag stack and user data
Commit: https://github.com/vim/vim/commit/c86bff1771ed9c340f8f4433ae5530fd6de97980
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sun Feb 18 18:53:08 2024 +0100
patch 9.1.0115: Using freed memory with full tag stack and user data
Problem: Using freed memory with full tag stack and user data
(Konstantin Khlebnikov)
Solution: Clear the user data pointer of the newest entry.
(zeertzjq, Konstantin Khlebnikov)
fixes: neovim/neovim#27498
closes: #14053
Co-authored-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 18 Feb 2024 19:00:03 +0100 |
parents | 457ea0570b6f |
children |
rev | line source |
---|---|
11651
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for complicated + argument to :edit command |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19471
diff
changeset
|
2 |
11651
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 function Test_edit() |
30592
457ea0570b6f
patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
4 call writefile(["foo|bar"], "Xfile1", 'D') |
457ea0570b6f
patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
5 call writefile(["foo/bar"], "Xfile2", 'D') |
11651
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w |
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 call assert_equal(["fooPIPEbar"], readfile("Xfile1")) |
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 call assert_equal(["fooSLASHbar"], readfile("Xfile2")) |
140d51d5b5c3
patch 8.0.0708: some tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 endfunction |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
10 |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
11 func Test_edit_bad() |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
12 " Test loading a utf8 file with bad utf8 sequences. |
30592
457ea0570b6f
patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
30051
diff
changeset
|
13 call writefile(["[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]"], "Xbadfile", 'D') |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
14 new |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
15 |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
16 " Without ++bad=..., the default behavior is like ++bad=? |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
17 e! ++enc=utf8 Xbadfile |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
18 call assert_equal('[?][?][???][??]', getline(1)) |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
19 |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
20 e! ++encoding=utf8 ++bad=_ Xbadfile |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
21 call assert_equal('[_][_][___][__]', getline(1)) |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
22 |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
23 e! ++enc=utf8 ++bad=drop Xbadfile |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
24 call assert_equal('[][][][]', getline(1)) |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
25 |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
26 e! ++enc=utf8 ++bad=keep Xbadfile |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
27 call assert_equal("[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]", getline(1)) |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
28 |
30051
13b02c1ea0f7
patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
29 call assert_fails('e! ++enc=utf8 ++bad=foo Xbadfile', 'E474:') |
14051
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
30 |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
31 bw! |
c1ead25ed819
patch 8.1.0043: ++bad argument of :edit does not work properly
Christian Brabandt <cb@256bit.org>
parents:
12899
diff
changeset
|
32 endfunc |
19407
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
33 |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
34 " Test for ++bin and ++nobin arguments |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
35 func Test_binary_arg() |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
36 new |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
37 edit ++bin Xfile1 |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
38 call assert_equal(1, &binary) |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
39 edit ++nobin Xfile2 |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
40 call assert_equal(0, &binary) |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
41 call assert_fails('edit ++binabc Xfile3', 'E474:') |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
42 close! |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
43 endfunc |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
44 |
2f4be7ca1b1b
patch 8.2.0261: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
45 " vim: shiftwidth=2 sts=2 expandtab |