comparison scripts/testfun/rundemos.m @ 17148:fa14aa77b514

Allow relative directory name for rundemos/runtests. * scripts/testfun/rundemos.m: Use canonicalize_file_name if directory is relative. Use readdir() rather than dir() for performance. *scripts/testfun/runtests.m: Use canonicalize_file_name if directory is relative. Use readdir() rather than dir() for performance. Add %!error blocks.
author Rik <rik@octave.org>
date Fri, 02 Aug 2013 09:01:55 -0700
parents b7667fcb9fbc
children 2c2a6801cb57
comparison
equal deleted inserted replaced
17147:35a1bd41aa02 17148:fa14aa77b514
32 if (nargin == 0) 32 if (nargin == 0)
33 dirs = ostrsplit (path (), pathsep ()); 33 dirs = ostrsplit (path (), pathsep ());
34 elseif (nargin == 1) 34 elseif (nargin == 1)
35 if (is_absolute_filename (directory)) 35 if (is_absolute_filename (directory))
36 dirs = {directory}; 36 dirs = {directory};
37 elseif (is_rooted_relative_filename (directory))
38 dirs = {canonicalize_file_name(directory)};
37 else 39 else
38 directory = regexprep (directory, ['\',filesep(),'$'], ""); 40 if (directory(end) == filesep ())
41 directory = directory(1:end-1);
42 endif
39 fullname = find_dir_in_path (directory); 43 fullname = find_dir_in_path (directory);
40 if (! isempty (fullname)) 44 if (! isempty (fullname))
41 dirs = {fullname}; 45 dirs = {fullname};
42 else 46 else
43 error ("rundemos: DIRECTORY argument must be a valid pathname"); 47 error ("rundemos: DIRECTORY argument must be a valid pathname");
53 endfor 57 endfor
54 58
55 endfunction 59 endfunction
56 60
57 function run_all_demos (directory) 61 function run_all_demos (directory)
58 dirinfo = dir (directory); 62 flist = readdir (directory);
59 flist = {dirinfo.name};
60 for i = 1:numel (flist) 63 for i = 1:numel (flist)
61 f = flist{i}; 64 f = flist{i};
62 if (length (f) > 2 && strcmp (f((end-1):end), ".m")) 65 if (length (f) > 2 && strcmp (f((end-1):end), ".m"))
63 f = fullfile (directory, f); 66 f = fullfile (directory, f);
64 if (has_demos (f)) 67 if (has_demos (f))