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

Skip to content

Commit 361f007

Browse files
authored
Merge pull request #249 from Mikhail5544/bag_fix
bag fix
2 parents e14739e + e23b7c2 commit 361f007

3 files changed

Lines changed: 63 additions & 4 deletions

File tree

source/core/types/ut_executable.tpb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,13 @@ create or replace type body ut_executable is
8484
loop
8585
dbms_output.get_line(line => l_line, status => l_status);
8686
exit when l_status = 1;
87-
88-
dbms_lob.writeappend(lob_loc => self.serveroutput,
89-
amount => length(l_line),
90-
buffer => l_line);
87+
88+
if l_line is not null then
89+
dbms_lob.writeappend(lob_loc => self.serveroutput,
90+
amount => length(l_line),
91+
buffer => l_line);
92+
end if;
93+
9194
dbms_lob.writeappend(lob_loc => self.serveroutput,
9295
amount => 1,
9396
buffer => chr(10));

tests/RunAll.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ exec ut_coverage.coverage_start_develop();
164164
@@lib/RunTest.sql ut_test/ut_test.BeforeEachProcedureNameNull.sql
165165
@@lib/RunTest.sql ut_test/ut_test.TestOutputGathering.sql
166166
@@lib/RunTest.sql ut_test/ut_test.TestOutputGatheringForTeamcity.sql
167+
@@lib/RunTest.sql ut_test/ut_test.TestOutputGatheringWhenEmpty.sql
167168
@@lib/RunTest.sql ut_test/ut_test.ReportWarningOnRollbackFailed.sql
168169

169170
@@lib/RunTest.sql ut_test_suite/ut_test_suite.ErrorsATestWhenAfterTestFails.sql
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
create or replace package ut_output_tests
2+
as
3+
--%suite
4+
5+
--%test
6+
procedure ut_passing_test;
7+
8+
end;
9+
/
10+
11+
create or replace package body ut_output_tests
12+
as
13+
14+
procedure ut_passing_test
15+
as
16+
begin
17+
--Generate empty output
18+
dbms_output.put_line('');
19+
ut.expect(1,'Test 1 Should Pass').to_equal(1);
20+
end;
21+
22+
end;
23+
/
24+
25+
declare
26+
l_output_data dbms_output.chararr;
27+
l_num_lines integer := 100000;
28+
l_output clob;
29+
begin
30+
--act
31+
ut.run('ut_output_tests');
32+
33+
--assert
34+
dbms_output.get_lines( l_output_data, l_num_lines);
35+
dbms_lob.createtemporary(l_output,true);
36+
for i in 1 .. l_num_lines loop
37+
dbms_lob.append(l_output,l_output_data(i));
38+
end loop;
39+
40+
if l_output like '%0 failed, 0 errored, 0 disabled, 0 warning(s)%' then
41+
:test_result := ut_utils.tr_success;
42+
end if;
43+
44+
if :test_result != ut_utils.tr_success or :test_result is null then
45+
for i in 1 .. l_num_lines loop
46+
dbms_output.put_line(l_output_data(i));
47+
end loop;
48+
dbms_output.put_line('Failed: Wrong output');
49+
end if;
50+
end;
51+
/
52+
53+
drop package ut_output_tests
54+
/
55+

0 commit comments

Comments
 (0)