view test/bug-53027/bug-53027.tst @ 24977:2b040946dc69 stable

improve handling of clear for globals, forwarded symbols (bug #53027) * symrec.h (symbol_record::symbol_record_rep::clear): Don't return early after unbinding global. Don't check for forwarded symbol here. * symrec.h (symbol_record::is_forwarded, symbol_record::symbol_record_rep::is_forwarded): New functions. * symscope.h (symbol_scope_rep::refresh): Don't delete forwarded symbols. * test/bug-53027/bug-53027.tst, test/bug-53027/module.mk, test/bug-53027/ntest53027a.m, test/bug-53027/ntest53027b.m: New test files. * test/module.mk: Include test/bug-53027/module.mk.
author John W. Eaton <jwe@octave.org>
date Thu, 22 Mar 2018 17:34:41 -0400
parents
children c16ad80274c9
line wrap: on
line source

%!function load53027 (fname)
%!  global X
%!  X = 2;
%!  load (fname);
%!  assert (X, 1);
%!endfunction

%!function save53027 (fname)
%!  global X
%!  X = 1;
%!  save (fname, "X");
%!endfunction

%!test <*53027>
%! global X
%! X = 0;
%! fname = tmpnam ();
%! save53027 (fname);
%! assert (X, 1);
%! load53027 (fname);
%! assert (X, 1);
%! load53027 (fname);
%! assert (X, 1);
%! clear X
%! assert (exist ("X"), 0);

%!test <*53027>
%! [a, b] = ntest53027a ();
%! assert ([a, b], [0, 0])

## Not fixed yet.
%!test <53027>
%! [a, b] = ntest53027b ();
%! assert ([a, b], [0, 0])