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 |
