@@ -351,18 +351,34 @@ create or replace package body ut_suite_manager is
351351 l_schema_ut_packages ut_object_names := ut_object_names();
352352 l_schema_suites tt_schema_suites;
353353 l_iter varchar2(4000);
354+ procedure populate_suite_ut_packages(a_suite ut_logical_suite, a_packages in out nocopy ut_object_names) is
355+ l_sub_suite ut_logical_suite;
356+ begin
357+ if a_packages is null then
358+ a_packages := ut_object_names();
359+ end if;
360+ if a_suite is of (ut_suite) then
361+ a_packages.extend;
362+ a_packages(a_packages.last) := ut_object_name(a_suite.object_owner, a_suite.object_name);
363+ end if;
364+ for i in 1 .. a_suite.items.count loop
365+ if a_suite.items(i) is of (ut_logical_suite) then
366+ l_sub_suite := treat(a_suite.items(i) as ut_logical_suite);
367+ populate_suite_ut_packages(l_sub_suite, a_packages);
368+ end if;
369+ end loop;
370+ end;
354371 begin
355372 if a_schema_names is not null then
356373 for i in 1 .. a_schema_names.count loop
357374 l_schema_suites := get_schema_suites(a_schema_names(i));
358375 l_iter := l_schema_suites.first;
359376 while l_iter is not null loop
360- l_schema_ut_packages.extend;
361- l_schema_ut_packages(l_schema_ut_packages.last) := ut_object_name(l_schema_suites(l_iter).object_owner, l_schema_suites(l_iter).object_name);
377+ populate_suite_ut_packages(l_schema_suites(l_iter), l_schema_ut_packages);
362378 l_iter := l_schema_suites.next(l_iter);
363379 end loop;
364380 end loop;
365- -- l_schema_ut_packages := set(l_schema_ut_packages);
381+ l_schema_ut_packages := set(l_schema_ut_packages);
366382 end if;
367383
368384 return l_schema_ut_packages;
0 commit comments