changeset 21457:05ffef4ebf62

tempname: Fix failing BIST test when P_tmpdir has trailing slash * file-io.cc: Fix failing tempname BIST test on UNIX systems that define the P_tmpdir directory with a trailing slash.
author Mike Miller <mtmiller@octave.org>
date Wed, 16 Mar 2016 16:09:03 -0700
parents c1c7748b00fe
children 348e335c49dd
files libinterp/corefcn/file-io.cc
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/file-io.cc	Wed Mar 16 15:12:59 2016 -0700
+++ b/libinterp/corefcn/file-io.cc	Wed Mar 16 16:09:03 2016 -0700
@@ -1702,16 +1702,21 @@
 %! endif
 %! envdir = getenv (envname);
 %! unsetenv (envname);
+%! ## Strip trailing file separators from P_tmpdir
+%! def_tmpdir = P_tmpdir;
+%! while (length (def_tmpdir) > 2 && strfind (filesep ("all"), def_tmpdir(end)))
+%!   def_tmpdir(end) = [];
+%! endwhile
 %! unwind_protect
 %!   ## Test 0-argument form
 %!   fname = tempname ();
 %!   [tmpdir, tmpfname] = fileparts (fname);
-%!   assert (tmpdir, P_tmpdir);
+%!   assert (tmpdir, def_tmpdir);
 %!   assert (tmpfname (1:4), "oct-");
 %!   ## Test 1-argument form
-%!   tmp_tmpdir = [P_tmpdir filesep() substr(tmpfname, -5)];
+%!   tmp_tmpdir = [def_tmpdir filesep() substr(tmpfname, -5)];
 %!   mkdir (tmp_tmpdir) || error ("Unable to create tmp dir");
-%!   setenv (envname, P_tmpdir);
+%!   setenv (envname, def_tmpdir);
 %!   fname = tempname (tmp_tmpdir);
 %!   [tmpdir, tmpfname] = fileparts (fname);
 %!   assert (tmpdir, tmp_tmpdir);
@@ -1719,7 +1724,7 @@
 %!   ## Test 1-argument form w/null tmpdir
 %!   fname = tempname ("");
 %!   [tmpdir, tmpfname] = fileparts (fname);
-%!   assert (tmpdir, P_tmpdir);
+%!   assert (tmpdir, def_tmpdir);
 %!   assert (tmpfname (1:4), "oct-");
 %!   ## Test 2-argument form
 %!   fname = tempname (tmp_tmpdir, "pfx-");