~ubuntu-branches/debian/sid/neovim/sid

« back to all changes in this revision

Viewing changes to test/functional/legacy/036_regexp_character_classes_spec.lua

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2016-04-18 21:42:19 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20160418214219-1e6d4o1fwqarzk46
Tags: 0.1.3-1
* New upstream release.  (Closes: #820562)
* debian/control:
  + Remove unnecessary luarocks Build-Depends
  + Add libkvm-dev Build-Depends for kfreebsd-*
  + Add python(3)-neovim to Recommends.  (Closes: #812737)
  + Declare compiance with policy 3.9.8, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-- Test character classes in regexp using regexpengine 0, 1, 2.
 
2
 
 
3
local helpers = require('test.functional.helpers')
 
4
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
 
5
local source, write_file = helpers.source, helpers.write_file
 
6
local os_name = helpers.os_name
 
7
 
 
8
local function sixlines(text)
 
9
    local result = ''
 
10
    for _ = 1, 6 do
 
11
      result = result .. text .. '\n'
 
12
    end
 
13
    return result
 
14
end
 
15
 
 
16
local function diff(text, nodedent)
 
17
  local tmpname = os.tmpname()
 
18
  if os_name() == 'osx' and string.match(tmpname, '^/tmp') then
 
19
   tmpname = '/private'..tmpname
 
20
  end
 
21
  execute('w! '..tmpname)
 
22
  helpers.wait()
 
23
  local data = io.open(tmpname):read('*all')
 
24
  if nodedent then
 
25
    helpers.eq(text, data)
 
26
  else
 
27
    helpers.eq(helpers.dedent(text), data)
 
28
  end
 
29
  os.remove(tmpname)
 
30
end
 
31
 
 
32
describe('character classes in regexp', function()
 
33
  local ctrl1 = '\t\012\r'
 
34
  local punct1 = " !\"#$%&'()#+'-./"
 
35
  local digits = '0123456789'
 
36
  local punct2 = ':;<=>?@'
 
37
  local upper = 'ABCDEFGHIXYZ'
 
38
  local punct3 = '[\\]^_`'
 
39
  local lower = 'abcdefghiwxyz'
 
40
  local punct4 = '{|}~'
 
41
  local ctrl2 = '\127\128\130\144\155'
 
42
  local iso_text = '\166\177\188\199\211\233' -- "¦±¼ÇÓé" in utf-8
 
43
  setup(function()
 
44
    -- The original test32.in file was not in utf-8 encoding and did also
 
45
    -- contain some control characters.  We use lua escape sequences to write
 
46
    -- them to the test file.
 
47
    local line = ctrl1..punct1..digits..punct2..upper..punct3..lower..punct4..ctrl2..iso_text
 
48
    write_file('test36.in', sixlines(line))
 
49
  end)
 
50
  before_each(function()
 
51
    clear()
 
52
    execute('e test36.in')
 
53
  end)
 
54
  teardown(function()
 
55
    os.remove('test36.in')
 
56
  end)
 
57
 
 
58
  it('is working', function()
 
59
    source([[
 
60
      1 s/\%#=0\d//g
 
61
      2 s/\%#=1\d//g
 
62
      3 s/\%#=2\d//g
 
63
      4 s/\%#=0[0-9]//g
 
64
      5 s/\%#=1[0-9]//g
 
65
      6 s/\%#=2[0-9]//g]])
 
66
    diff(sixlines(ctrl1..punct1..punct2..upper..punct3..lower..punct4..
 
67
        ctrl2..iso_text))
 
68
  end)
 
69
  it('is working', function()
 
70
    source([[
 
71
      1 s/\%#=0\D//g
 
72
      2 s/\%#=1\D//g
 
73
      3 s/\%#=2\D//g
 
74
      4 s/\%#=0[^0-9]//g
 
75
      5 s/\%#=1[^0-9]//g
 
76
      6 s/\%#=2[^0-9]//g]])
 
77
    expect([[
 
78
      0123456789
 
79
      0123456789
 
80
      0123456789
 
81
      0123456789
 
82
      0123456789
 
83
      0123456789]])
 
84
  end)
 
85
  it('is working', function()
 
86
    source([[
 
87
      1 s/\%#=0\o//g
 
88
      2 s/\%#=1\o//g
 
89
      3 s/\%#=2\o//g
 
90
      4 s/\%#=0[0-7]//g
 
91
      5 s/\%#=1[0-7]//g
 
92
      6 s/\%#=2[0-7]//g]])
 
93
    diff(sixlines(ctrl1..punct1..'89'..punct2..upper..punct3..lower..punct4..ctrl2..
 
94
      iso_text))
 
95
  end)
 
96
  it('is working', function()
 
97
    source([[
 
98
      1 s/\%#=0\O//g
 
99
      2 s/\%#=1\O//g
 
100
      3 s/\%#=2\O//g
 
101
      4 s/\%#=0[^0-7]//g
 
102
      5 s/\%#=1[^0-7]//g
 
103
      6 s/\%#=2[^0-7]//g]])
 
104
    expect([[
 
105
      01234567
 
106
      01234567
 
107
      01234567
 
108
      01234567
 
109
      01234567
 
110
      01234567]])
 
111
  end)
 
112
  it('is working', function()
 
113
    source([[
 
114
      1 s/\%#=0\x//g
 
115
      2 s/\%#=1\x//g
 
116
      3 s/\%#=2\x//g
 
117
      4 s/\%#=0[0-9A-Fa-f]//g
 
118
      5 s/\%#=1[0-9A-Fa-f]//g
 
119
      6 s/\%#=2[0-9A-Fa-f]//g]])
 
120
      diff(sixlines(ctrl1..punct1..punct2..'GHIXYZ'..punct3..'ghiwxyz'..punct4..ctrl2..iso_text))
 
121
  end)
 
122
  it('is working', function()
 
123
    source([[
 
124
      1 s/\%#=0\X//g
 
125
      2 s/\%#=1\X//g
 
126
      3 s/\%#=2\X//g
 
127
      4 s/\%#=0[^0-9A-Fa-f]//g
 
128
      5 s/\%#=1[^0-9A-Fa-f]//g
 
129
      6 s/\%#=2[^0-9A-Fa-f]//g]])
 
130
    expect([[
 
131
      0123456789ABCDEFabcdef
 
132
      0123456789ABCDEFabcdef
 
133
      0123456789ABCDEFabcdef
 
134
      0123456789ABCDEFabcdef
 
135
      0123456789ABCDEFabcdef
 
136
      0123456789ABCDEFabcdef]])
 
137
  end)
 
138
  it('is working', function()
 
139
    source([[
 
140
      1 s/\%#=0\w//g
 
141
      2 s/\%#=1\w//g
 
142
      3 s/\%#=2\w//g
 
143
      4 s/\%#=0[0-9A-Za-z_]//g
 
144
      5 s/\%#=1[0-9A-Za-z_]//g
 
145
      6 s/\%#=2[0-9A-Za-z_]//g]])
 
146
      diff(sixlines(ctrl1..punct1..punct2..'[\\]^`'..punct4..ctrl2..iso_text))
 
147
  end)
 
148
  it('is working', function()
 
149
    source([[
 
150
      1 s/\%#=0\W//g
 
151
      2 s/\%#=1\W//g
 
152
      3 s/\%#=2\W//g
 
153
      4 s/\%#=0[^0-9A-Za-z_]//g
 
154
      5 s/\%#=1[^0-9A-Za-z_]//g
 
155
      6 s/\%#=2[^0-9A-Za-z_]//g]])
 
156
    expect([[
 
157
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz
 
158
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz
 
159
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz
 
160
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz
 
161
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz
 
162
      0123456789ABCDEFGHIXYZ_abcdefghiwxyz]])
 
163
  end)
 
164
  it('is working', function()
 
165
    source([[
 
166
      1 s/\%#=0\h//g
 
167
      2 s/\%#=1\h//g
 
168
      3 s/\%#=2\h//g
 
169
      4 s/\%#=0[A-Za-z_]//g
 
170
      5 s/\%#=1[A-Za-z_]//g
 
171
      6 s/\%#=2[A-Za-z_]//g]])
 
172
      diff(sixlines(ctrl1..punct1..digits..punct2..'[\\]^`'..punct4..ctrl2..
 
173
        iso_text))
 
174
  end)
 
175
  it('is working', function()
 
176
    source([[
 
177
      1 s/\%#=0\H//g
 
178
      2 s/\%#=1\H//g
 
179
      3 s/\%#=2\H//g
 
180
      4 s/\%#=0[^A-Za-z_]//g
 
181
      5 s/\%#=1[^A-Za-z_]//g
 
182
      6 s/\%#=2[^A-Za-z_]//g]])
 
183
    expect([[
 
184
      ABCDEFGHIXYZ_abcdefghiwxyz
 
185
      ABCDEFGHIXYZ_abcdefghiwxyz
 
186
      ABCDEFGHIXYZ_abcdefghiwxyz
 
187
      ABCDEFGHIXYZ_abcdefghiwxyz
 
188
      ABCDEFGHIXYZ_abcdefghiwxyz
 
189
      ABCDEFGHIXYZ_abcdefghiwxyz]])
 
190
  end)
 
191
  it('is working', function()
 
192
    source([[
 
193
      1 s/\%#=0\a//g
 
194
      2 s/\%#=1\a//g
 
195
      3 s/\%#=2\a//g
 
196
      4 s/\%#=0[A-Za-z]//g
 
197
      5 s/\%#=1[A-Za-z]//g
 
198
      6 s/\%#=2[A-Za-z]//g]])
 
199
    diff(sixlines(ctrl1..punct1..digits..punct2..punct3..punct4..ctrl2..iso_text))
 
200
  end)
 
201
  it('is working', function()
 
202
    source([[
 
203
      1 s/\%#=0\A//g
 
204
      2 s/\%#=1\A//g
 
205
      3 s/\%#=2\A//g
 
206
      4 s/\%#=0[^A-Za-z]//g
 
207
      5 s/\%#=1[^A-Za-z]//g
 
208
      6 s/\%#=2[^A-Za-z]//g]])
 
209
    expect([[
 
210
      ABCDEFGHIXYZabcdefghiwxyz
 
211
      ABCDEFGHIXYZabcdefghiwxyz
 
212
      ABCDEFGHIXYZabcdefghiwxyz
 
213
      ABCDEFGHIXYZabcdefghiwxyz
 
214
      ABCDEFGHIXYZabcdefghiwxyz
 
215
      ABCDEFGHIXYZabcdefghiwxyz]])
 
216
  end)
 
217
  it('is working', function()
 
218
    source([[
 
219
      1 s/\%#=0\l//g
 
220
      2 s/\%#=1\l//g
 
221
      3 s/\%#=2\l//g
 
222
      4 s/\%#=0[a-z]//g
 
223
      5 s/\%#=1[a-z]//g
 
224
      6 s/\%#=2[a-z]//g]])
 
225
    diff(sixlines(ctrl1..punct1..digits..punct2..upper..punct3..punct4..
 
226
      ctrl2..iso_text))
 
227
  end)
 
228
  it('is working', function()
 
229
    source([[
 
230
      1 s/\%#=0\L//g
 
231
      2 s/\%#=1\L//g
 
232
      3 s/\%#=2\L//g
 
233
      4 s/\%#=0[^a-z]//g
 
234
      5 s/\%#=1[^a-z]//g
 
235
      6 s/\%#=2[^a-z]//g]])
 
236
    expect([[
 
237
      abcdefghiwxyz
 
238
      abcdefghiwxyz
 
239
      abcdefghiwxyz
 
240
      abcdefghiwxyz
 
241
      abcdefghiwxyz
 
242
      abcdefghiwxyz]])
 
243
  end)
 
244
  it('is working', function()
 
245
    source([[
 
246
      1 s/\%#=0\u//g
 
247
      2 s/\%#=1\u//g
 
248
      3 s/\%#=2\u//g
 
249
      4 s/\%#=0[A-Z]//g
 
250
      5 s/\%#=1[A-Z]//g
 
251
      6 s/\%#=2[A-Z]//g]])
 
252
    diff(sixlines(ctrl1..punct1..digits..punct2..punct3..lower..punct4..
 
253
      ctrl2..iso_text))
 
254
  end)
 
255
  it('is working', function()
 
256
    source([[
 
257
      1 s/\%#=0\U//g
 
258
      2 s/\%#=1\U//g
 
259
      3 s/\%#=2\U//g
 
260
      4 s/\%#=0[^A-Z]//g
 
261
      5 s/\%#=1[^A-Z]//g
 
262
      6 s/\%#=2[^A-Z]//g]])
 
263
    expect([[
 
264
      ABCDEFGHIXYZ
 
265
      ABCDEFGHIXYZ
 
266
      ABCDEFGHIXYZ
 
267
      ABCDEFGHIXYZ
 
268
      ABCDEFGHIXYZ
 
269
      ABCDEFGHIXYZ]])
 
270
  end)
 
271
end)