diff options
Diffstat (limited to 'testes/literals.lua')
-rw-r--r-- | testes/literals.lua | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/testes/literals.lua b/testes/literals.lua index d5a769ed..30ab9ab1 100644 --- a/testes/literals.lua +++ b/testes/literals.lua | |||
@@ -10,6 +10,7 @@ local function dostring (x) return assert(load(x), "")() end | |||
10 | 10 | ||
11 | dostring("x \v\f = \t\r 'a\0a' \v\f\f") | 11 | dostring("x \v\f = \t\r 'a\0a' \v\f\f") |
12 | assert(x == 'a\0a' and string.len(x) == 3) | 12 | assert(x == 'a\0a' and string.len(x) == 3) |
13 | _G.x = nil | ||
13 | 14 | ||
14 | -- escape sequences | 15 | -- escape sequences |
15 | assert('\n\"\'\\' == [[ | 16 | assert('\n\"\'\\' == [[ |
@@ -129,16 +130,16 @@ end | |||
129 | 130 | ||
130 | -- long variable names | 131 | -- long variable names |
131 | 132 | ||
132 | var1 = string.rep('a', 15000) .. '1' | 133 | local var1 = string.rep('a', 15000) .. '1' |
133 | var2 = string.rep('a', 15000) .. '2' | 134 | local var2 = string.rep('a', 15000) .. '2' |
134 | prog = string.format([[ | 135 | local prog = string.format([[ |
135 | %s = 5 | 136 | %s = 5 |
136 | %s = %s + 1 | 137 | %s = %s + 1 |
137 | return function () return %s - %s end | 138 | return function () return %s - %s end |
138 | ]], var1, var2, var1, var1, var2) | 139 | ]], var1, var2, var1, var1, var2) |
139 | local f = dostring(prog) | 140 | local f = dostring(prog) |
140 | assert(_G[var1] == 5 and _G[var2] == 6 and f() == -1) | 141 | assert(_G[var1] == 5 and _G[var2] == 6 and f() == -1) |
141 | var1, var2, f = nil | 142 | _G[var1], _G[var2] = nil |
142 | print('+') | 143 | print('+') |
143 | 144 | ||
144 | -- escapes -- | 145 | -- escapes -- |
@@ -150,13 +151,13 @@ assert([[ | |||
150 | $debug]] == "\n $debug") | 151 | $debug]] == "\n $debug") |
151 | assert([[ [ ]] ~= [[ ] ]]) | 152 | assert([[ [ ]] ~= [[ ] ]]) |
152 | -- long strings -- | 153 | -- long strings -- |
153 | b = "001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789" | 154 | local b = "001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789" |
154 | assert(string.len(b) == 960) | 155 | assert(string.len(b) == 960) |
155 | prog = [=[ | 156 | prog = [=[ |
156 | print('+') | 157 | print('+') |
157 | 158 | ||
158 | a1 = [["this is a 'string' with several 'quotes'"]] | 159 | local a1 = [["this is a 'string' with several 'quotes'"]] |
159 | a2 = "'quotes'" | 160 | local a2 = "'quotes'" |
160 | 161 | ||
161 | assert(string.find(a1, a2) == 34) | 162 | assert(string.find(a1, a2) == 34) |
162 | print('+') | 163 | print('+') |
@@ -164,12 +165,13 @@ print('+') | |||
164 | a1 = [==[temp = [[an arbitrary value]]; ]==] | 165 | a1 = [==[temp = [[an arbitrary value]]; ]==] |
165 | assert(load(a1))() | 166 | assert(load(a1))() |
166 | assert(temp == 'an arbitrary value') | 167 | assert(temp == 'an arbitrary value') |
168 | _G.temp = nil | ||
167 | -- long strings -- | 169 | -- long strings -- |
168 | b = "001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789" | 170 | local b = "001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789" |
169 | assert(string.len(b) == 960) | 171 | assert(string.len(b) == 960) |
170 | print('+') | 172 | print('+') |
171 | 173 | ||
172 | a = [[00123456789012345678901234567890123456789123456789012345678901234567890123456789 | 174 | local a = [[00123456789012345678901234567890123456789123456789012345678901234567890123456789 |
173 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 | 175 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 |
174 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 | 176 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 |
175 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 | 177 | 00123456789012345678901234567890123456789123456789012345678901234567890123456789 |
@@ -199,13 +201,11 @@ x = 1 | |||
199 | ]=] | 201 | ]=] |
200 | 202 | ||
201 | print('+') | 203 | print('+') |
202 | x = nil | 204 | _G.x = nil |
203 | dostring(prog) | 205 | dostring(prog) |
204 | assert(x) | 206 | assert(x) |
207 | _G.x = nil | ||
205 | 208 | ||
206 | prog = nil | ||
207 | a = nil | ||
208 | b = nil | ||
209 | 209 | ||
210 | 210 | ||
211 | do -- reuse of long strings | 211 | do -- reuse of long strings |
@@ -234,8 +234,8 @@ end | |||
234 | 234 | ||
235 | -- testing line ends | 235 | -- testing line ends |
236 | prog = [[ | 236 | prog = [[ |
237 | a = 1 -- a comment | 237 | local a = 1 -- a comment |
238 | b = 2 | 238 | local b = 2 |
239 | 239 | ||
240 | 240 | ||
241 | x = [=[ | 241 | x = [=[ |
@@ -252,10 +252,11 @@ for _, n in pairs{"\n", "\r", "\n\r", "\r\n"} do | |||
252 | assert(dostring(prog) == nn) | 252 | assert(dostring(prog) == nn) |
253 | assert(_G.x == "hi\n" and _G.y == "\nhello\r\n\n") | 253 | assert(_G.x == "hi\n" and _G.y == "\nhello\r\n\n") |
254 | end | 254 | end |
255 | _G.x, _G.y = nil | ||
255 | 256 | ||
256 | 257 | ||
257 | -- testing comments and strings with long brackets | 258 | -- testing comments and strings with long brackets |
258 | a = [==[]=]==] | 259 | local a = [==[]=]==] |
259 | assert(a == "]=") | 260 | assert(a == "]=") |
260 | 261 | ||
261 | a = [==[[===[[=[]]=][====[]]===]===]==] | 262 | a = [==[[===[[=[]]=][====[]]===]===]==] |