diff m-toolbox/test/run_tests.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/test/run_tests.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,120 @@
+% Run many tests
+%
+% M Hewitson 27-04-07
+%
+%
+clear all;
+
+
+VERSION = '$Id: run_tests.m,v 1.25 2010/07/14 17:04:03 hewitson Exp $';
+
+% load list of tests
+test_list;
+
+%% Run these tests
+
+nt = 1:length(test_struct);
+
+tstart = now;
+results = [];
+k = 1;
+for n=nt
+  ctest = test_struct(n).name;
+  % try to run the test only if the file exists
+  if exist(ctest, 'file') == 2
+    
+    disp(' ');
+    disp(' ');
+    disp('=================================');
+    disp('===');
+    disp(sprintf('=== Running: %s', ctest));
+    disp('===');
+    disp('=================================');
+    disp(' ');
+    disp(' ');
+    
+    try
+      tic
+      eval(ctest)
+      results(k).test     = ctest;
+      results(k).result   = 'pass';
+      results(k).duration = toc;
+    catch
+      l_error = lasterror;
+      results(k).test     = ctest;
+      results(k).result   = ['fail    Error message: ' strrep(l_error.message, char(10), '  ')];
+      results(k).duration = toc;
+    end
+    close all
+  else
+    results(k).test     = ctest;
+    results(k).result   = 'fail: test file not found';
+    results(k).duration = 0;
+  end
+  k = k + 1;
+end
+tend = now;
+
+%% Post processing
+
+npassed = 0;
+for j=1:length(results)
+  r = results(j);
+  if strcmp(r.result, 'pass')
+    npassed = npassed + 1;
+  end
+end
+
+%% Write report
+
+% get max test name
+maxstr = 0;
+for t=1:length(test_struct)
+  ctest = test_struct(t).name;
+  if length(ctest) > maxstr
+    maxstr = length(ctest);
+  end
+end
+
+
+v = ver('ltpda');
+
+pth = utils.prog.get_curr_m_file_path(mfilename);
+
+filename = [pth 'test_run_' strrep(strrep(datestr(now), ' ', '_'), ':', '_') '_' computer '.log'];
+
+fd = fopen(filename, 'w+');
+
+fprintf(fd, '%% Test run \n');
+fprintf(fd, '%%  \n');
+fprintf(fd, '%% Started  %s\n', strrep(datestr(tstart), ' ', '_'));
+fprintf(fd, '%% Finished %s\n', strrep(datestr(tend), ' ', '_'));
+fprintf(fd, '%%  \n');
+fprintf(fd, '%%  \n');
+fprintf(fd, '%% writen by %s / %s \n', mfilename, VERSION);
+fprintf(fd, '%%  \n');
+fprintf(fd, '%%  %d tests run\n', length(test_struct));
+fprintf(fd, '%%  %d tests passed\n', npassed);
+fprintf(fd, '%%  %d tests failed\n', length(test_struct)-npassed);
+fprintf(fd, '%% \n');
+fprintf(fd, '%% Tests run on %s with version %s of LTPDA\n', computer, v.Version);
+fprintf(fd, '%% \n');
+fprintf(fd, '%% \n');
+fprintf(fd, '%% Test No  | Test | Execution time [s] | pass/fail \n');
+fprintf(fd, '\n');
+fprintf(fd, '\n');
+
+for j=1:length(results)
+  r = results(j);
+  fprintf(fd, '%03d   %s   %06.2f   %s\n', j, utils.prog.strpad(r.test, maxstr), r.duration, r.result);
+end
+
+
+fprintf(fd, '\n');
+fprintf(fd, '\n');
+fprintf(fd, '%% END \n');
+
+fclose(fd);
+edit(filename);
+
+% END
\ No newline at end of file