Mercurial > octave-antonio
diff scripts/image/imread.m @ 16967:52c1b832d98e
imread: make sure test file is removed if imread() errors.
* imread.m: file removal is made before the test so it occurs even
if test fails. However, if imread() errors, file was never removed.
Fixed with use of unwind_protect block. Also, use tmpnam() to
choose filename instead of current working directory.
author | Carnë Draug <carandraug@octave.org> |
---|---|
date | Fri, 12 Jul 2013 18:06:20 +0100 |
parents | fb940d48c6f7 |
children | 997efb8d0b19 |
line wrap: on
line diff
--- a/scripts/image/imread.m Fri Jul 12 16:51:55 2013 +0100 +++ b/scripts/image/imread.m Fri Jul 12 18:06:20 2013 +0100 @@ -93,11 +93,15 @@ %! 16, 28, 160, 16, 0, 197, 214, 13, 34, 74, ... %! 117, 213, 17, 0, 0, 0, 0, 73, 69, 78, ... %! 68, 174, 66, 96, 130]; -%! fid = fopen ("test.png", "wb"); -%! fwrite (fid, vpng); -%! fclose (fid); -%! A = imread ("test.png"); -%! delete ("test.png"); +%! filename = [tmpnam() ".png"]; +%! unwind_protect +%! fid = fopen (filename, "wb"); +%! fwrite (fid, vpng); +%! fclose (fid); +%! A = imread (filename); +%! unwind_protect_cleanup +%! unlink (filename); +%! end_unwind_protect %! assert (A(:,:,1), uint8 ([0, 255, 0; 255, 237, 255; 0, 255, 0])); %! assert (A(:,:,2), uint8 ([0, 255, 0; 255, 28, 255; 0, 255, 0])); %! assert (A(:,:,3), uint8 ([0, 255, 0; 255, 36, 255; 0, 255, 0]));