Skip to content

Commit

Permalink
Improved build speed by ~1.5 minute
Browse files Browse the repository at this point in the history
Added bind mount to DB docker at runtime to enable faster execution of scripts
Removed need for sqlcl locally in build
Added download of ojdbc and orai18n directly without click-through
Cleanup of build scripts to make them more TRAVIS-agnostic
  • Loading branch information
jgebal committed Nov 9, 2021
1 parent b7fbfeb commit 4e4ad23
Show file tree
Hide file tree
Showing 14 changed files with 118 additions and 65 deletions.
40 changes: 28 additions & 12 deletions .travis.yml
Expand Up @@ -25,6 +25,15 @@ env:
- UT3_TESTER_HELPER=UT3_TESTER_HELPER
- UT3_TESTER_HELPER_PASSWORD=ut3
- UT3_TABLESPACE=users
- BUILD_DIR=${TRAVIS_BUILD_DIR}
- JOB_ID=${TRAVIS_JOB_ID}
- JOB_NUMBER=${TRAVIS_JOB_NUMBER}
- PULL_REQUEST_NAME=${TRAVIS_PULL_REQUEST}
- PULL_REQUEST_BRANCH=${TRAVIS_PULL_REQUEST_BRANCH}
- TAG_NAME=${TRAVIS_TAG}
- REPO_SLUG=${TRAVIS_REPO_SLUG}
- PR_SLUG=${TRAVIS_PULL_REQUEST_SLUG}
- BRANCH_NAME=${TRAVIS_BRANCH}
# Environment for building a release
- CURRENT_BRANCH=${TRAVIS_BRANCH}
- UTPLSQL_REPO="utPLSQL/utPLSQL"
Expand All @@ -35,25 +44,27 @@ env:
- UTPLSQL_BUILD_USER_NAME="Travis CI"
- CACHE_DIR=$HOME/.cache
# Database Env
- SQLCLI="$HOME/sqlcl/bin/sql"
- OJDBC_HOME="$HOME/sqlcl/lib"
- SQLCLI="${BUILD_DIR}/sqlcl/bin/sql"
- OJDBC_HOME="${BUILD_DIR}/ojdbc"
- ORACLE_PWD="oracle"
- UT3_DOCKER_REPO="utplsqlv3/oracledb"
- DOCKHER_HUB_REPO="${DOCKER_BASE_TAG:-$UT3_DOCKER_REPO}"
- DOCKER_VOLUME="/home/oracle/host"
- DOCKER_ENV="-e SQLCLI=sqlplus -e UT3_DEVELOP_SCHEMA -e UT3_DEVELOP_SCHEMA_PASSWORD -e UT3_RELEASE_VERSION_SCHEMA -e UT3_RELEASE_VERSION_SCHEMA_PASSWORD -e UT3_USER -e UT3_USER_PASSWORD -e UT3_TESTER -e UT3_TESTER_PASSWORD -e UT3_TESTER_HELPER -e UT3_TESTER_HELPER_PASSWORD -e UT3_TABLESPACE -e ORACLE_PWD -e CONNECTION_STR -e UTPLSQL_DIR"
#utPLSQL released version directory
- UTPLSQL_DIR="utPLSQL_latest_release"
- SELFTESTING_BRANCH=${TRAVIS_BRANCH}
- UTPLSQL_CLI_VERSION="3.1.8"
# Maven
- MAVEN_HOME=/usr/local/maven
- MAVEN_CFG=$HOME/.m2
matrix:
- ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_OPTIONS='--shm-size=1g'
jobs:
- ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_VOLUME="/mnt/host" DOCKER_OPTIONS='--shm-size=1g'
- ORACLE_VERSION="${DOCKER_TAG_12C:-12c-r1-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
- ORACLE_VERSION="${DOCKER_TAG_12C2:-12c-r2-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
- ORACLE_VERSION="${DOCKER_TAG_18:-18c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
- ORACLE_VERSION="${DOCKER_TAG_19:-19c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
- ORACLE_VERSION="${DOCKER_TAG_21XE:-21c-xe-full}" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
- ORACLE_VERSION="${DOCKER_TAG_21XE:-21c-xe-full}" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'

cache:
pip: true
Expand All @@ -73,24 +84,29 @@ before_install:
#Allow for sonar to blame issues
- git fetch --unshallow
# download latest utPLSQL release
#- curl -LOk $(curl --silent https://api.github.com/repos/utPLSQL/utPLSQL/releases/latest | awk '/browser_download_url/ { print $2 }' | grep ".zip" | sed 's/"//g')
- git clone --depth=1 --branch=${SELFTESTING_BRANCH:-main} https://github.com/utPLSQL/utPLSQL.git $UTPLSQL_DIR
# download latest utPLSQL-cli release
- curl -Lk -o utPLSQL-cli.zip https://github.com/utPLSQL/utPLSQL-cli/releases/download/v${UTPLSQL_CLI_VERSION}/utPLSQL-cli.zip

install:
#- unzip utPLSQL.zip
- unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli
- bash .travis/install_sqlcl.sh
# - curl -Lk -o sqlcl-latest.zip https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
# - unzip -q sqlcl-latest.zip -d $HOME
- mkdir -p ${OJDBC_HOME} #get JDBC driver and orai18n
- curl -Lk -o ${OJDBC_HOME}/ojdbc8.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/ojdbc8.jar
- curl -Lk -o ${OJDBC_HOME}/orai18n.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/orai18n.jar
# Chmod is needed to allow for write access within from docker container volume
- chmod -R go+w ./{source,test,examples,${UTPLSQL_DIR}/source}
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/start_db.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install_utplsql_release.sh; fi

before_script:
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install_utplsql_release.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/run_examples.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/run_examples.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/test/install_tests.sh; fi

script:
- if [[ ! $TRAVIS_TAG ]]; then bash test/install_and_run_tests.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then bash test/run_tests.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/validate_report_files.sh; fi
- if [[ ! $TRAVIS_TAG ]] && [[ ("${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" && "${TRAVIS_PULL_REQUEST}" == false) || ("${TRAVIS_PULL_REQUEST_SLUG}" = "${UTPLSQL_REPO}") ]]; then bash .travis/run_sonar_scanner.sh; fi
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/coveralls_uploader.sh; fi
Expand Down
2 changes: 1 addition & 1 deletion .travis/coveralls_uploader.js
Expand Up @@ -14,7 +14,7 @@ fs.readFile('../coverage.json',function (err,data) {
return console.log(err);
}
req = JSON.parse(data);
req.service_job_id = process.env.TRAVIS_JOB_ID;
req.service_job_id = process.env.JOB_ID;
req.service_name = 'travis-ci';
if (process.env.COVERALLS_REPO_TOKEN) {
req.repo_token = process.env.COVERALLS_REPO_TOKEN;
Expand Down
5 changes: 3 additions & 2 deletions .travis/install.sh
@@ -1,7 +1,8 @@
#!/bin/bash

cd source
set -ev
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd ${SCRIPT_DIR}/../source

INSTALL_FILE="install_headless_with_trigger.sql"
if [[ ! -f "${INSTALL_FILE}" ]]; then
Expand All @@ -20,7 +21,7 @@ alter session set plsql_optimize_level=0;
SQL

#Run this step only on second child job (12.1 - at it's fastest)
if [[ "${TRAVIS_JOB_NUMBER}" =~ \.2$ ]]; then
if [[ "${JOB_NUMBER}" =~ \.2$ ]]; then

#check code-style for errors
time "$SQLCLI" $UT3_DEVELOP_SCHEMA/$UT3_DEVELOP_SCHEMA_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql
Expand Down
20 changes: 0 additions & 20 deletions .travis/install_sqlcl.sh

This file was deleted.

4 changes: 2 additions & 2 deletions .travis/install_utplsql_release.sh
@@ -1,8 +1,8 @@
#!/bin/bash

set -ev

cd $UTPLSQL_DIR/source
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd ${SCRIPT_DIR}/../${UTPLSQL_DIR}/source

"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<SQL
set serveroutput on
Expand Down
10 changes: 5 additions & 5 deletions .travis/push_docs_to_github_io.sh
Expand Up @@ -20,7 +20,7 @@ GITHUB_IO_BRANCH='main'
# TRAVIS_* variables are set by travis directly and only need to be if testing externally

# We deploy only when building on develop branch or on TAG (release)
if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST_DOCS_BRANCH}" ] || [ -n "${TRAVIS_TAG}" ]; }; then
if [ "${PULL_REQUEST_NAME}" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST_DOCS_BRANCH}" ] || [ -n "${TAG_NAME}" ]; }; then

# ENV Variable checks are to help with configuration troubleshooting, they silently exit with unique message.
# Anyone one of them not set can be used to turn off this functionality.
Expand All @@ -47,7 +47,7 @@ if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST
cp -a ../../docs/. ./develop

# If a Tagged Build then copy to it's own directory as well and to the 'latest' release directory
if [ -n "$TRAVIS_TAG" ]; then
if [ -n "${TAG_NAME}" ]; then
echo "Creating directory ./${UTPLSQL_VERSION}"
mkdir -p ./${UTPLSQL_VERSION}
rm -rf ./${UTPLSQL_VERSION}/**./* || exit 0
Expand Down Expand Up @@ -81,10 +81,10 @@ if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST
echo "" >>index.md
fi
#If build running on a TAG - it's a new release - need to add it to documentation
if [ -n "${TRAVIS_TAG}" ]; then
sed -i '7s@.*@'" - [Latest ${TRAVIS_TAG} documentation](latest/) - Created $now"'@' index.md
if [ -n "${TAG_NAME}" ]; then
sed -i '7s@.*@'" - [Latest ${TAG_NAME} documentation](latest/) - Created $now"'@' index.md
#add entry to the top of version history (line end of file - ## Released Version Doc History
sed -i '12i'" - [${TRAVIS_TAG} documentation](${UTPLSQL_VERSION}/) - Created $now" index.md
sed -i '12i'" - [${TAG_NAME} documentation](${UTPLSQL_VERSION}/) - Created $now" index.md
fi
#replace 4th line in log
sed -i '8s@.*@'" - [Latest development version](develop/) - Created $now"'@' index.md
Expand Down
4 changes: 2 additions & 2 deletions .travis/push_release_version.sh
Expand Up @@ -3,7 +3,7 @@
# We are updating version number only when:
# - not a pull request
# - branch name is = develop or branch name is like release/vX.X.X...
if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [[ "${CURRENT_BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|develop)$ ]]; then
if [ "${REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "${PULL_REQUEST_NAME}" == "false" ] && [[ "${CURRENT_BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|develop)$ ]]; then
echo Current branch is "${CURRENT_BRANCH}"
echo "Committing version & buildNo into branch (${CURRENT_BRANCH})"
git add sonar-project.properties
Expand All @@ -14,5 +14,5 @@ if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "$TRAVIS_PULL_REQUEST" ==
echo "Pushing to origin"
git push --quiet origin HEAD:${CURRENT_BRANCH}
else
echo "Publishing of version skipped for branch ${CURRENT_BRANCH}, pull request ${TRAVIS_PULL_REQUEST}"
echo "Publishing of version skipped for branch ${CURRENT_BRANCH}, pull request ${PULL_REQUEST_NAME}"
fi
4 changes: 2 additions & 2 deletions .travis/run_examples.sh
@@ -1,8 +1,8 @@
#!/bin/bash

cd "$(dirname "$(readlink -f "$0")")"/../examples

set -ev
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd ${SCRIPT_DIR}/../examples

"$SQLCLI" $UT3_DEVELOP_SCHEMA/$UT3_DEVELOP_SCHEMA_PASSWORD@//$CONNECTION_STR <<SQL
Expand Down
16 changes: 8 additions & 8 deletions .travis/run_sonar_scanner.sh
Expand Up @@ -21,28 +21,28 @@ function add_sonar_property {
}


if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
BRANCH=$TRAVIS_BRANCH;
if [ "${PULL_REQUEST_NAME}" == "false" ]; then
BRANCH=${BRANCH_NAME};
PR_BRANCH=""
echo "BRANCH=$BRANCH"
else
BRANCH=$TRAVIS_PULL_REQUEST_BRANCH
PR_BRANCH=$TRAVIS_BRANCH
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$TRAVIS_PULL_REQUEST, BRANCH=$BRANCH"
BRANCH=${PULL_REQUEST_BRANCH}
PR_BRANCH=${BRANCH_NAME}
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=${PULL_REQUEST_NAME}, BRANCH=$BRANCH"

fi


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

echo "" >> sonar-project.properties
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
if [ "${PULL_REQUEST_BRANCH}" == "false" ]; then
echo "Updating sonar properties to include branch ${BRANCH}"
add_sonar_property "${BRANCH_SONAR_PROPERTY}" "${BRANCH}"
add_sonar_property "${BRANCH_SONAR_TARGET_PROPERTY}" "${MAIN_DEV_BRANCH}"
elif [ "${TRAVIS_PULL_REQUEST_SLUG}" = "${TRAVIS_REPO_SLUG}" ]; then
elif [ "${PR_SLUG}" = "${REPO_SLUG}" ]; then
echo "Updating sonar properties to include pull request ${BRANCH}"
add_sonar_property "${PR_SONAR_TOKEN_PROPERTY}" "${GITHUB_TRAVISCI_TOKEN}"
add_sonar_property "${PR_SONAR_BRANCH_PROPERTY}" "${BRANCH}"
Expand Down
5 changes: 1 addition & 4 deletions .travis/start_db.sh
Expand Up @@ -10,9 +10,6 @@ else
mkdir -p $HOME/.docker && cp $CACHE_DIR/.docker/config.json $HOME/.docker/
fi

df -h
time docker pull $DOCKHER_HUB_REPO:$ORACLE_VERSION
df -h
docker run -d --name $ORACLE_VERSION $DOCKER_OPTIONS -p 1521:1521 $DOCKHER_HUB_REPO:$ORACLE_VERSION
docker run -d --name $ORACLE_VERSION --mount type=bind,source=${BUILD_DIR},target=${DOCKER_VOLUME} $DOCKER_OPTIONS $DOCKER_ENV -p 1521:1521 $DOCKHER_HUB_REPO:$ORACLE_VERSION
time docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered
df -h
4 changes: 2 additions & 2 deletions .travis/validate_report_files.sh
@@ -1,8 +1,8 @@
#!/usr/bin/env bash

GL_VALID=1
XSD_DIR="$TRAVIS_BUILD_DIR/.travis/xsd"
XML_JAR_DIR="$TRAVIS_BUILD_DIR/.travis/lib"
XSD_DIR="$BUILD_DIR/.travis/xsd"
XML_JAR_DIR="$BUILD_DIR/.travis/lib"
#XML Validator
XML_VALIDATOR="$XML_JAR_DIR/xml_validator.jar"
HTML_VALIDATOR_URL="https://validator.w3.org/nu/"
Expand Down
3 changes: 2 additions & 1 deletion development/template.env.sh
Expand Up @@ -2,7 +2,7 @@

export SQLCLI=sql # For sqlcl client
#export SQLCLI=sqlplus # For sqlplus client
export CONNECTION_STR=127.0.0.1:1521/xe # Adjust the connect string
export CONNECTION_STR=127.0.0.1:1521/xe ORACLE_VERSION=11g-r2-xe# Adjust the connect string
export ORACLE_PWD=oracle # Adjust your local SYS password
export UTPLSQL_CLI_VERSION="3.1.6"
export SELFTESTING_BRANCH=develop
Expand All @@ -19,3 +19,4 @@ export UT3_TESTER_HELPER_PASSWORD=ut3
export UT3_TABLESPACE=users
export UT3_USER="UT3\$USER#"
export UT3_USER_PASSWORD=ut3
export DOCKER_ENV="-e SQLCLI=sqlplus -e UT3_DEVELOP_SCHEMA -e UT3_DEVELOP_SCHEMA_PASSWORD -e UT3_RELEASE_VERSION_SCHEMA -e UT3_RELEASE_VERSION_SCHEMA_PASSWORD -e UT3_USER -e UT3_USER_PASSWORD -e UT3_TESTER -e UT3_TESTER_PASSWORD -e UT3_TESTER_HELPER -e UT3_TESTER_HELPER_PASSWORD -e UT3_TABLESPACE -e ORACLE_PWD -e CONNECTION_STR -e UTPLSQL_DIR"
6 changes: 3 additions & 3 deletions test/install_tests.sh
@@ -1,9 +1,9 @@
#!/bin/bash
set -ev

#goto git root directory
git rev-parse && cd "$(git rev-parse --show-cdup)"
cd test
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd ${SCRIPT_DIR}


"$SQLCLI" ${UT3_TESTER_HELPER}/${UT3_TESTER_HELPER_PASSWORD}@//${CONNECTION_STR} @install_ut3_tester_helper.sql

Expand Down
60 changes: 59 additions & 1 deletion test/ut3_user/reporters/test_documentation_reporter.pkb
@@ -1 +1,59 @@
create or replace package body test_documentation_reporter as procedure report_produces_expected_out is l_results ut3_develop.ut_varchar2_list; l_actual clob; l_expected varchar2(32767):=q'[%org utplsql tests helpers A suite for testing different outcomes from reporters <!beforeall!> A description of some context passing_test [% sec] <!beforeeach!> <!beforetest!> <!passing test!> <!aftertest!> <!aftereach!> a test with failing assertion [% sec] (FAILED - 1) <!beforeeach!> <!failing test!> <!aftereach!> a test raising unhandled exception [% sec] (FAILED - 2) <!beforeeach!> <!erroring test!> <!aftereach!> a disabled test [0 sec] (DISABLED) <!afterall!>%Failures:% 1) failing_test "Fails as values are different" Actual: 'number [1] ' (varchar2) was expected to equal: 'number [2] ' (varchar2)% at "UT3$USER#.TEST_REPORTERS%", line 36 ut3_develop.ut.expect('number [1] ','Fails as values are different').to_equal('number [2] ');%% 2) erroring_test ORA-06502: PL/SQL: numeric or value error: character to number conversion error ORA-06512: at "UT3$USER#.TEST_REPORTERS", line 44% ORA-06512: at line 6Finished in % seconds4 tests, 1 failed, 1 errored, 1 disabled, 0 warning(s)%]'; begin select * bulk collect into l_results from table( ut3_develop.ut.run( 'test_reporters', ut3_develop.ut_documentation_reporter() ) ); l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results); ut.expect(l_actual).to_be_like(l_expected); end;end;/
create or replace package body test_documentation_reporter as

procedure report_produces_expected_out is
l_results ut3_develop.ut_varchar2_list;
l_actual clob;
l_expected varchar2(32767):=q'[%org
utplsql
tests
helpers
A suite for testing different outcomes from reporters
<!beforeall!>
A description of some context
passing_test [% sec]
<!beforeeach!>
<!beforetest!>
<!passing test!>
<!aftertest!>
<!aftereach!>
a test with failing assertion [% sec] (FAILED - 1)
<!beforeeach!>
<!failing test!>
<!aftereach!>
a test raising unhandled exception [% sec] (FAILED - 2)
<!beforeeach!>
<!erroring test!>
<!aftereach!>
a disabled test [0 sec] (DISABLED)
<!afterall!>
%
Failures:
%
1) failing_test
"Fails as values are different"
Actual: 'number [1] ' (varchar2) was expected to equal: 'number [2] ' (varchar2)%
at "UT3$USER#.TEST_REPORTERS%", line 36 ut3_develop.ut.expect('number [1] ','Fails as values are different').to_equal('number [2] ');
%
%
2) erroring_test
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "UT3$USER#.TEST_REPORTERS", line 44%
ORA-06512: at line 6
Finished in % seconds
4 tests, 1 failed, 1 errored, 1 disabled, 0 warning(s)%]';

begin
select *
bulk collect into l_results
from table(
ut3_develop.ut.run(
'test_reporters',
ut3_develop.ut_documentation_reporter()
)
);
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;

end;
/

0 comments on commit 4e4ad23

Please sign in to comment.