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

Skip to content

Commit 0e0d2dc

Browse files
author
Pavel Kaplya
committed
Merge branch 'develop' into feature/cleanup_code_and_tests_a_bit
# Conflicts: # source/api/ut_runner.pkb # test/api/test_ut_run.pks
2 parents 60c0097 + e84ce73 commit 0e0d2dc

8 files changed

Lines changed: 233 additions & 10 deletions

File tree

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ addons:
55
apt:
66
packages:
77
- unzip
8-
# Java8 Required for Sonar and SQLCL
9-
- oracle-java8-installer
10-
- oracle-java8-set-default
8+
# Java9 Required for Sonar and SQLCL
9+
- oracle-java9-installer
10+
- oracle-java9-set-default
1111
sonarcloud:
1212
organization: utplsql
1313
token:

.travis/run_sonar_scanner.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ else
3030
fi
3131

3232

33-
#Are we running on develop branch ?
33+
#Are we running on utPLSQL repo and not an external PR?
3434
echo "Check if we running from develop or on branch"
3535
if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [[ ! "${BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|"${MAIN_DEV_BRANCH}")$ ]]; then
3636

@@ -39,12 +39,14 @@ if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [[ ! "${BRANCH}" =~ ^(releas
3939
echo "Updating sonar properties to include branch ${BRANCH}"
4040
add_sonar_property "${BRANCH_SONAR_PROPERTY}" "${BRANCH}"
4141
add_sonar_property "${BRANCH_SONAR_TARGET_PROPERTY}" "${MAIN_DEV_BRANCH}"
42-
else
42+
elif [ "${TRAVIS_PULL_REQUEST_SLUG}" = "${TRAVIS_REPO_SLUG}" ]; then
4343
echo "Updating sonar properties to include pull request ${BRANCH}"
4444
add_sonar_property "${PR_SONAR_TOKEN_PROPERTY}" "${GITHUB_TRAVISCI_TOKEN}"
4545
add_sonar_property "${PR_SONAR_BRANCH_PROPERTY}" "${BRANCH}"
4646
add_sonar_property "${PR_KEY_PROPERTY}" "${PR}"
4747
add_sonar_property "${PR_SONAR_BASE_PROPERTY}" "${PR_BRANCH}"
48+
else
49+
echo "PR from external source no changes to properties."
4850
fi
4951
else
5052
echo "No need to update sonar we building on release or develop"

docs/userguide/running-unit-tests.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,26 @@ end;
9393
```
9494
Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_.
9595

96+
```sql
97+
begin
98+
ut.run(ut_varchar2_list('hr.test_apply_bonus,cust)');
99+
end;
100+
```
101+
102+
Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_.
103+
104+
```sql
105+
begin
106+
ut.run('hr.test_apply_bonus,cust');
107+
end;
108+
```
109+
110+
Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_.
111+
96112
Using a list of items to execute allows you to execute a fine-grained set of tests.
97113

114+
List can be passed as a comma separated list or a list of *ut_varchar2_list objects* or as a list within ut_varchar2_list.
115+
98116

99117
**Note:**
100118

source/api/ut_runner.pkb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,17 @@ create or replace package body ut_runner is
8989
l_coverage_schema_names ut_varchar2_rows;
9090
l_exclude_object_names ut_object_names := ut_object_names();
9191
l_include_object_names ut_object_names;
92-
l_paths ut_varchar2_list;
92+
l_paths ut_varchar2_list := ut_varchar2_list();
9393
begin
9494
ut_event_manager.initialize();
9595
if a_paths is null or a_paths is empty or a_paths.count = 1 and a_paths(1) is null then
9696
l_paths := ut_varchar2_list(sys_context('userenv', 'current_schema'));
9797
else
98-
l_paths := a_paths;
98+
for i in 1..a_paths.COUNT loop
99+
l_paths := l_paths multiset union ut_utils.string_to_table(a_string => a_paths(i),a_delimiter => ',');
100+
end loop;
99101
end if;
102+
100103
begin
101104
ut_expectation_processor.reset_invalidation_exception();
102105
ut_utils.save_dbms_output_to_cache();

source/core/ut_utils.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ create or replace package ut_utils authid definer is
2121
*
2222
*/
2323

24-
gc_version constant varchar2(50) := 'v3.1.2.2101-develop';
24+
gc_version constant varchar2(50) := 'v3.1.2.2122-develop';
2525

2626
/* Constants: Event names */
2727
subtype t_event_name is varchar2(30);

test/api/test_ut_run.pkb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ Failures:%
718718
begin
719719
execute immediate 'drop package invalid_pckag_that_revalidates';
720720
execute immediate 'drop package parent_specs';
721-
end;
722-
721+
end;
722+
723723
end;
724724
/

test/api/test_ut_runner.pkb

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,5 +361,175 @@ end;';
361361
ut.expect(dbms_utility.format_error_stack||dbms_utility.format_error_backtrace).not_to_be_like('%ORA-02055%');
362362
end;
363363

364+
procedure create_test_csl_packages is
365+
pragma autonomous_transaction;
366+
begin
367+
execute immediate q'[
368+
create or replace package test_csl_names1 as
369+
--%suite
370+
--%suitepath(test_csl_names)
371+
372+
--%test
373+
procedure one_is_one;
374+
375+
--%test
376+
procedure two_is_two;
377+
378+
end;
379+
]';
380+
381+
execute immediate q'{
382+
create or replace package body test_csl_names1 as
383+
384+
procedure one_is_one is
385+
begin
386+
ut3.ut.expect(1).to_equal(1);
387+
end;
388+
389+
procedure two_is_two is
390+
begin
391+
ut3.ut.expect(2).to_equal(2);
392+
end;
393+
394+
end;
395+
}';
396+
397+
execute immediate q'[
398+
create or replace package test_csl_names2 as
399+
--%suite
400+
--%suitepath(test_csl_names)
401+
402+
--%test
403+
procedure one_is_one;
404+
405+
--%test
406+
procedure two_is_two;
407+
408+
end;
409+
]';
410+
411+
execute immediate q'{
412+
create or replace package body test_csl_names2 as
413+
414+
procedure one_is_one is
415+
begin
416+
ut3.ut.expect(1).to_equal(1);
417+
end;
418+
419+
procedure two_is_two is
420+
begin
421+
ut3.ut.expect(2).to_equal(2);
422+
end;
423+
424+
end;
425+
}';
426+
427+
end;
428+
429+
procedure drop_test_csl_packages is
430+
pragma autonomous_transaction;
431+
begin
432+
execute immediate 'drop package test_csl_names1';
433+
execute immediate 'drop package test_csl_names2';
434+
end;
435+
436+
procedure pass_varchar2_name_list is
437+
l_results ut3.ut_varchar2_list;
438+
l_actual clob;
439+
begin
440+
select *
441+
bulk collect into l_results
442+
from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2')));
443+
444+
l_actual := ut3.ut_utils.table_to_clob(l_results);
445+
ut.expect(l_actual).to_be_like('%Finished in % seconds
446+
%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
447+
end;
448+
449+
procedure pass_varchar2_name is
450+
l_results ut3.ut_varchar2_list;
451+
l_actual clob;
452+
begin
453+
select *
454+
bulk collect into l_results
455+
from table(ut3.ut.run('test_csl_names1'));
456+
457+
l_actual := ut3.ut_utils.table_to_clob(l_results);
458+
ut.expect(l_actual).to_be_like('%Finished in % seconds
459+
%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
460+
end;
461+
462+
procedure pass_varchar2_suite_csl is
463+
l_results ut3.ut_varchar2_list;
464+
l_actual clob;
465+
begin
466+
select *
467+
bulk collect into l_results
468+
from table(ut3.ut.run('test_csl_names1,test_csl_names2'));
469+
470+
l_actual := ut3.ut_utils.table_to_clob(l_results);
471+
ut.expect(l_actual).to_be_like('%Finished in % seconds
472+
%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
473+
end;
474+
475+
procedure pass_varchar2_test_csl is
476+
l_results ut3.ut_varchar2_list;
477+
l_actual clob;
478+
begin
479+
select *
480+
bulk collect into l_results
481+
from table(ut3.ut.run('test_csl_names1.one_is_one,test_csl_names2.one_is_one'));
482+
483+
l_actual := ut3.ut_utils.table_to_clob(l_results);
484+
ut.expect(l_actual).to_be_like('%Finished in % seconds
485+
%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
486+
end;
487+
488+
procedure pass_varch_test_csl_spc is
489+
l_results ut3.ut_varchar2_list;
490+
l_actual clob;
491+
begin
492+
select *
493+
bulk collect into l_results
494+
from table(ut3.ut.run('test_csl_names1.one_is_one, test_csl_names2.one_is_one'));
495+
496+
l_actual := ut3.ut_utils.table_to_clob(l_results);
497+
ut.expect(l_actual).to_be_like('%Finished in % seconds
498+
%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
499+
end;
500+
501+
procedure pass_csl_with_srcfile is
502+
l_results ut3.ut_varchar2_list;
503+
l_actual clob;
504+
begin
505+
506+
select *
507+
bulk collect into l_results
508+
from table(
509+
ut3.ut.run(
510+
a_path => 'test_csl_names1.one_is_one,test_csl_names2.one_is_one',
511+
a_source_files => ut3.ut_varchar2_list('ut3.ut'),
512+
a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2')
513+
)
514+
);
515+
516+
l_actual := ut3.ut_utils.table_to_clob(l_results);
517+
ut.expect(l_actual).to_be_like('%Finished in % seconds
518+
%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
519+
end;
520+
521+
procedure pass_csl_within_var2list is
522+
l_results ut3.ut_varchar2_list;
523+
l_actual clob;
524+
begin
525+
select *
526+
bulk collect into l_results
527+
from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1.one_is_one,test_csl_names2.one_is_one')));
528+
529+
l_actual := ut3.ut_utils.table_to_clob(l_results);
530+
ut.expect(l_actual).to_be_like('%Finished in % seconds
531+
%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%');
532+
end;
533+
364534
end;
365535
/

test/api/test_ut_runner.pks

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,35 @@ create or replace package test_ut_runner is
6161
--%aftertest(db_link_cleanup)
6262
procedure raises_20213_on_fail_link;
6363

64+
procedure create_test_csl_packages;
65+
procedure drop_test_csl_packages;
66+
67+
--%context(ut_run_coma_sep_list)
68+
--%beforeall(create_test_csl_packages)
69+
--%afterall(drop_test_csl_packages)
70+
71+
--%test( Pass name of tests as varchar2_list )
72+
procedure pass_varchar2_name_list;
73+
74+
--%test( Pass single test name as varchar2 )
75+
procedure pass_varchar2_name;
76+
77+
--%test( Pass coma separated list of suite names )
78+
procedure pass_varchar2_suite_csl;
79+
80+
--%test( Pass coma separated list of test names )
81+
procedure pass_varchar2_test_csl;
82+
83+
--%test( Pass coma separated list of test names with spaces )
84+
procedure pass_varch_test_csl_spc;
85+
86+
--%test( Pass coma separated list and source and test files )
87+
procedure pass_csl_with_srcfile;
88+
89+
--%test( Pass coma separated list in varchar2list )
90+
procedure pass_csl_within_var2list;
91+
92+
--%endcontext
93+
6494
end;
6595
/

0 commit comments

Comments
 (0)