-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_tests.m
50 lines (44 loc) · 998 Bytes
/
run_tests.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function ret = run_tests(tests, varargin)
STATUS_PASS = 0;
%Old style - allow handles and test names to be passed separately
if nargin > 1
handles = tests
names = varargin{1};
end
pass_i = 1;
fail_i = 1;
passed = {};
failed = {};
messages = {};
for ii = 1:length(handles)
if nargin > 1
f = handles{ii};
test_name = names{ii};
else
f = tests(ii).f;
test_name = tests(ii).name;
end
tic;
[status, msg] = f();
messages(ii).name = test_name;
messages(ii).text = msg;
if (status == STATUS_PASS)
passed(pass_i).name = test_name;
passed(pass_i).status = status;
passed(pass_i).text = msg;
passed(pass_i).f = f;
passed(pass_i).time = toc;
pass_i = pass_i + 1;
else
failed(fail_i).name = test_name;
failed(fail_i).status = status;
failed(fail_i).text = msg;
failed(fail_i).f = f;
failed(fail_i).time = toc;
fail_i = fail_i + 1;
end;
end;
ret.failed = failed;
ret.passed = passed;
ret.messages = messages;
end