@@ -118,6 +118,22 @@ create or replace package body test_realtime_reporter as
118118 end;
119119 end;]';
120120
121+ execute immediate q'[create or replace package check_realtime_reporting5 is
122+ --%suite
123+ --%suitepath(realtime_reporting_bufix)
124+
125+ --%test(test XML with nested CDATA)
126+ procedure test_nested_cdata;
127+ end;]';
128+
129+ execute immediate q'[create or replace package body check_realtime_reporting5 is
130+ procedure test_nested_cdata is
131+ begin
132+ dbms_output.put_line('nested cdata block: <![CDATA[...]]>, to be handled.');
133+ ut.expect(1).to_equal(1);
134+ end;
135+ end;]';
136+
121137 <<run_report_and_cache_result>>
122138 declare
123139 l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter();
@@ -448,6 +464,35 @@ create or replace package body test_realtime_reporter as
448464 l_actual := l_reporter.get_description();
449465 ut.expect(l_actual).to_be_like(l_expected);
450466 end get_description;
467+
468+ procedure nested_cdata_output is
469+ l_text varchar2(4000);
470+ l_xml xmltype;
471+ --
472+ function produce_and_consume return varchar2 is
473+ pragma autonomous_transaction;
474+ l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter();
475+ l_text varchar2(4000);
476+ begin
477+ -- produce
478+ ut3_develop.ut_runner.run(
479+ a_paths => ut3_develop.ut_varchar2_list(':realtime_reporting_bufix'),
480+ a_reporters => ut3_develop.ut_reporters(l_reporter)
481+ );
482+ -- consume
483+ select text
484+ into l_text
485+ from table(l_reporter.get_lines())
486+ where item_type = 'post-test';
487+ return l_text;
488+ end produce_and_consume;
489+ begin
490+ l_text := produce_and_consume();
491+ ut.expect(l_text).to_be_not_null();
492+ -- this fails, if l_text is not a valid XML
493+ l_xml := xmltype(l_text);
494+ ut.expect(l_xml is not null).to_be_true();
495+ end;
451496
452497 procedure remove_test_suites is
453498 pragma autonomous_transaction;
@@ -456,6 +501,7 @@ create or replace package body test_realtime_reporter as
456501 execute immediate 'drop package check_realtime_reporting2';
457502 execute immediate 'drop package check_realtime_reporting3';
458503 execute immediate 'drop package check_realtime_reporting4';
504+ execute immediate 'drop package check_realtime_reporting5';
459505 end remove_test_suites;
460506
461507end test_realtime_reporter;
0 commit comments