forked from utPLSQL/utPLSQL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathut_runner.pkb
More file actions
202 lines (181 loc) · 8.11 KB
/
ut_runner.pkb
File metadata and controls
202 lines (181 loc) · 8.11 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
create or replace package body ut_runner is
/*
utPLSQL - Version X.X.X.X
Copyright 2016 - 2017 utPLSQL Project
Licensed under the Apache License, Version 2.0 (the "License"):
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* Private functions
*/
function to_ut_object_list(a_names ut_varchar2_list) return ut_object_names is
l_result ut_object_names;
begin
if a_names is not null then
l_result := ut_object_names();
for i in 1 .. a_names.count loop
l_result.extend;
l_result(l_result.last) := ut_object_name(a_names(i));
end loop;
end if;
return l_result;
end;
procedure finish_run(a_reporters ut_reporters) is
begin
ut_utils.cleanup_temp_tables;
ut_output_buffer.close(a_reporters);
ut_metadata.reset_source_definition_cache;
ut_utils.read_cache_to_dbms_output();
end;
/**
* Public functions
*/
function version return varchar2 is
begin
return ut_utils.gc_version;
end;
function version_compatibility_check( a_requested varchar2, a_current varchar2 := null ) return integer is
l_result boolean := false;
l_requested ut_utils.t_version := ut_utils.to_version(a_requested);
l_current ut_utils.t_version := ut_utils.to_version(coalesce(a_current,version()));
begin
if l_requested.major = l_current.major
and (l_requested.minor < l_current.minor or l_requested.minor is null
or l_requested.minor = l_current.minor and (l_requested.bugfix <= l_current.bugfix or l_requested.bugfix is null)) then
l_result := true;
end if;
return ut_utils.boolean_to_int(l_result);
end;
procedure run(
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
l_items_to_run ut_run;
l_listener ut_event_listener;
begin
begin
ut_output_buffer.cleanup_buffer();
ut_utils.save_dbms_output_to_cache();
ut_console_reporter_base.set_color_enabled(a_color_console);
if a_reporters is null or a_reporters.count = 0 then
l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter()));
else
l_listener := ut_event_listener(a_reporters);
end if;
l_items_to_run := ut_run(
ut_suite_manager.configure_execution_by_path(a_paths),
a_paths,
ut_utils.convert_collection(a_coverage_schemes),
to_ut_object_list(a_exclude_objects),
to_ut_object_list(a_include_objects),
set(a_source_file_mappings),
set(a_test_file_mappings)
);
l_items_to_run.do_execute(l_listener);
finish_run(l_listener.reporters);
exception
when others then
finish_run(l_listener.reporters);
dbms_output.put_line(dbms_utility.format_error_backtrace);
dbms_output.put_line(dbms_utility.format_error_stack);
raise;
end;
if a_fail_on_errors and l_items_to_run.result in (ut_utils.tr_failure, ut_utils.tr_error) then
raise_application_error(ut_utils.gc_some_tests_failed, 'Some tests failed');
end if;
end;
procedure run(
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
a_paths, a_reporters, a_color_console, a_coverage_schemes,
ut_file_mapper.build_file_mappings(a_source_files),
ut_file_mapper.build_file_mappings(a_test_files),
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end;
procedure run(
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end;
procedure run(
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
a_color_console, a_coverage_schemes, a_source_files, a_test_files,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end;
procedure run(
a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
a_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end run;
procedure run(
a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
a_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end run;
procedure run(
a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
a_reporters, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end run;
procedure run(
a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
) is
begin
run(
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
a_reporters, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
a_include_objects, a_exclude_objects, a_fail_on_errors
);
end run;
end ut_runner;
/