diff options
-rw-r--r-- | test/functional/legacy/055_spec.lua | 257 |
1 files changed, 128 insertions, 129 deletions
diff --git a/test/functional/legacy/055_spec.lua b/test/functional/legacy/055_spec.lua index 8316fe15ce..bfabea20fa 100644 --- a/test/functional/legacy/055_spec.lua +++ b/test/functional/legacy/055_spec.lua @@ -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 |