Mercurial > octave
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])