Mercurial > vim
annotate src/testdir/test_utf8_comparisons.vim @ 27970:212c5894b8b1 v8.2.4510
patch 8.2.4510: Vim9: shortening commands leads to confusing script
Commit: https://github.com/vim/vim/commit/204852ae2adfdde10c656ca7f14e5b4207a69172
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 5 12:56:44 2022 +0000
patch 8.2.4510: Vim9: shortening commands leads to confusing script
Problem: Vim9: shortening commands leads to confusing script.
Solution: In Vim9 script require at least ":cont" for ":continue", "const"
instead of "cons", "break" instead of "brea", "catch" instead of
"cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
instead of "endfo" "endif" instead of "en" "endtry" instead of
"endt", "finally" instead of "fina", "throw" instead of "th",
"while" instead of "wh".
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 05 Mar 2022 14:00:03 +0100 |
parents | 08940efa6b4e |
children | d2ad8733db75 |
rev | line source |
---|---|
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 " Also test "g~ap". |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
4 func Ch(a, op, b, expected) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 call assert_equal(eval(printf('"%s" %s "%s"', a:a, a:op, a:b)), a:expected, |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 \ printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected)) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
7 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
9 func Chk(a, b, result) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 if a:result == 0 |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 call Ch(a:a, '==?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 call Ch(a:a, '!=?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 call Ch(a:a, '<=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 call Ch(a:a, '>=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 call Ch(a:a, '<?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 call Ch(a:a, '>?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 elseif a:result > 0 |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 call Ch(a:a, '==?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 call Ch(a:a, '!=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 call Ch(a:a, '<=?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 call Ch(a:a, '>=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 call Ch(a:a, '<?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 call Ch(a:a, '>?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 else |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 call Ch(a:a, '==?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 call Ch(a:a, '!=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 call Ch(a:a, '<=?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 call Ch(a:a, '>=?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 call Ch(a:a, '<?', a:b, 1) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 call Ch(a:a, '>?', a:b, 0) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 endif |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
32 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
34 func Check(a, b, result) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 call Chk(a:a, a:b, a:result) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 call Chk(a:b, a:a, -a:result) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
37 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
39 func LT(a, b) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 call Check(a:a, a:b, -1) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
41 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
43 func GT(a, b) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 call Check(a:a, a:b, 1) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
45 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
47 func EQ(a, b) |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 call Check(a:a, a:b, 0) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
49 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
51 func Test_comparisons() |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 call EQ('', '') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 call LT('', 'a') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 call EQ('abc', 'abc') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 call EQ('Abc', 'abC') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 call LT('ab', 'abc') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 call LT('AB', 'abc') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 call LT('ab', 'aBc') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 call EQ('\xe2\x84\xaa', 'k') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 call LT('\xe2\x84\xaa', 'kkkkkk') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
63 call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
65 call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
66 call EQ('Abc\x80', 'AbC\x80') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
67 call LT('Abc\x80', 'AbC\x81') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
68 call LT('Abc', 'AbC\x80') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
69 call LT('abc\x80DEF', 'abc\x80def') " case folding stops at the first bad character |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
70 call LT('\xc3XYZ', '\xc3xyz') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
71 call EQ('\xef\xbc\xba', '\xef\xbd\x9a') " FF3A (upper), FF5A (lower) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 call GT('\xef\xbc\xba', '\xef\xbc\xff') " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings were bytewise compared |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
73 call LT('\xc3', '\xc3\x83') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
74 call EQ('\xc3\xa3xYz', '\xc3\x83XyZ') |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 for n in range(0x60, 0xFF) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
76 call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
77 endfor |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
78 for n in range(0x80, 0xBF) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
79 call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
80 endfor |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
81 for n in range(0xC0, 0xFF) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
82 call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
83 endfor |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
84 endfunc |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
85 |
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 " test that g~ap changes one paragraph only. |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
87 func Test_gap() |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
88 new |
18736
97d534e17874
patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
89 " setup text |
97d534e17874
patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
90 call feedkeys("iabcd\<cr>\<cr>defg", "tx") |
97d534e17874
patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
91 " modify only first line |
97d534e17874
patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
92 call feedkeys("gg0g~ap", "tx") |
11603
4e66689bced6
patch 8.0.0684: old style tests are not nice
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
93 call assert_equal(["ABCD", "", "defg"], getline(1,3)) |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
11603
diff
changeset
|
94 endfunc |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
18736
diff
changeset
|
95 |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
18736
diff
changeset
|
96 " vim: shiftwidth=2 sts=2 expandtab |