test: Fix migrated test 55.

There is still one TODO item in the test file as it was necessary to comment
out one line in order to get the test to pass.
This commit is contained in:
Lucas Hoffmann 2016-02-11 02:41:56 +01:00
parent 726a6abfb7
commit 1afb1cc6bc

View File

@ -356,75 +356,70 @@ describe('55', function()
same list: 1]])
end)
-- TODO
it('locked variables (part 1)', function()
--execute([[function Test(...)]])
execute([=[ let l = []]=])
execute([[ for depth in range(5)]])
execute([[ $put ='depth is ' . depth]])
execute([[ for u in range(3)]])
execute([[ unlet l]])
execute([=[ let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]]=])
execute([[ exe "lockvar " . depth . " l"]])
execute([[ if u == 1]])
execute([[ exe "unlockvar l"]])
execute([[ elseif u == 2]])
execute([[ exe "unlockvar " . depth . " l"]])
execute([[ endif]])
execute([[ let ps = islocked("l") . islocked("l[1]") . islocked("l[1][1]") . ]])
execute([[ \ islocked("l[1][1][0]") . '-' . islocked("l[2]") .]])
execute([[ \ islocked("l[2]['6']") . islocked("l[2]['6'][7]")]])
execute([[ $put =ps]])
execute([[ let ps = '']])
execute([[ try]])
execute([[ let l[1][1][0] = 99]])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([=[ let l[1][1] = [99]]=])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([=[ let l[1] = [99]]=])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([[ let l[2]['6'][7] = 99]])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([[ let l[2][6] = {99: 99}]])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([[ let l[2] = {99: 99}]])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ try]])
execute([=[ let l = [99]]=])
execute([[ let ps .= 'p']])
execute([[ catch]])
execute([[ let ps .= 'F']])
execute([[ endtry]])
execute([[ $put =ps]])
execute([[ endfor]])
execute([[ endfor]])
execute([[ unlet l]])
execute([[endfunction]])
--execute('Test()')
--execute('call Test(1, 2, [3, 4], {5: 6})')
source([=[
let l = []
for depth in range(5)
$put ='depth is ' . depth
for u in range(3)
unlet l
let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]
exe "lockvar " . depth . " l"
if u == 1
exe "unlockvar l"
elseif u == 2
exe "unlockvar " . depth . " l"
endif
let ps = islocked("l") . islocked("l[1]") . islocked("l[1][1]") .
\ islocked("l[1][1][0]") . '-' . islocked("l[2]") .
\ islocked("l[2]['6']") . islocked("l[2]['6'][7]")
$put =ps
let ps = ''
try
let l[1][1][0] = 99
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l[1][1] = [99]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l[1] = [99]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l[2]['6'][7] = 99
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l[2][6] = {99: 99}
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l[2] = {99: 99}
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
let l = [99]
let ps .= 'p'
catch
let ps .= 'F'
endtry
$put =ps
endfor
endfor]=])
expect([[
depth is 0
@ -464,68 +459,72 @@ describe('55', function()
ppppppp]])
end)
-- TODO In the original test the 5th line of this source() call was used.
-- But now the test only passes if I comment it.
it('unletting locked variables', function()
--execute(' let l = []')
execute('for depth in range(5)')
execute([[ $put ='depth is ' . depth]])
execute(' for u in range(3)')
execute(' unlet l')
execute(' let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]')
execute(' exe "lockvar " . depth . " l"')
execute(' if u == 1')
execute(' exe "unlockvar l"')
execute(' elseif u == 2')
execute(' exe "unlockvar " . depth . " l"')
execute(' endif')
execute([=[ let ps = islocked("l").islocked("l[1]").islocked("l[1][1]").islocked("l[1][1][0]").'-'.islocked("l[2]").islocked("l[2]['6']").islocked("l[2]['6'][7]")]=])
execute(' $put =ps')
execute([[ let ps = '']])
execute(' try')
execute([=[ unlet l[2]['6'][7]]=])
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l[2][6]')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l[2]')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l[1][1][0]')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l[1][1]')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l[1]')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' try')
execute(' unlet l')
execute([[ let ps .= 'p']])
execute(' catch')
execute([[ let ps .= 'F']])
execute(' endtry')
execute(' $put =ps')
execute(' endfor')
execute('endfor')
source([=[
let l = []
for depth in range(5)
$put ='depth is ' . depth
for u in range(3)
"unlet l
let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]
exe "lockvar " . depth . " l"
if u == 1
exe "unlockvar l"
elseif u == 2
exe "unlockvar " . depth . " l"
endif
let ps = islocked("l") . islocked("l[1]") . islocked("l[1][1]") .
\ islocked("l[1][1][0]") . '-' . islocked("l[2]") .
\ islocked("l[2]['6']") . islocked("l[2]['6'][7]")
$put =ps
let ps = ''
try
unlet l[2]['6'][7]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l[2][6]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l[2]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l[1][1][0]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l[1][1]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l[1]
let ps .= 'p'
catch
let ps .= 'F'
endtry
try
unlet l
let ps .= 'p'
catch
let ps .= 'F'
endtry
$put =ps
endfor
endfor]=])
expect([[
depth is 0