Mercurial > octave
diff scripts/miscellaneous/unpack.m @ 24662:276eca875721
Clear environment variables affecting tmpdir before running BIST tests (bug #52627)
* file-io.cc (Ftempname), unpack.m: Save, clear, and restore environment
variables TMPDIR and TMP when running BIST tests.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 31 Jan 2018 17:24:05 -0800 |
parents | 194eb4bd202b |
children | 2365c2661b3c |
line wrap: on
line diff
--- a/scripts/miscellaneous/unpack.m Wed Jan 31 17:15:47 2018 -0800 +++ b/scripts/miscellaneous/unpack.m Wed Jan 31 17:24:05 2018 -0800 @@ -311,37 +311,52 @@ %!testif HAVE_ZLIB -%! ## Create temporary directory and file for packing and unpacking -%! dirname = tempname (); -%! assert (mkdir (dirname)); -%! filename = tempname (); -%! fid = fopen (filename, "wt"); -%! assert (fid >= 0); -%! fprintf (fid, "Hello World\n"); -%! fprintf (fid, "123 456 789\n"); -%! fclose (fid); +%! envvar = {"TMPDIR", "TMP"}; +%! envdir = cellfun (@(x) getenv (x), envvar, "uniformoutput", false); %! unwind_protect -%! copyfile (filename, [filename ".orig"]); -%! gzip (filename, dirname); -%! [~, f] = fileparts (filename); -%! filelist = unpack (fullfile (dirname, [f ".gz"]), tempdir); -%! assert (filelist{1}, filename); -%! fid = fopen ([filename ".orig"], "rb"); -%! assert (fid >= 0); -%! orig_data = fread (fid); -%! fclose (fid); -%! fid = fopen (filename, "rb"); +%! cellfun (@(x) unsetenv (x), envvar); +%! ## Create temporary directory and file for packing and unpacking +%! dirname = tempname (); +%! assert (mkdir (dirname)); +%! filename = tempname (); +%! fid = fopen (filename, "wt"); %! assert (fid >= 0); -%! new_data = fread (fid); +%! fprintf (fid, "Hello World\n"); +%! fprintf (fid, "123 456 789\n"); %! fclose (fid); -%! if (orig_data != new_data) -%! error ("unpack: Unpacked file does not equal original"); -%! endif +%! +%! unwind_protect +%! copyfile (filename, [filename ".orig"]); +%! gzip (filename, dirname); +%! [~, f] = fileparts (filename); +%! filelist = unpack (fullfile (dirname, [f ".gz"]), tempdir); +%! assert (filelist{1}, filename); +%! fid = fopen ([filename ".orig"], "rb"); +%! assert (fid >= 0); +%! orig_data = fread (fid); +%! fclose (fid); +%! fid = fopen (filename, "rb"); +%! assert (fid >= 0); +%! new_data = fread (fid); +%! fclose (fid); +%! if (orig_data != new_data) +%! error ("unpack: Unpacked file does not equal original"); +%! endif +%! unwind_protect_cleanup +%! unlink (filename); +%! unlink ([filename ".orig"]); +%! confirm_recursive_rmdir (false, "local"); +%! rmdir (dirname, "s"); +%! end_unwind_protect %! unwind_protect_cleanup -%! unlink (filename); -%! unlink ([filename ".orig"]); -%! confirm_recursive_rmdir (false, "local"); -%! rmdir (dirname, "s"); +%! ## Restore environment variables TMPDIR, TMP +%! for i = 1:numel (envvar) +%! if (isempty (envdir{i})) +%! unsetenv (envvar{i}); +%! else +%! setenv (envvar{i}, envdir{i}); +%! endif +%! endfor %! end_unwind_protect ## Test input validation