]> git.lizzy.rs Git - metalua.git/blob - src/samples/xglobals_test.mlua
Merge remote branch 'origin/master'
[metalua.git] / src / samples / xglobals_test.mlua
1 -{ extension 'xglobal' }
2
3 ----------------------------------------------------------------------
4 print "1) declare unassigned globals"
5 global a, b
6
7 ----------------------------------------------------------------------
8 print "2) declare-and-assign global"
9 global c = 3
10
11 ----------------------------------------------------------------------
12 print "3) assign to pre-declared globals"
13 a, b = 1, 2
14
15 ----------------------------------------------------------------------
16 print "4) fail when setting an undeclared global"
17 local st1, msg1 = pcall(function()
18    a = 4
19    d = 5 -- failure, assignment to undeclared global
20 end)
21 assert(not st1)
22 printf ("   -> This error was expected: %s", msg1)
23
24 ----------------------------------------------------------------------
25 print "5) fail when reading an undeclared global"
26 local st2, msg2 = pcall(function()
27    b = c -- OK
28    local _ = d -- failure, try to read undeclared global
29 end)
30 assert(not st2)
31 printf ("   -> This error was expected: %s", msg2)
32
33 ----------------------------------------------------------------------
34 print "6) check the globals' values"
35 assert(a==4)
36 assert(b==3)
37 assert(c==3)
38
39 ----------------------------------------------------------------------
40 print "*) done."