Skip to content

Commit 23da3d7

Browse files
committed
Added support for random order of test execution.
Resolves #422
1 parent 7fc2133 commit 23da3d7

File tree

14 files changed

+322
-97
lines changed

14 files changed

+322
-97
lines changed

development/cleanup.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ git rev-parse && cd "$(git rev-parse --show-cdup)"
77

88
"${SQLCLI}" sys/${ORACLE_PWD}@//${CONNECTION_STR} AS SYSDBA <<-SQL
99
set echo on
10+
set serveroutput on
1011
begin
1112
for x in (
1213
select * from dba_objects
@@ -25,12 +26,12 @@ drop user ${UT3_USER} cascade;
2526
2627
begin
2728
for i in (
28-
select decode(owner,'PUBLIC','drop public synonym "','drop synonym "'||owner||'"."')|| synonym_name ||'"' drop_orphaned_synonym from dba_synonyms a
29+
select decode(owner,'PUBLIC','drop public synonym "','drop synonym "'||owner||'"."')|| synonym_name ||'"' drop_orphaned_synonym, owner||'.'||synonym_name syn from dba_synonyms a
2930
where not exists (select 1 from dba_objects b where (a.table_name=b.object_name and a.table_owner=b.owner or b.owner='SYS' and a.table_owner=b.object_name) )
3031
and a.table_owner not in ('SYS','SYSTEM')
3132
) loop
32-
dbms_output.put_line(i.drop_orphaned_synonym);
3333
execute immediate i.drop_orphaned_synonym;
34+
dbms_output.put_line('synonym '||i.syn||' dropped');
3435
end loop;
3536
end;
3637
/

source/api/ut.pkb

Lines changed: 91 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,14 @@ create or replace package body ut is
113113
a_paths ut_varchar2_list,
114114
a_reporter in out nocopy ut_reporter_base,
115115
a_color_console integer,
116-
a_coverage_schemes ut_varchar2_list := null,
116+
a_coverage_schemes ut_varchar2_list,
117117
a_source_file_mappings ut_file_mappings,
118118
a_test_file_mappings ut_file_mappings,
119119
a_include_objects ut_varchar2_list,
120120
a_exclude_objects ut_varchar2_list,
121-
a_client_character_set varchar2 := null
121+
a_client_character_set varchar2,
122+
a_random_test_order integer,
123+
a_random_test_order_seed positive
122124
) is
123125
pragma autonomous_transaction;
124126
begin
@@ -133,7 +135,10 @@ create or replace package body ut is
133135
a_include_objects,
134136
a_exclude_objects,
135137
gc_fail_on_errors,
136-
a_client_character_set
138+
a_client_character_set,
139+
false,
140+
ut_utils.int_to_boolean(a_random_test_order),
141+
a_random_test_order_seed
137142
);
138143
rollback;
139144
end;
@@ -142,12 +147,14 @@ create or replace package body ut is
142147
a_paths ut_varchar2_list,
143148
a_reporter in out nocopy ut_reporter_base,
144149
a_color_console integer,
145-
a_coverage_schemes ut_varchar2_list := null,
150+
a_coverage_schemes ut_varchar2_list,
146151
a_source_files ut_varchar2_list,
147152
a_test_files ut_varchar2_list,
148153
a_include_objects ut_varchar2_list,
149154
a_exclude_objects ut_varchar2_list,
150-
a_client_character_set varchar2 := null
155+
a_client_character_set varchar2,
156+
a_random_test_order integer,
157+
a_random_test_order_seed positive
151158
) is
152159
pragma autonomous_transaction;
153160
begin
@@ -162,7 +169,10 @@ create or replace package body ut is
162169
a_include_objects,
163170
a_exclude_objects,
164171
gc_fail_on_errors,
165-
a_client_character_set
172+
a_client_character_set,
173+
false,
174+
ut_utils.int_to_boolean(a_random_test_order),
175+
a_random_test_order_seed
166176
);
167177
rollback;
168178
end;
@@ -200,7 +210,9 @@ create or replace package body ut is
200210
a_test_file_mappings ut_file_mappings := null,
201211
a_include_objects ut_varchar2_list := null,
202212
a_exclude_objects ut_varchar2_list := null,
203-
a_client_character_set varchar2 := null
213+
a_client_character_set varchar2 := null,
214+
a_random_test_order integer := 0,
215+
a_random_test_order_seed positive := null
204216
) return ut_varchar2_rows pipelined is
205217
l_reporter ut_reporter_base := a_reporter;
206218
l_results sys_refcursor;
@@ -214,7 +226,9 @@ create or replace package body ut is
214226
a_test_file_mappings,
215227
a_include_objects,
216228
a_exclude_objects,
217-
a_client_character_set
229+
a_client_character_set,
230+
a_random_test_order,
231+
a_random_test_order_seed
218232
);
219233
if l_reporter is of (ut_output_reporter_base) then
220234
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -233,7 +247,9 @@ create or replace package body ut is
233247
a_test_files ut_varchar2_list,
234248
a_include_objects ut_varchar2_list := null,
235249
a_exclude_objects ut_varchar2_list := null,
236-
a_client_character_set varchar2 := null
250+
a_client_character_set varchar2 := null,
251+
a_random_test_order integer := 0,
252+
a_random_test_order_seed positive := null
237253
) return ut_varchar2_rows pipelined is
238254
l_reporter ut_reporter_base := a_reporter;
239255
l_results sys_refcursor;
@@ -247,7 +263,9 @@ create or replace package body ut is
247263
a_test_files,
248264
a_include_objects,
249265
a_exclude_objects,
250-
a_client_character_set
266+
a_client_character_set,
267+
a_random_test_order,
268+
a_random_test_order_seed
251269
);
252270
if l_reporter is of (ut_output_reporter_base) then
253271
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -267,7 +285,9 @@ create or replace package body ut is
267285
a_test_file_mappings ut_file_mappings := null,
268286
a_include_objects ut_varchar2_list := null,
269287
a_exclude_objects ut_varchar2_list := null,
270-
a_client_character_set varchar2 := null
288+
a_client_character_set varchar2 := null,
289+
a_random_test_order integer := 0,
290+
a_random_test_order_seed positive := null
271291
) return ut_varchar2_rows pipelined is
272292
l_reporter ut_reporter_base := a_reporter;
273293
l_results sys_refcursor;
@@ -281,7 +301,9 @@ create or replace package body ut is
281301
a_test_file_mappings,
282302
a_include_objects,
283303
a_exclude_objects,
284-
a_client_character_set
304+
a_client_character_set,
305+
a_random_test_order,
306+
a_random_test_order_seed
285307
);
286308
if l_reporter is of (ut_output_reporter_base) then
287309
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -301,7 +323,9 @@ create or replace package body ut is
301323
a_test_files ut_varchar2_list,
302324
a_include_objects ut_varchar2_list := null,
303325
a_exclude_objects ut_varchar2_list := null,
304-
a_client_character_set varchar2 := null
326+
a_client_character_set varchar2 := null,
327+
a_random_test_order integer := 0,
328+
a_random_test_order_seed positive := null
305329
) return ut_varchar2_rows pipelined is
306330
l_reporter ut_reporter_base := a_reporter;
307331
l_results sys_refcursor;
@@ -315,7 +339,9 @@ create or replace package body ut is
315339
a_test_files,
316340
a_include_objects,
317341
a_exclude_objects,
318-
a_client_character_set
342+
a_client_character_set,
343+
a_random_test_order,
344+
a_random_test_order_seed
319345
);
320346
if l_reporter is of (ut_output_reporter_base) then
321347
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -335,7 +361,9 @@ create or replace package body ut is
335361
a_test_file_mappings ut_file_mappings := null,
336362
a_include_objects ut_varchar2_list := null,
337363
a_exclude_objects ut_varchar2_list := null,
338-
a_client_character_set varchar2 := null
364+
a_client_character_set varchar2 := null,
365+
a_random_test_order integer := 0,
366+
a_random_test_order_seed positive := null
339367
) return ut_varchar2_rows pipelined is
340368
l_reporter ut_reporter_base := a_reporter;
341369
l_results sys_refcursor;
@@ -349,7 +377,9 @@ create or replace package body ut is
349377
a_test_file_mappings,
350378
a_include_objects,
351379
a_exclude_objects,
352-
a_client_character_set
380+
a_client_character_set,
381+
a_random_test_order,
382+
a_random_test_order_seed
353383
);
354384
if l_reporter is of (ut_output_reporter_base) then
355385
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -369,7 +399,9 @@ create or replace package body ut is
369399
a_test_files ut_varchar2_list,
370400
a_include_objects ut_varchar2_list := null,
371401
a_exclude_objects ut_varchar2_list := null,
372-
a_client_character_set varchar2 := null
402+
a_client_character_set varchar2 := null,
403+
a_random_test_order integer := 0,
404+
a_random_test_order_seed positive := null
373405
) return ut_varchar2_rows pipelined is
374406
l_reporter ut_reporter_base := a_reporter;
375407
l_results sys_refcursor;
@@ -383,7 +415,9 @@ create or replace package body ut is
383415
a_test_files,
384416
a_include_objects,
385417
a_exclude_objects,
386-
a_client_character_set
418+
a_client_character_set,
419+
a_random_test_order,
420+
a_random_test_order_seed
387421
);
388422
if l_reporter is of (ut_output_reporter_base) then
389423
l_results := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -404,7 +438,9 @@ create or replace package body ut is
404438
a_include_objects ut_varchar2_list := null,
405439
a_exclude_objects ut_varchar2_list := null,
406440
a_client_character_set varchar2 := null,
407-
a_force_manual_rollback boolean := false
441+
a_force_manual_rollback boolean := false,
442+
a_random_test_order boolean := false,
443+
a_random_test_order_seed positive := null
408444
) is
409445
l_reporter ut_reporter_base := a_reporter;
410446
begin
@@ -421,7 +457,9 @@ create or replace package body ut is
421457
a_exclude_objects,
422458
gc_fail_on_errors,
423459
a_client_character_set,
424-
a_force_manual_rollback
460+
a_force_manual_rollback,
461+
a_random_test_order,
462+
a_random_test_order_seed
425463
);
426464
else
427465
run_autonomous(
@@ -433,7 +471,9 @@ create or replace package body ut is
433471
a_test_file_mappings,
434472
a_include_objects,
435473
a_exclude_objects,
436-
a_client_character_set
474+
a_client_character_set,
475+
ut_utils.boolean_to_int(a_random_test_order),
476+
a_random_test_order_seed
437477
);
438478
end if;
439479
if l_reporter is of (ut_output_reporter_base) then
@@ -452,7 +492,9 @@ create or replace package body ut is
452492
a_include_objects ut_varchar2_list := null,
453493
a_exclude_objects ut_varchar2_list := null,
454494
a_client_character_set varchar2 := null,
455-
a_force_manual_rollback boolean := false
495+
a_force_manual_rollback boolean := false,
496+
a_random_test_order boolean := false,
497+
a_random_test_order_seed positive := null
456498
) is
457499
l_reporter ut_reporter_base := a_reporter;
458500
begin
@@ -466,7 +508,9 @@ create or replace package body ut is
466508
a_include_objects,
467509
a_exclude_objects,
468510
a_client_character_set,
469-
a_force_manual_rollback
511+
a_force_manual_rollback,
512+
a_random_test_order,
513+
a_random_test_order_seed
470514
);
471515
end;
472516

@@ -479,7 +523,9 @@ create or replace package body ut is
479523
a_include_objects ut_varchar2_list := null,
480524
a_exclude_objects ut_varchar2_list := null,
481525
a_client_character_set varchar2 := null,
482-
a_force_manual_rollback boolean := false
526+
a_force_manual_rollback boolean := false,
527+
a_random_test_order boolean := false,
528+
a_random_test_order_seed positive := null
483529
) is
484530
begin
485531
ut.run(
@@ -492,7 +538,9 @@ create or replace package body ut is
492538
a_include_objects,
493539
a_exclude_objects,
494540
a_client_character_set,
495-
a_force_manual_rollback
541+
a_force_manual_rollback,
542+
a_random_test_order,
543+
a_random_test_order_seed
496544
);
497545
end;
498546

@@ -505,7 +553,9 @@ create or replace package body ut is
505553
a_include_objects ut_varchar2_list := null,
506554
a_exclude_objects ut_varchar2_list := null,
507555
a_client_character_set varchar2 := null,
508-
a_force_manual_rollback boolean := false
556+
a_force_manual_rollback boolean := false,
557+
a_random_test_order boolean := false,
558+
a_random_test_order_seed positive := null
509559
) is
510560
begin
511561
ut.run(
@@ -518,7 +568,9 @@ create or replace package body ut is
518568
a_include_objects,
519569
a_exclude_objects,
520570
a_client_character_set,
521-
a_force_manual_rollback
571+
a_force_manual_rollback,
572+
a_random_test_order,
573+
a_random_test_order_seed
522574
);
523575
end;
524576

@@ -532,7 +584,9 @@ create or replace package body ut is
532584
a_include_objects ut_varchar2_list := null,
533585
a_exclude_objects ut_varchar2_list := null,
534586
a_client_character_set varchar2 := null,
535-
a_force_manual_rollback boolean := false
587+
a_force_manual_rollback boolean := false,
588+
a_random_test_order boolean := false,
589+
a_random_test_order_seed positive := null
536590
) is
537591
begin
538592
ut.run(
@@ -545,7 +599,9 @@ create or replace package body ut is
545599
a_include_objects,
546600
a_exclude_objects,
547601
a_client_character_set,
548-
a_force_manual_rollback
602+
a_force_manual_rollback,
603+
a_random_test_order,
604+
a_random_test_order_seed
549605
);
550606
end;
551607

@@ -559,7 +615,9 @@ create or replace package body ut is
559615
a_include_objects ut_varchar2_list := null,
560616
a_exclude_objects ut_varchar2_list := null,
561617
a_client_character_set varchar2 := null,
562-
a_force_manual_rollback boolean := false
618+
a_force_manual_rollback boolean := false,
619+
a_random_test_order boolean := false,
620+
a_random_test_order_seed positive := null
563621
) is
564622
begin
565623
ut.run(
@@ -572,7 +630,9 @@ create or replace package body ut is
572630
a_include_objects,
573631
a_exclude_objects,
574632
a_client_character_set,
575-
a_force_manual_rollback
633+
a_force_manual_rollback,
634+
a_random_test_order,
635+
a_random_test_order_seed
576636
);
577637
end;
578638

0 commit comments

Comments
 (0)