From efb2e1151bcfe42e4863ebbfef812a422d8c5439 Mon Sep 17 00:00:00 2001 From: lwasylow Date: Thu, 12 Jul 2018 13:54:40 +0100 Subject: [PATCH 1/3] Initial checkin --- source/api/ut.pkb | 8 +-- test/api/test_ut_run.pkb | 124 +++++++++++++++++++++++++++++++++++++++ test/api/test_ut_run.pks | 23 ++++++++ 3 files changed, 151 insertions(+), 4 deletions(-) diff --git a/source/api/ut.pkb b/source/api/ut.pkb index 94ff1e2b5..27982d513 100644 --- a/source/api/ut.pkb +++ b/source/api/ut.pkb @@ -332,7 +332,7 @@ create or replace package body ut is ) return ut_varchar2_rows pipelined is l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter()); - l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); l_lines sys_refcursor; l_line varchar2(4000); begin @@ -372,7 +372,7 @@ create or replace package body ut is a_client_character_set varchar2 := null ) return ut_varchar2_rows pipelined is l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter()); - l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); l_lines sys_refcursor; l_line varchar2(4000); begin @@ -519,7 +519,7 @@ create or replace package body ut is a_exclude_objects ut_varchar2_list := null, a_client_character_set varchar2 := null ) is - l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); begin ut.run( l_paths, @@ -545,7 +545,7 @@ create or replace package body ut is a_exclude_objects ut_varchar2_list := null, a_client_character_set varchar2 := null ) is - l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); begin ut.run( l_paths, diff --git a/test/api/test_ut_run.pkb b/test/api/test_ut_run.pkb index cee41c085..b3b876c80 100644 --- a/test/api/test_ut_run.pkb +++ b/test/api/test_ut_run.pkb @@ -202,6 +202,130 @@ end;]'; begin execute immediate 'drop package invalid_pckag_that_revalidates'; execute immediate 'drop package parent_specs'; + end; + + procedure create_test_csl_packages is + pragma autonomous_transaction; + begin + execute immediate q'[ + create or replace package test_csl_names1 as + --%suite + --%suitepath(test_csl_names) + + --%test + procedure one_is_one; + + --%test + procedure two_is_two; + + end; + ]'; + + execute immediate q'{ + create or replace package body test_csl_names1 as + + procedure one_is_one is + begin + ut3.ut.expect(1).to_equal(1); + end; + + procedure two_is_two is + begin + ut3.ut.expect(2).to_equal(2); + end; + + end; + }'; + + execute immediate q'[ + create or replace package test_csl_names2 as + --%suite + --%suitepath(test_csl_names) + + --%test + procedure one_is_one; + + --%test + procedure two_is_two; + + end; + ]'; + + execute immediate q'{ + create or replace package body test_csl_names2 as + + procedure one_is_one is + begin + ut3.ut.expect(1).to_equal(1); + end; + + procedure two_is_two is + begin + ut3.ut.expect(2).to_equal(2); + end; + + end; + }'; + + end; + + procedure drop_test_csl_packages is + pragma autonomous_transaction; + begin + execute immediate 'drop package test_csl_names1'; + execute immediate 'drop package test_csl_names2'; + end; + + procedure pass_varchar2_name_list is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2'))); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_name is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_suite_csl is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1,test_csl_names2')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_test_csl is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1.one_is_one,test_csl_names2.one_is_one')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); end; end; diff --git a/test/api/test_ut_run.pks b/test/api/test_ut_run.pks index 12c9e7fe0..aeb1ab0e4 100644 --- a/test/api/test_ut_run.pks +++ b/test/api/test_ut_run.pks @@ -22,6 +22,29 @@ create or replace package test_ut_run is procedure run_and_revalidate_specs; procedure generate_invalid_spec; procedure drop_test_package; + + procedure create_test_csl_packages; + procedure drop_test_csl_packages; + + --%test( Pass name of tests as varchar2_list ) + --%beforetest(create_test_csl_packages) + --%aftertest(drop_test_csl_packages) + procedure pass_varchar2_name_list; + + --%test( Pass single test name as varchar2 ) + --%beforetest(create_test_csl_packages) + --%aftertest(drop_test_csl_packages) + procedure pass_varchar2_name; + + --%test( Pass coma separated list of suite names ) + --%beforetest(create_test_csl_packages) + --%aftertest(drop_test_csl_packages) + procedure pass_varchar2_suite_csl; + + --%test( Pass coma separated list of test names ) + --%beforetest(create_test_csl_packages) + --%aftertest(drop_test_csl_packages) + procedure pass_varchar2_test_csl; end; / From 08af76bb5452abeec0ce0666ef112c033aec00ac Mon Sep 17 00:00:00 2001 From: lwasylow Date: Sun, 15 Jul 2018 09:21:50 +0100 Subject: [PATCH 2/3] update test and docs --- docs/userguide/running-unit-tests.md | 10 +++ test/api/test_ut_run.pkb | 106 +++++++++++++++++++++++++++ test/api/test_ut_run.pks | 32 ++++++-- 3 files changed, 140 insertions(+), 8 deletions(-) diff --git a/docs/userguide/running-unit-tests.md b/docs/userguide/running-unit-tests.md index f31c24912..eda27cedf 100644 --- a/docs/userguide/running-unit-tests.md +++ b/docs/userguide/running-unit-tests.md @@ -93,8 +93,18 @@ end; ``` Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_. +```sql +begin + ut.run('hr.test_apply_bonus,cust'); +end; +``` + +Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_. + Using a list of items to execute allows you to execute a fine-grained set of tests. +List can be passed as a comma separated list or a list of *ut_varchar2_list objects*. + **Note:** diff --git a/test/api/test_ut_run.pkb b/test/api/test_ut_run.pkb index b3b876c80..2333c6e18 100644 --- a/test/api/test_ut_run.pkb +++ b/test/api/test_ut_run.pkb @@ -328,5 +328,111 @@ end;]'; %2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); end; + procedure pass_varch_test_csl_spc is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1.one_is_one, test_csl_names2.one_is_one')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_csl_with_srcfile is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + + select * + bulk collect into l_results + from table( + ut3.ut.run( + a_path => 'test_csl_names1.one_is_one,test_csl_names2.one_is_one', + a_source_files => ut3.ut_varchar2_list('ut3.ut'), + a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2') + ) + ); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_singlevar_with_proc is + l_output_data dbms_output.chararr; + l_num_lines integer := 100000; + l_packages_executed integer := 0; + begin + --act + ut3.ut.run('test_csl_names1'); + dbms_output.get_lines( l_output_data, l_num_lines); + + for i in 1 .. l_num_lines loop + if l_output_data(i) like '%test_csl_names1%' then + l_packages_executed := l_packages_executed + 1; + end if; + end loop; + ut.expect(l_packages_executed ).to_equal(1); + end; + + procedure pass_vlist_with_proc is + l_output_data dbms_output.chararr; + l_num_lines integer := 100000; + l_packages_executed integer := 0; + begin + --act + ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2')); + dbms_output.get_lines( l_output_data, l_num_lines); + + for i in 1 .. l_num_lines loop + if l_output_data(i) like '%test_csl_names1%' + or l_output_data(i) like '%test_csl_names2%' then + l_packages_executed := l_packages_executed + 1; + end if; + end loop; + ut.expect(l_packages_executed ).to_equal(2); + end; + + procedure pass_csl_with_proc is + l_output_data dbms_output.chararr; + l_num_lines integer := 100000; + l_packages_executed integer := 0; + begin + --act + ut3.ut.run('test_csl_names1,test_csl_names2'); + dbms_output.get_lines( l_output_data, l_num_lines); + + for i in 1 .. l_num_lines loop + if l_output_data(i) like '%test_csl_names1%' + or l_output_data(i) like '%test_csl_names2%' then + l_packages_executed := l_packages_executed + 1; + end if; + end loop; + ut.expect(l_packages_executed ).to_equal(2); + end; + + procedure pass_csl_src_proc is + l_output_data dbms_output.chararr; + l_num_lines integer := 100000; + l_packages_executed integer := 0; + begin + --act + ut3.ut.run(a_path => 'test_csl_names1,test_csl_names2', + a_source_files => ut3.ut_varchar2_list('ut3.ut'), + a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2')); + dbms_output.get_lines( l_output_data, l_num_lines); + + for i in 1 .. l_num_lines loop + if l_output_data(i) like '%test_csl_names1%' + or l_output_data(i) like '%test_csl_names2%' then + l_packages_executed := l_packages_executed + 1; + end if; + end loop; + ut.expect(l_packages_executed ).to_equal(2); + end; + end; / diff --git a/test/api/test_ut_run.pks b/test/api/test_ut_run.pks index aeb1ab0e4..4e2a9b261 100644 --- a/test/api/test_ut_run.pks +++ b/test/api/test_ut_run.pks @@ -26,25 +26,41 @@ create or replace package test_ut_run is procedure create_test_csl_packages; procedure drop_test_csl_packages; + --%context(ut_run_coma_sep_list) + --%beforeall(create_test_csl_packages) + --%afterall(drop_test_csl_packages) + --%test( Pass name of tests as varchar2_list ) - --%beforetest(create_test_csl_packages) - --%aftertest(drop_test_csl_packages) procedure pass_varchar2_name_list; --%test( Pass single test name as varchar2 ) - --%beforetest(create_test_csl_packages) - --%aftertest(drop_test_csl_packages) procedure pass_varchar2_name; --%test( Pass coma separated list of suite names ) - --%beforetest(create_test_csl_packages) - --%aftertest(drop_test_csl_packages) procedure pass_varchar2_suite_csl; --%test( Pass coma separated list of test names ) - --%beforetest(create_test_csl_packages) - --%aftertest(drop_test_csl_packages) procedure pass_varchar2_test_csl; + + --%test( Pass coma separated list of test names with spaces ) + procedure pass_varch_test_csl_spc; + + --%test( Pass coma separated list and source and test files ) + procedure pass_csl_with_srcfile; + + --%test( Pass single varchar2 into procedure ) + procedure pass_singlevar_with_proc; + + --%test( Pass varchar2_list into procedure ) + procedure pass_vlist_with_proc; + + --%test( Pass coma separated list varchar2 into procedure ) + procedure pass_csl_with_proc; + + --%test( Pass coma separated list varchar2 into procedure with src file) + procedure pass_csl_src_proc; + + --%endcontext end; / From 49ae4275a2b9b25f2c4211ded92ed3caf407d641 Mon Sep 17 00:00:00 2001 From: lwasylow Date: Tue, 17 Jul 2018 23:08:36 +0100 Subject: [PATCH 3/3] Updates to code, move the Coma separated list into ut_runner. --- docs/userguide/running-unit-tests.md | 10 +- source/api/ut.pkb | 8 +- source/api/ut_runner.pkb | 11 +- test/api/test_ut_run.pkb | 230 --------------------------- test/api/test_ut_run.pks | 41 +---- test/api/test_ut_runner.pkb | 170 ++++++++++++++++++++ test/api/test_ut_runner.pks | 30 ++++ 7 files changed, 222 insertions(+), 278 deletions(-) diff --git a/docs/userguide/running-unit-tests.md b/docs/userguide/running-unit-tests.md index eda27cedf..54116cf65 100644 --- a/docs/userguide/running-unit-tests.md +++ b/docs/userguide/running-unit-tests.md @@ -93,6 +93,14 @@ end; ``` Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_. +```sql +begin + ut.run(ut_varchar2_list('hr.test_apply_bonus,cust)'); +end; +``` + +Executes all tests from package _hr.test_apply_bonus_ and all tests from schema _cust_. + ```sql begin ut.run('hr.test_apply_bonus,cust'); @@ -103,7 +111,7 @@ Executes all tests from package _hr.test_apply_bonus_ and all tests from schema Using a list of items to execute allows you to execute a fine-grained set of tests. -List can be passed as a comma separated list or a list of *ut_varchar2_list objects*. +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. **Note:** diff --git a/source/api/ut.pkb b/source/api/ut.pkb index 2b53bdd78..1159182fa 100644 --- a/source/api/ut.pkb +++ b/source/api/ut.pkb @@ -333,7 +333,7 @@ create or replace package body ut is ) return ut_varchar2_rows pipelined is l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter()); - l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); l_lines sys_refcursor; l_line varchar2(4000); begin @@ -373,7 +373,7 @@ create or replace package body ut is a_client_character_set varchar2 := null ) return ut_varchar2_rows pipelined is l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter()); - l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); l_lines sys_refcursor; l_line varchar2(4000); begin @@ -520,7 +520,7 @@ create or replace package body ut is a_exclude_objects ut_varchar2_list := null, a_client_character_set varchar2 := null ) is - l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); begin ut.run( l_paths, @@ -546,7 +546,7 @@ create or replace package body ut is a_exclude_objects ut_varchar2_list := null, a_client_character_set varchar2 := null ) is - l_paths ut_varchar2_list := coalesce(ut_utils.string_to_table(a_string => a_path,a_delimiter => ','),ut_varchar2_list(sys_context('userenv', 'current_schema'))); + l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))); begin ut.run( l_paths, diff --git a/source/api/ut_runner.pkb b/source/api/ut_runner.pkb index eb3bc8e68..ca0d6dccf 100644 --- a/source/api/ut_runner.pkb +++ b/source/api/ut_runner.pkb @@ -89,12 +89,17 @@ create or replace package body ut_runner is l_coverage_schema_names ut_varchar2_rows; l_exclude_object_names ut_object_names := ut_object_names(); l_include_object_names ut_object_names; + l_paths ut_varchar2_list := ut_varchar2_list(); begin ut_event_manager.initialize(); begin ut_expectation_processor.reset_invalidation_exception(); ut_utils.save_dbms_output_to_cache(); + for i in 1..a_paths.COUNT loop + l_paths := l_paths multiset union ut_utils.string_to_table(a_string => a_paths(i),a_delimiter => ','); + end loop; + ut_console_reporter_base.set_color_enabled(a_color_console); if a_reporters is null or a_reporters.count = 0 then ut_event_manager.add_listener(ut_documentation_reporter()); @@ -107,7 +112,7 @@ create or replace package body ut_runner is if a_coverage_schemes is not empty then l_coverage_schema_names := ut_utils.convert_collection(a_coverage_schemes); else - l_coverage_schema_names := ut_suite_manager.get_schema_names(a_paths); + l_coverage_schema_names := ut_suite_manager.get_schema_names(l_paths); end if; if a_exclude_objects is not empty then @@ -119,8 +124,8 @@ create or replace package body ut_runner is l_include_object_names := to_ut_object_list(a_include_objects, l_coverage_schema_names); l_run := ut_run( - ut_suite_manager.configure_execution_by_path(a_paths), - a_paths, + ut_suite_manager.configure_execution_by_path(l_paths), + l_paths, l_coverage_schema_names, l_exclude_object_names, l_include_object_names, diff --git a/test/api/test_ut_run.pkb b/test/api/test_ut_run.pkb index 2333c6e18..57d41b004 100644 --- a/test/api/test_ut_run.pkb +++ b/test/api/test_ut_run.pkb @@ -203,236 +203,6 @@ end;]'; execute immediate 'drop package invalid_pckag_that_revalidates'; execute immediate 'drop package parent_specs'; end; - - procedure create_test_csl_packages is - pragma autonomous_transaction; - begin - execute immediate q'[ - create or replace package test_csl_names1 as - --%suite - --%suitepath(test_csl_names) - - --%test - procedure one_is_one; - - --%test - procedure two_is_two; - - end; - ]'; - - execute immediate q'{ - create or replace package body test_csl_names1 as - - procedure one_is_one is - begin - ut3.ut.expect(1).to_equal(1); - end; - - procedure two_is_two is - begin - ut3.ut.expect(2).to_equal(2); - end; - - end; - }'; - - execute immediate q'[ - create or replace package test_csl_names2 as - --%suite - --%suitepath(test_csl_names) - - --%test - procedure one_is_one; - - --%test - procedure two_is_two; - - end; - ]'; - - execute immediate q'{ - create or replace package body test_csl_names2 as - - procedure one_is_one is - begin - ut3.ut.expect(1).to_equal(1); - end; - - procedure two_is_two is - begin - ut3.ut.expect(2).to_equal(2); - end; - - end; - }'; - - end; - - procedure drop_test_csl_packages is - pragma autonomous_transaction; - begin - execute immediate 'drop package test_csl_names1'; - execute immediate 'drop package test_csl_names2'; - end; - - procedure pass_varchar2_name_list is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - select * - bulk collect into l_results - from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2'))); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_varchar2_name is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - select * - bulk collect into l_results - from table(ut3.ut.run('test_csl_names1')); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_varchar2_suite_csl is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - select * - bulk collect into l_results - from table(ut3.ut.run('test_csl_names1,test_csl_names2')); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_varchar2_test_csl is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - select * - bulk collect into l_results - from table(ut3.ut.run('test_csl_names1.one_is_one,test_csl_names2.one_is_one')); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_varch_test_csl_spc is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - select * - bulk collect into l_results - from table(ut3.ut.run('test_csl_names1.one_is_one, test_csl_names2.one_is_one')); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_csl_with_srcfile is - l_results ut3.ut_varchar2_list; - l_actual clob; - begin - - select * - bulk collect into l_results - from table( - ut3.ut.run( - a_path => 'test_csl_names1.one_is_one,test_csl_names2.one_is_one', - a_source_files => ut3.ut_varchar2_list('ut3.ut'), - a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2') - ) - ); - - l_actual := ut3.ut_utils.table_to_clob(l_results); - ut.expect(l_actual).to_be_like('%Finished in % seconds -%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); - end; - - procedure pass_singlevar_with_proc is - l_output_data dbms_output.chararr; - l_num_lines integer := 100000; - l_packages_executed integer := 0; - begin - --act - ut3.ut.run('test_csl_names1'); - dbms_output.get_lines( l_output_data, l_num_lines); - - for i in 1 .. l_num_lines loop - if l_output_data(i) like '%test_csl_names1%' then - l_packages_executed := l_packages_executed + 1; - end if; - end loop; - ut.expect(l_packages_executed ).to_equal(1); - end; - - procedure pass_vlist_with_proc is - l_output_data dbms_output.chararr; - l_num_lines integer := 100000; - l_packages_executed integer := 0; - begin - --act - ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2')); - dbms_output.get_lines( l_output_data, l_num_lines); - - for i in 1 .. l_num_lines loop - if l_output_data(i) like '%test_csl_names1%' - or l_output_data(i) like '%test_csl_names2%' then - l_packages_executed := l_packages_executed + 1; - end if; - end loop; - ut.expect(l_packages_executed ).to_equal(2); - end; - - procedure pass_csl_with_proc is - l_output_data dbms_output.chararr; - l_num_lines integer := 100000; - l_packages_executed integer := 0; - begin - --act - ut3.ut.run('test_csl_names1,test_csl_names2'); - dbms_output.get_lines( l_output_data, l_num_lines); - - for i in 1 .. l_num_lines loop - if l_output_data(i) like '%test_csl_names1%' - or l_output_data(i) like '%test_csl_names2%' then - l_packages_executed := l_packages_executed + 1; - end if; - end loop; - ut.expect(l_packages_executed ).to_equal(2); - end; - - procedure pass_csl_src_proc is - l_output_data dbms_output.chararr; - l_num_lines integer := 100000; - l_packages_executed integer := 0; - begin - --act - ut3.ut.run(a_path => 'test_csl_names1,test_csl_names2', - a_source_files => ut3.ut_varchar2_list('ut3.ut'), - a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2')); - dbms_output.get_lines( l_output_data, l_num_lines); - - for i in 1 .. l_num_lines loop - if l_output_data(i) like '%test_csl_names1%' - or l_output_data(i) like '%test_csl_names2%' then - l_packages_executed := l_packages_executed + 1; - end if; - end loop; - ut.expect(l_packages_executed ).to_equal(2); - end; end; / diff --git a/test/api/test_ut_run.pks b/test/api/test_ut_run.pks index 4e2a9b261..f4758ff3a 100644 --- a/test/api/test_ut_run.pks +++ b/test/api/test_ut_run.pks @@ -22,45 +22,6 @@ create or replace package test_ut_run is procedure run_and_revalidate_specs; procedure generate_invalid_spec; procedure drop_test_package; - - procedure create_test_csl_packages; - procedure drop_test_csl_packages; - - --%context(ut_run_coma_sep_list) - --%beforeall(create_test_csl_packages) - --%afterall(drop_test_csl_packages) - - --%test( Pass name of tests as varchar2_list ) - procedure pass_varchar2_name_list; - - --%test( Pass single test name as varchar2 ) - procedure pass_varchar2_name; - - --%test( Pass coma separated list of suite names ) - procedure pass_varchar2_suite_csl; - - --%test( Pass coma separated list of test names ) - procedure pass_varchar2_test_csl; - - --%test( Pass coma separated list of test names with spaces ) - procedure pass_varch_test_csl_spc; - - --%test( Pass coma separated list and source and test files ) - procedure pass_csl_with_srcfile; - - --%test( Pass single varchar2 into procedure ) - procedure pass_singlevar_with_proc; - - --%test( Pass varchar2_list into procedure ) - procedure pass_vlist_with_proc; - - --%test( Pass coma separated list varchar2 into procedure ) - procedure pass_csl_with_proc; - - --%test( Pass coma separated list varchar2 into procedure with src file) - procedure pass_csl_src_proc; - - --%endcontext - + end; / diff --git a/test/api/test_ut_runner.pkb b/test/api/test_ut_runner.pkb index fa3121bfa..3a8f6f670 100644 --- a/test/api/test_ut_runner.pkb +++ b/test/api/test_ut_runner.pkb @@ -361,5 +361,175 @@ end;'; ut.expect(dbms_utility.format_error_stack||dbms_utility.format_error_backtrace).not_to_be_like('%ORA-02055%'); end; + procedure create_test_csl_packages is + pragma autonomous_transaction; + begin + execute immediate q'[ + create or replace package test_csl_names1 as + --%suite + --%suitepath(test_csl_names) + + --%test + procedure one_is_one; + + --%test + procedure two_is_two; + + end; + ]'; + + execute immediate q'{ + create or replace package body test_csl_names1 as + + procedure one_is_one is + begin + ut3.ut.expect(1).to_equal(1); + end; + + procedure two_is_two is + begin + ut3.ut.expect(2).to_equal(2); + end; + + end; + }'; + + execute immediate q'[ + create or replace package test_csl_names2 as + --%suite + --%suitepath(test_csl_names) + + --%test + procedure one_is_one; + + --%test + procedure two_is_two; + + end; + ]'; + + execute immediate q'{ + create or replace package body test_csl_names2 as + + procedure one_is_one is + begin + ut3.ut.expect(1).to_equal(1); + end; + + procedure two_is_two is + begin + ut3.ut.expect(2).to_equal(2); + end; + + end; + }'; + + end; + + procedure drop_test_csl_packages is + pragma autonomous_transaction; + begin + execute immediate 'drop package test_csl_names1'; + execute immediate 'drop package test_csl_names2'; + end; + + procedure pass_varchar2_name_list is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1','test_csl_names2'))); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_name is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_suite_csl is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1,test_csl_names2')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%4 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varchar2_test_csl is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1.one_is_one,test_csl_names2.one_is_one')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_varch_test_csl_spc is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run('test_csl_names1.one_is_one, test_csl_names2.one_is_one')); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_csl_with_srcfile is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + + select * + bulk collect into l_results + from table( + ut3.ut.run( + a_path => 'test_csl_names1.one_is_one,test_csl_names2.one_is_one', + a_source_files => ut3.ut_varchar2_list('ut3.ut'), + a_test_files => ut3.ut_varchar2_list('ut3_tester.test_csl_names2') + ) + ); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + + procedure pass_csl_within_var2list is + l_results ut3.ut_varchar2_list; + l_actual clob; + begin + select * + bulk collect into l_results + from table(ut3.ut.run(ut3.ut_varchar2_list('test_csl_names1.one_is_one,test_csl_names2.one_is_one'))); + + l_actual := ut3.ut_utils.table_to_clob(l_results); + ut.expect(l_actual).to_be_like('%Finished in % seconds +%2 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%'); + end; + end; / diff --git a/test/api/test_ut_runner.pks b/test/api/test_ut_runner.pks index 7b22fd4f1..74c93dbae 100644 --- a/test/api/test_ut_runner.pks +++ b/test/api/test_ut_runner.pks @@ -61,5 +61,35 @@ create or replace package test_ut_runner is --%aftertest(db_link_cleanup) procedure raises_20213_on_fail_link; + procedure create_test_csl_packages; + procedure drop_test_csl_packages; + + --%context(ut_run_coma_sep_list) + --%beforeall(create_test_csl_packages) + --%afterall(drop_test_csl_packages) + + --%test( Pass name of tests as varchar2_list ) + procedure pass_varchar2_name_list; + + --%test( Pass single test name as varchar2 ) + procedure pass_varchar2_name; + + --%test( Pass coma separated list of suite names ) + procedure pass_varchar2_suite_csl; + + --%test( Pass coma separated list of test names ) + procedure pass_varchar2_test_csl; + + --%test( Pass coma separated list of test names with spaces ) + procedure pass_varch_test_csl_spc; + + --%test( Pass coma separated list and source and test files ) + procedure pass_csl_with_srcfile; + + --%test( Pass coma separated list in varchar2list ) + procedure pass_csl_within_var2list; + + --%endcontext + end; /