Mercurial > vim
view src/testdir/test_regexp_latin.vim @ 11101:c5027d19ef61 v8.0.0438
patch 8.0.0438: the fnamemodify test may cause later tests to fail
commit https://github.com/vim/vim/commit/056f700031602a2734b1ddf45f6bc2817e49b996
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Mar 9 14:00:27 2017 +0100
patch 8.0.0438: the fnamemodify test may cause later tests to fail
Problem: The fnamemodify test changes 'shell' in a way later tests may not
be able to use system().
Solution: Save and restore 'shell'.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 09 Mar 2017 14:15:04 +0100 |
parents | 4acacf4081ce |
children | 14b6b79d685b |
line wrap: on
line source
" Tests for regexp in latin1 encoding set encoding=latin1 scriptencoding latin1 func s:equivalence_test() let str = "AÀÁÂÃÄÅ B C D EÈÉÊË F G H IÌÍÎÏ J K L M NÑ OÒÓÔÕÖØ P Q R S T UÙÚÛÜ V W X YÝ Z aàáâãäå b c d eèéêë f g h iìíîï j k l m nñ oòóôõöø p q r s t uùúûü v w x yýÿ z" let groups = split(str) for group1 in groups for c in split(group1, '\zs') " next statement confirms that equivalence class matches every " character in group call assert_match('^[[=' . c . '=]]*$', group1) for group2 in groups if group2 != group1 " next statement converts that equivalence class doesn't match " a character in any other group call assert_equal(-1, match(group2, '[[=' . c . '=]]')) endif endfor endfor endfor endfunc func Test_equivalence_re1() set re=1 call s:equivalence_test() endfunc func Test_equivalence_re2() set re=2 call s:equivalence_test() endfunc func Test_recursive_substitute() new s/^/\=execute("s#^##gn") " check we are now not in the sandbox call setwinvar(1, 'myvar', 1) bwipe! endfunc func Test_nested_backrefs() " Check example in change.txt. new for re in range(0, 2) exe 'set re=' . re call setline(1, 'aa ab x') 1s/\(\(a[a-d] \)*\)\(x\)/-\1- -\2- -\3-/ call assert_equal('-aa ab - -ab - -x-', getline(1)) call assert_equal('-aa ab - -ab - -x-', substitute('aa ab x', '\(\(a[a-d] \)*\)\(x\)', '-\1- -\2- -\3-', '')) endfor bwipe! set re=0 endfunc func Test_eow_with_optional() let expected = ['abc def', 'abc', 'def', '', '', '', '', '', '', ''] for re in range(0, 2) exe 'set re=' . re let actual = matchlist('abc def', '\(abc\>\)\?\s*\(def\)') call assert_equal(expected, actual) endfor endfunc