# Test global veils.

printf( "Starting the veil tests...\n" );

assert = strip (function (t)
{
  if (!test(t))
  {
    message ("...failed.\a");
    exception ();
  }
});

A = 1;
B = "two";
C = 1:3;
D = "four";

f = function ()
{
  local (a; b; c);
  a = A; b = B; c = C;
  veil (A; B; C);
  assert (A == a && b == "two");
  g ();
  assert (b == "two" && A == "four" && equal (C; 7:9));
  B = 17;
  h ();
};

g = function ()
{
  A = D; B = C = 7:9;
};

h = function ()
{
  assert (B == 17);
};

f ();

assert (A == 1 && B == "two" && equal (C; 1:3));

printf ("...passed.\n");


syntax highlighted by Code2HTML, v. 0.9.1