diff options
Diffstat (limited to 'testes/constructs.lua')
-rw-r--r-- | testes/constructs.lua | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/testes/constructs.lua b/testes/constructs.lua index fe4db2cb..8a549e10 100644 --- a/testes/constructs.lua +++ b/testes/constructs.lua | |||
@@ -287,7 +287,7 @@ a,b = F(nil)==nil; assert(a == true and b == nil) | |||
287 | ------------------------------------------------------------------ | 287 | ------------------------------------------------------------------ |
288 | 288 | ||
289 | -- sometimes will be 0, sometimes will not... | 289 | -- sometimes will be 0, sometimes will not... |
290 | _ENV.GLOB1 = math.floor(os.time()) % 2 | 290 | _ENV.GLOB1 = math.random(0, 1) |
291 | 291 | ||
292 | -- basic expressions with their respective values | 292 | -- basic expressions with their respective values |
293 | local basiccases = { | 293 | local basiccases = { |
@@ -298,6 +298,26 @@ local basiccases = { | |||
298 | {"(0==_ENV.GLOB1)", 0 == _ENV.GLOB1}, | 298 | {"(0==_ENV.GLOB1)", 0 == _ENV.GLOB1}, |
299 | } | 299 | } |
300 | 300 | ||
301 | local prog | ||
302 | |||
303 | if _ENV.GLOB1 == 0 then | ||
304 | basiccases[2][1] = "F" -- constant false | ||
305 | |||
306 | prog = [[ | ||
307 | local <const> F = false | ||
308 | if %s then IX = true end | ||
309 | return %s | ||
310 | ]] | ||
311 | else | ||
312 | basiccases[4][1] = "k10" -- constant 10 | ||
313 | |||
314 | prog = [[ | ||
315 | local <const> k10 = 10 | ||
316 | if %s then IX = true end | ||
317 | return %s | ||
318 | ]] | ||
319 | end | ||
320 | |||
301 | print('testing short-circuit optimizations (' .. _ENV.GLOB1 .. ')') | 321 | print('testing short-circuit optimizations (' .. _ENV.GLOB1 .. ')') |
302 | 322 | ||
303 | 323 | ||
@@ -337,8 +357,6 @@ cases[1] = basiccases | |||
337 | for i = 2, level do cases[i] = createcases(i) end | 357 | for i = 2, level do cases[i] = createcases(i) end |
338 | print("+") | 358 | print("+") |
339 | 359 | ||
340 | local prog = [[if %s then IX = true end; return %s]] | ||
341 | |||
342 | local i = 0 | 360 | local i = 0 |
343 | for n = 1, level do | 361 | for n = 1, level do |
344 | for _, v in pairs(cases[n]) do | 362 | for _, v in pairs(cases[n]) do |