Skip to content

Commit 72c4fa7

Browse files
committed
fixed bug when both suites are executed if they only differ by with a suffix
1 parent cdd22c0 commit 72c4fa7

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed

source/core/ut_suite_manager.pkb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,8 @@ create or replace package body ut_suite_manager is
424424
end clean_paths;
425425

426426
procedure skip_by_path(a_suite in out nocopy ut_suite_item, a_path varchar2) is
427-
c_root constant varchar2(32767) := replace(regexp_substr(a_path, '[A-Za-z0-9$#_]+'), '$', '\$');
427+
--c_root constant varchar2(32767) := replace(regexp_substr(a_path, '[A-Za-z0-9$#_]+'), '$', '\$');
428+
c_root constant varchar2(32767) := upper(regexp_substr(a_path, '[A-Za-z0-9$#_]+'));
428429
c_rest_path constant varchar2(32767) := regexp_substr(a_path, '\.(.+)', subexpression => 1);
429430
l_suite ut_logical_suite;
430431
l_item ut_suite_item;
@@ -441,7 +442,7 @@ create or replace package body ut_suite_manager is
441442

442443
l_item_name := l_item.name;
443444
--l_item_name := regexp_substr(l_item_name,'[A-Za-z0-9$#_]+$'); -- temporary fix. seems like suite have suitepath in object_name
444-
if regexp_like(l_item_name, c_root, modifier => 'i') then
445+
if upper(l_item_name) = c_root then
445446

446447
skip_by_path(l_item, c_rest_path);
447448
l_items.extend;

test/ut_suite_manager/test_suite_manager.pkb

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,5 +1208,61 @@ end test_package_3;]';
12081208
execute immediate 'drop package test_package_3';
12091209
end;
12101210

1211+
procedure test_pck_with_same_path is
1212+
l_objects_to_run ut3.ut_suite_items;
1213+
l_suite1 ut3.ut_logical_suite;
1214+
l_suite2 ut3.ut_logical_suite;
1215+
l_suite3 ut3.ut_suite;
1216+
begin
1217+
l_objects_to_run := ut3.ut_suite_manager.configure_execution_by_path(ut3.ut_varchar2_list(':test1.test2$.test_package_same_1'));
1218+
1219+
--Assert
1220+
ut.expect(l_objects_to_run.count).to_equal(1);
1221+
1222+
l_suite1 := treat(l_objects_to_run(1) as ut3.ut_logical_suite);
1223+
ut.expect(l_suite1.name).to_equal('test1');
1224+
ut.expect(l_suite1.items.count).to_equal(1);
1225+
1226+
l_suite2 := treat(l_suite1.items(1) as ut3.ut_logical_suite);
1227+
ut.expect(l_suite2.name).to_equal('test2$');
1228+
ut.expect(l_suite2.items.count).to_equal(1);
1229+
1230+
l_suite3 := treat(l_suite2.items(1) as ut3.ut_suite);
1231+
ut.expect(l_suite3.name).to_equal('test_package_same_1');
1232+
end;
1233+
1234+
procedure setup_pck_with_same_path is
1235+
pragma autonomous_transaction;
1236+
begin
1237+
execute immediate 'create or replace package test_package_same_1 as
1238+
--%suite
1239+
--%suitepath(test1.test2$)
1240+
1241+
--%test
1242+
procedure test1;
1243+
end;';
1244+
execute immediate 'create or replace package body test_package_same_1 as
1245+
procedure test1 is begin null; end;
1246+
end;';
1247+
execute immediate 'create or replace package test_package_same_1_a as
1248+
--%suite
1249+
--%suitepath(test1.test2$)
1250+
1251+
--%test
1252+
procedure test1;
1253+
end;';
1254+
execute immediate 'create or replace package body test_package_same_1_a as
1255+
procedure test1 is begin null; end;
1256+
end;';
1257+
end;
1258+
1259+
procedure clean_pck_with_same_path is
1260+
pragma autonomous_transaction;
1261+
begin
1262+
execute immediate 'drop package test_package_same_1';
1263+
execute immediate 'drop package test_package_same_1_a';
1264+
null;
1265+
end;
1266+
12111267
end test_suite_manager;
12121268
/

test/ut_suite_manager/test_suite_manager.pks

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,13 @@ create or replace package test_suite_manager is
132132
--%test
133133
--%disabled
134134
--procedure IncludesPackagesWithSutePath;
135+
136+
--%test
137+
--%beforetest(setup_pck_with_same_path)
138+
--%aftertest(clean_pck_with_same_path)
139+
procedure test_pck_with_same_path;
140+
procedure setup_pck_with_same_path;
141+
procedure clean_pck_with_same_path;
135142

136143
end test_suite_manager;
137144
/

0 commit comments

Comments
 (0)