Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 96fd7d8

Browse files
committed
Added debug to the Travis CI build.
Changed reporters to use proper types instead of generic types as procedure parameters. Added listener interface to avoid oracle circular reference exception. Refactored to use generic listener methods everywhere.
1 parent ae9b5fe commit 96fd7d8

24 files changed

Lines changed: 295 additions & 359 deletions

.travis/install.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ cd ..
1111
cd build
1212
#do style check
1313
"$ORACLE_HOME/bin/sqlplus" $UT3_USER/$UT3_PASSWORD @utplsql_style_check.sql
14+
15+
#enable plsql debug
16+
"$ORACLE_HOME/bin/sqlplus" $UT3_USER/$UT3_PASSWORD @ut_debug_enable.sql

examples/ut_custom_reporter.tpb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,28 @@ create or replace type body ut_custom_reporter is
2424
(self as ut_documentation_reporter).print_text(tab || a_text);
2525
end;
2626

27-
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite_item) as
27+
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite) as
2828
begin
29-
(self as ut_documentation_reporter).before_suite(a_suite);
29+
(self as ut_documentation_reporter).before_calling_suite(a_suite);
3030
lvl := lvl + 1;
3131
end;
3232

33-
overriding member procedure before_test(self in out nocopy ut_custom_reporter, a_test ut_suite_item) as
33+
overriding member procedure before_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test) as
3434
begin
35-
(self as ut_documentation_reporter).before_test(a_test);
35+
(self as ut_documentation_reporter).before_calling_test(a_test);
3636
lvl := lvl + 1;
3737
end;
3838

39-
overriding member procedure after_test(self in out nocopy ut_custom_reporter, a_test ut_suite_item) as
39+
overriding member procedure after_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test) as
4040
begin
4141
lvl := lvl - 1;
42-
(self as ut_documentation_reporter).after_test(a_test);
42+
(self as ut_documentation_reporter).after_calling_test(a_test);
4343
end;
4444

45-
overriding member procedure after_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite_item) as
45+
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite) as
4646
begin
4747
lvl := lvl - 1;
48-
(self as ut_documentation_reporter).after_suite(a_suite);
48+
(self as ut_documentation_reporter).after_calling_suite(a_suite);
4949
end;
5050

5151
end;

examples/ut_custom_reporter.tps

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ create or replace type ut_custom_reporter under ut_documentation_reporter
66
constructor function ut_custom_reporter(a_tab_size integer default 4, a_output ut_output default ut_output_dbms_output() ) return self as result,
77
overriding member function tab(self in ut_custom_reporter) return varchar2,
88
overriding member procedure print_text(a_text varchar2),
9-
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite_item),
10-
overriding member procedure before_test(self in out nocopy ut_custom_reporter, a_test ut_suite_item),
11-
overriding member procedure after_test(self in out nocopy ut_custom_reporter, a_test ut_suite_item),
12-
overriding member procedure after_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite_item)
9+
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite),
10+
overriding member procedure before_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test),
11+
overriding member procedure after_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test),
12+
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite)
1313
)
1414
not final
1515
/

source/core/types/ut_executable.tpb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ create or replace type body ut_executable is
5353
return ut_metadata.form_name(owner_name, object_name, procedure_name);
5454
end;
5555

56-
member procedure do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_execution_listener) is
56+
member procedure do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface) is
5757
l_completed_without_errors boolean;
5858
begin
5959
l_completed_without_errors := self.do_execute(a_item, a_listener);
6060
end do_execute;
6161

62-
member function do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_execution_listener) return boolean is
62+
member function do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface) return boolean is
6363
l_statement varchar2(4000);
6464
l_status number;
6565
l_cursor_number number;

source/core/types/ut_executable.tps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ create or replace type ut_executable force as object
88
member function is_valid return boolean,
99
member function is_defined return boolean,
1010
member function form_name return varchar2,
11-
member procedure do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_execution_listener),
11+
member procedure do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface),
1212
/**
1313
* executes the defines executable
1414
* returns true if executed without exceptions
1515
* returns false if exceptions were raised
1616
*/
17-
member function do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_execution_listener) return boolean
17+
member function do_execute(self in ut_executable, a_item in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface) return boolean
1818
) final
1919
/
Lines changed: 20 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +1,35 @@
11
create or replace type body ut_execution_listener is
22

3-
member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
3+
constructor function ut_execution_listener(self in out nocopy ut_execution_listener, a_reporters ut_reporters) return self as result is
4+
begin
5+
reporters := a_reporters;
6+
return;
7+
end;
8+
9+
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
410
begin
511
self.fire_event('before', a_event_name, a_item);
612
end;
713

8-
member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
14+
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
915
begin
1016
self.fire_event('after', a_event_name, a_item);
1117
end;
1218

13-
member procedure fire_event(self in out nocopy ut_execution_listener, event_timing varchar2, a_event_name varchar2, a_item ut_suite_item) is
19+
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item) is
20+
l_method varchar2(250) := a_event_timing||'_calling_'||a_event_name;
1421
begin
15-
execute immediate 'declare ' ||
16-
' l_listener ut_execution_listener := :a_listener;' ||
17-
'begin ' ||
18-
' l_listener.'||event_timing||'_calling_'||a_event_name||'( :a_item );' ||
19-
' :a_result := l_listener;' ||
20-
'end;' using in self, in a_item, out self;
22+
execute immediate
23+
'declare ' || chr(10) ||
24+
' l_listener ut_execution_listener := :a_listener;' || chr(10) ||
25+
'begin ' || chr(10) ||
26+
' for i in 1 .. l_listener.reporters.count loop' || chr(10) ||
27+
' l_listener.reporters(i).'||l_method||'( :a_item );' || chr(10) ||
28+
' end loop;' || chr(10) ||
29+
' :a_result := l_listener;' || chr(10) ||
30+
'end;'
31+
using in self, in a_item, out self;
2132
end;
2233

23-
member procedure before_run(self in out nocopy ut_execution_listener, a_suites in ut_suite_items) is
24-
begin
25-
for i in 1 .. self.reporters.count loop
26-
self.reporters(i).before_run(a_suites => a_suites);
27-
end loop;
28-
end;
29-
30-
member procedure after_run(self in out nocopy ut_execution_listener, a_suites in ut_suite_items) is
31-
begin
32-
for i in 1 .. self.reporters.count loop
33-
self.reporters(i).after_run(a_suites => a_suites);
34-
end loop;
35-
end;
36-
37-
-- suite hooks
38-
member procedure before_suite(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
39-
begin
40-
for i in 1 .. self.reporters.count loop
41-
self.reporters(i).before_suite(a_suite => a_suite);
42-
end loop;
43-
end;
44-
45-
member procedure before_calling_before_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
46-
begin
47-
for i in 1 .. self.reporters.count loop
48-
self.reporters(i).before_suite_setup(a_suite => a_suite);
49-
end loop;
50-
end;
51-
52-
member procedure after_calling_before_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
53-
begin
54-
for i in 1 .. self.reporters.count loop
55-
self.reporters(i).after_suite_setup(a_suite => a_suite);
56-
end loop;
57-
end;
58-
59-
member procedure before_suite_item(self in out nocopy ut_execution_listener, a_suite in ut_suite_item, a_item_index pls_integer) is
60-
begin
61-
for i in 1 .. self.reporters.count loop
62-
self.reporters(i).before_suite_item(a_suite => a_suite, a_item_index => a_item_index);
63-
end loop;
64-
end;
65-
66-
member procedure after_suite_item(self in out nocopy ut_execution_listener, a_suite in ut_suite_item, a_item_index pls_integer) is
67-
begin
68-
for i in 1 .. self.reporters.count loop
69-
self.reporters(i).after_suite_item(a_suite => a_suite, a_item_index => a_item_index);
70-
end loop;
71-
end;
72-
73-
member procedure before_calling_after_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
74-
begin
75-
for i in 1 .. self.reporters.count loop
76-
self.reporters(i).before_suite_teardown(a_suite => a_suite);
77-
end loop;
78-
end;
79-
80-
member procedure after_calling_after_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
81-
begin
82-
for i in 1 .. self.reporters.count loop
83-
self.reporters(i).after_suite_teardown(a_suite => a_suite);
84-
end loop;
85-
end;
86-
87-
member procedure after_suite(self in out nocopy ut_execution_listener, a_suite in ut_suite_item) is
88-
begin
89-
for i in 1 .. self.reporters.count loop
90-
self.reporters(i).after_suite(a_suite => a_suite);
91-
end loop;
92-
end;
93-
94-
-- test hooks
95-
member procedure before_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
96-
begin
97-
for i in 1 .. self.reporters.count loop
98-
self.reporters(i).before_test(a_test => a_test);
99-
end loop;
100-
end;
101-
102-
member procedure before_calling_before_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
103-
begin
104-
for i in 1 .. self.reporters.count loop
105-
self.reporters(i).before_test_setup(a_test => a_test);
106-
end loop;
107-
end;
108-
109-
member procedure after_calling_before_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
110-
begin
111-
for i in 1 .. self.reporters.count loop
112-
self.reporters(i).after_test_setup(a_test => a_test);
113-
end loop;
114-
end;
115-
116-
member procedure before_calling_test_execute(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
117-
begin
118-
for i in 1 .. self.reporters.count loop
119-
self.reporters(i).before_test_execute(a_test => a_test);
120-
end loop;
121-
end;
122-
123-
member procedure after_calling_test_execute(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
124-
begin
125-
for i in 1 .. self.reporters.count loop
126-
self.reporters(i).after_test_execute(a_test => a_test);
127-
end loop;
128-
end;
129-
130-
member procedure before_calling_after_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
131-
begin
132-
for i in 1 .. self.reporters.count loop
133-
self.reporters(i).before_test_teardown(a_test => a_test);
134-
end loop;
135-
end;
136-
137-
member procedure after_calling_after_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
138-
begin
139-
for i in 1 .. self.reporters.count loop
140-
self.reporters(i).after_test_teardown(a_test => a_test);
141-
end loop;
142-
end;
143-
144-
member procedure after_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item) is
145-
begin
146-
for i in 1 .. self.reporters.count loop
147-
self.reporters(i).after_test(a_test => a_test);
148-
end loop;
149-
end;
150-
15134
end;
15235
/
Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,9 @@
1-
create or replace type ut_execution_listener as object
1+
create or replace type ut_execution_listener under ut_listener_interface
22
(
33
reporters ut_reporters,
4-
5-
--generic hook
6-
member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
7-
member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
8-
member procedure fire_event(self in out nocopy ut_execution_listener, event_timing varchar2, a_event_name varchar2, a_item ut_suite_item),
9-
10-
-- run hooks
11-
member procedure before_run(self in out nocopy ut_execution_listener, a_suites in ut_suite_items),
12-
member procedure after_run (self in out nocopy ut_execution_listener, a_suites in ut_suite_items),
13-
14-
-- suite hooks
15-
member procedure before_suite(self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
16-
17-
member procedure before_calling_before_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
18-
member procedure after_calling_before_all (self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
19-
20-
member procedure before_suite_item(self in out nocopy ut_execution_listener, a_suite in ut_suite_item, a_item_index pls_integer),
21-
member procedure after_suite_item (self in out nocopy ut_execution_listener, a_suite in ut_suite_item, a_item_index pls_integer),
22-
23-
member procedure before_calling_after_all(self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
24-
member procedure after_calling_after_all (self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
25-
26-
member procedure after_suite(self in out nocopy ut_execution_listener, a_suite in ut_suite_item),
27-
28-
-- test hooks
29-
member procedure before_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item),
30-
31-
member procedure before_calling_before_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item),
32-
member procedure after_calling_before_test (self in out nocopy ut_execution_listener, a_test in ut_suite_item),
33-
34-
member procedure before_calling_test_execute(self in out nocopy ut_execution_listener, a_test in ut_suite_item),
35-
member procedure after_calling_test_execute (self in out nocopy ut_execution_listener, a_test in ut_suite_item),
36-
37-
member procedure before_calling_after_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item),
38-
member procedure after_calling_after_test (self in out nocopy ut_execution_listener, a_test in ut_suite_item),
39-
40-
member procedure after_test(self in out nocopy ut_execution_listener, a_test in ut_suite_item)
4+
constructor function ut_execution_listener(self in out nocopy ut_execution_listener, a_reporters ut_reporters) return self as result,
5+
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
6+
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
7+
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item)
418
)
429
/
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
create or replace type ut_listener_interface as object
2+
(
3+
name varchar2(250),
4+
member procedure fire_before_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item),
5+
member procedure fire_after_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item),
6+
member procedure fire_event(self in out nocopy ut_listener_interface, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item)
7+
) not final not instantiable
8+
/

0 commit comments

Comments
 (0)