Mercurial > hg > octave-nkf
changeset 20134:ee7159d9a330
tar.m: Re-code BIST test restore working directory even when test fails (bug #44007).
* tar.m: Place 'chdir (orig_dir)' as first statement in unwind_protect_cleanup.
Check whether files/dirs exist before attempting to delete them in unwind_protect_cleanup.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 10 Mar 2015 13:59:06 -0700 |
parents | 277b12eed117 |
children | 501cbbaafc56 |
files | scripts/miscellaneous/tar.m |
diffstat | 1 files changed, 16 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/tar.m +++ b/scripts/miscellaneous/tar.m @@ -76,16 +76,17 @@ %!xtest -%! ## test gzip together with gunzip +%! ## test tar together with untar %! orig_dir = pwd (); %! unwind_protect -%! dirname = tempname; +%! dirname = tarname = outdir = ""; +%! dirname = tempname (); %! assert (mkdir (dirname)); %! chdir (dirname); %! dirname2 = "dir2"; %! assert (mkdir (dirname2)); -%! fname1 = "f1"; -%! fname2 = fullfile (dirname2, "f2"); +%! fname1 = "file1"; +%! fname2 = fullfile (dirname2, "file2"); %! fid = fopen (fname1, "wt"); %! assert (fid >= 0); %! fdisp (fid, "Hello World"); @@ -94,7 +95,7 @@ %! assert (fid >= 0); %! fdisp (fid, "Goodbye World"); %! fclose (fid); -%! tarname = [tempname ".tar"]; +%! tarname = [tempname() ".tar"]; %! filelist = tar (tarname, {dirname2, fname1}); %! if (! strcmp (filelist{3}, fname1)) %! error ("tar file contents does not match expected file"); @@ -115,11 +116,17 @@ %! fclose (fid); %! assert (str, "Goodbye World"); %! unwind_protect_cleanup -%! delete (tarname); +%! chdir (orig_dir); +%! if (exist (tarname)) +%! delete (tarname); +%! endif %! confirm_recursive_rmdir (false, "local"); -%! rmdir (dirname, "s"); -%! rmdir (outdir, "s"); -%! chdir (orig_dir); +%! if (exist (dirname)) +%! rmdir (dirname, "s"); +%! endif +%! if (exist (outdir)) +%! rmdir (outdir, "s"); +%! endif %! end_unwind_protect ## Test input validation