# HG changeset patch # User Rik # Date 1379862959 25200 # Node ID f271fa40074d74e1cc68fe525891abef85394e1e # Parent f0ecb52097ec5ee1c6fe6d0423350b33f9badf99 runtests.m, rundemos.m: Use readdir, rather than dir, for ~700X speed-up. * scripts/testfun/rundemos.m, scripts/testfun/runtests.m: Use readdir, rather than dir, for ~700X speed-up. diff -r f0ecb52097ec -r f271fa40074d scripts/testfun/rundemos.m --- a/scripts/testfun/rundemos.m Sun Sep 22 08:00:00 2013 -0700 +++ b/scripts/testfun/rundemos.m Sun Sep 22 08:15:59 2013 -0700 @@ -64,10 +64,10 @@ endfunction function run_all_demos (directory, do_class_dirs) - flist = dir (directory); + flist = readdir (directory); dirs = {}; for i = 1:numel (flist) - f = flist(i).name; + f = flist{i}; if ((length (f) > 2 && strcmpi (f((end-1):end), ".m")) || (length (f) > 3 && strcmpi (f((end-2):end), ".cc"))) f = fullfile (directory, f); @@ -81,9 +81,11 @@ input ("Press to continue: ", "s"); endif endif - elseif (flist(i).isdir && f(1) == "@") + elseif (f(1) == "@") f = fullfile (directory, f); - dirs = {dirs{:}, f}; + if (isdir (f)) + dirs(end+1) = f; + endif endif endfor diff -r f0ecb52097ec -r f271fa40074d scripts/testfun/runtests.m --- a/scripts/testfun/runtests.m Sun Sep 22 08:00:00 2013 -0700 +++ b/scripts/testfun/runtests.m Sun Sep 22 08:15:59 2013 -0700 @@ -64,13 +64,13 @@ endfunction function run_all_tests (directory, do_class_dirs) - flist = dir (directory); + flist = readdir (directory); dirs = {}; no_tests = {}; printf ("Processing files in %s:\n\n", directory); fflush (stdout); for i = 1:numel (flist) - f = flist(i).name; + f = flist{i}; if ((length (f) > 2 && strcmpi (f((end-1):end), ".m")) || (length (f) > 3 && strcmpi (f((end-2):end), ".cc"))) ff = fullfile (directory, f); @@ -80,11 +80,13 @@ print_pass_fail (n, p); fflush (stdout); elseif (has_functions (ff)) - no_tests{end+1} = f; + no_tests(end+1) = f; endif - elseif (flist(i).isdir && f(1) == "@") + elseif (f(1) == "@") f = fullfile (directory, f); - dirs = {dirs{:}, f}; + if (isdir (f)) + dirs(end+1) = f; + endif endif endfor if (! isempty (no_tests))