From 8feae1c6a544d821ccab4a03f5455a4a7e63e704 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 16:27:32 +0100 Subject: [PATCH 01/10] Adding timing to docker operations. --- .travis/start_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis/start_db.sh b/.travis/start_db.sh index 2f71c07bd..29433a8ff 100644 --- a/.travis/start_db.sh +++ b/.travis/start_db.sh @@ -10,6 +10,6 @@ else mkdir -p $HOME/.docker && cp $CACHE_DIR/.docker/config.json $HOME/.docker/ fi -docker pull $DOCKHER_HUB_REPO:$ORACLE_VERSION +time docker pull $DOCKHER_HUB_REPO:$ORACLE_VERSION docker run -d --name $ORACLE_VERSION $DOCKER_OPTIONS -p 1521:1521 $DOCKHER_HUB_REPO:$ORACLE_VERSION -docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered \ No newline at end of file +time docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered \ No newline at end of file From 81694a53cdbff0625d4f6af2625fb6e1f17760b7 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 16:31:08 +0100 Subject: [PATCH 02/10] Moved filesystem stats into `start_db.sh` --- .travis.yml | 2 -- .travis/start_db.sh | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e152e13ee..5b82e811a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -80,9 +80,7 @@ install: - bash .travis/install_sqlcl.sh - sudo mkdir -p /dev/pdbs - sudo chmod -R 777 /dev/pdbs - - df -h - if [[ ! $TRAVIS_TAG ]]; then bash .travis/start_db.sh; fi - - df -h before_script: - if [[ ! $TRAVIS_TAG ]]; then bash .travis/install.sh; fi diff --git a/.travis/start_db.sh b/.travis/start_db.sh index 29433a8ff..e42656987 100644 --- a/.travis/start_db.sh +++ b/.travis/start_db.sh @@ -10,6 +10,9 @@ 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 -time docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered \ No newline at end of file +time docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered +df -h From 110bfa743b06a31353d9157ec9686355420cb8ea Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 16:37:19 +0100 Subject: [PATCH 03/10] Disabling maven wagon-http --- .travis/maven_cfg.sh | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/.travis/maven_cfg.sh b/.travis/maven_cfg.sh index ef2348099..65dbc9c8f 100644 --- a/.travis/maven_cfg.sh +++ b/.travis/maven_cfg.sh @@ -2,17 +2,20 @@ set -ev cp .travis/settings.xml $MAVEN_CFG/settings.xml -cd $(dirname $(readlink -f $0)) - -# Download wagon-http recommended by Oracle. -# On maven latest version this is not needed, but travis doesn't have it. -if [ ! -f $CACHE_DIR/wagon-http-2.8-shaded.jar ]; then - curl -L -O "http://central.maven.org/maven2/org/apache/maven/wagon/wagon-http/2.8/wagon-http-2.8-shaded.jar" - mv wagon-http-2.8-shaded.jar $CACHE_DIR/ - sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ -else - echo "Using cached wagon-http..." - sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ -fi - -mvn dependency:copy-dependencies -DoutputDirectory=../utPLSQL-cli/lib \ No newline at end of file +############################################ +# disabling all the below to check if it's still needed with maven 3.5.2 on Travis +############################################ +#cd $(dirname $(readlink -f $0)) +# +## Download wagon-http recommended by Oracle. +## On maven latest version this is not needed, but travis doesn't have it. +#if [ ! -f $CACHE_DIR/wagon-http-2.8-shaded.jar ]; then +# curl -L -O "http://central.maven.org/maven2/org/apache/maven/wagon/wagon-http/2.8/wagon-http-2.8-shaded.jar" +# mv wagon-http-2.8-shaded.jar $CACHE_DIR/ +# sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ +#else +# echo "Using cached wagon-http..." +# sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ +#fi +# +#mvn dependency:copy-dependencies -DoutputDirectory=../utPLSQL-cli/lib \ No newline at end of file From 3021a69d187aa5f6da2473b1c1c2304b20b0115f Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 16:41:53 +0100 Subject: [PATCH 04/10] Removing unneeded (duplicate) warnings on install. --- .travis/install.sh | 1 - .travis/install_utplsql_release.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index bb99a0e2d..a979f6b2d 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -7,7 +7,6 @@ set -ev set feedback off set verify off -alter session set plsql_warnings = 'ENABLE:ALL', 'DISABLE:(5004,5018,6000,6001,6003,6009,6010,7206)'; @install_headless.sql $UT3_OWNER $UT3_OWNER_PASSWORD SQL diff --git a/.travis/install_utplsql_release.sh b/.travis/install_utplsql_release.sh index f551ff9b5..169634500 100644 --- a/.travis/install_utplsql_release.sh +++ b/.travis/install_utplsql_release.sh @@ -37,7 +37,6 @@ end; SQL "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA < Date: Sun, 29 Jul 2018 16:42:49 +0100 Subject: [PATCH 05/10] Adding `plsql_optimize_level=0` to improve install performance. --- .travis/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis/install.sh b/.travis/install.sh index a979f6b2d..fb4de5e73 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -7,6 +7,7 @@ set -ev set feedback off set verify off +alter session set plsql_optimize_level=0; @install_headless.sql $UT3_OWNER $UT3_OWNER_PASSWORD SQL From 8a23068808c1bfbde483cf4ac06b0e36b84e5223 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 16:43:27 +0100 Subject: [PATCH 06/10] Adding `plsql_optimize_level=0` to further improve install performance and check impact on test performance. --- .travis/install.sh | 1 + .travis/install_utplsql_release.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/.travis/install.sh b/.travis/install.sh index fb4de5e73..2bd530c9c 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -39,6 +39,7 @@ set feedback off set verify off alter session set plsql_warnings = 'ENABLE:ALL', 'DISABLE:(5004,5018,6000,6001,6003,6009,6010,7206)'; +alter session set plsql_optimize_level=0; @install.sql $UT3_OWNER SQL diff --git a/.travis/install_utplsql_release.sh b/.travis/install_utplsql_release.sh index 169634500..889e098da 100644 --- a/.travis/install_utplsql_release.sh +++ b/.travis/install_utplsql_release.sh @@ -37,6 +37,7 @@ end; SQL "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA < Date: Sun, 29 Jul 2018 17:04:28 +0100 Subject: [PATCH 07/10] Revert "Disabling maven wagon-http" This reverts commit 110bfa7 --- .travis/maven_cfg.sh | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/.travis/maven_cfg.sh b/.travis/maven_cfg.sh index 65dbc9c8f..ef2348099 100644 --- a/.travis/maven_cfg.sh +++ b/.travis/maven_cfg.sh @@ -2,20 +2,17 @@ set -ev cp .travis/settings.xml $MAVEN_CFG/settings.xml -############################################ -# disabling all the below to check if it's still needed with maven 3.5.2 on Travis -############################################ -#cd $(dirname $(readlink -f $0)) -# -## Download wagon-http recommended by Oracle. -## On maven latest version this is not needed, but travis doesn't have it. -#if [ ! -f $CACHE_DIR/wagon-http-2.8-shaded.jar ]; then -# curl -L -O "http://central.maven.org/maven2/org/apache/maven/wagon/wagon-http/2.8/wagon-http-2.8-shaded.jar" -# mv wagon-http-2.8-shaded.jar $CACHE_DIR/ -# sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ -#else -# echo "Using cached wagon-http..." -# sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ -#fi -# -#mvn dependency:copy-dependencies -DoutputDirectory=../utPLSQL-cli/lib \ No newline at end of file +cd $(dirname $(readlink -f $0)) + +# Download wagon-http recommended by Oracle. +# On maven latest version this is not needed, but travis doesn't have it. +if [ ! -f $CACHE_DIR/wagon-http-2.8-shaded.jar ]; then + curl -L -O "http://central.maven.org/maven2/org/apache/maven/wagon/wagon-http/2.8/wagon-http-2.8-shaded.jar" + mv wagon-http-2.8-shaded.jar $CACHE_DIR/ + sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ +else + echo "Using cached wagon-http..." + sudo cp $CACHE_DIR/wagon-http-2.8-shaded.jar $MAVEN_HOME/lib/ext/ +fi + +mvn dependency:copy-dependencies -DoutputDirectory=../utPLSQL-cli/lib \ No newline at end of file From 385450200ecfe2546f808539e00bf683e5e3023e Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 17:27:39 +0100 Subject: [PATCH 08/10] Adding `plsql_optimize_level=0` to tests installation. Adding timing for tests installation and execution. --- test/install_and_run_tests.sh | 4 ++-- test/install_tests.sql | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/install_and_run_tests.sh b/test/install_and_run_tests.sh index 2c6f78ae1..a1e5e0849 100644 --- a/test/install_and_run_tests.sh +++ b/test/install_and_run_tests.sh @@ -8,11 +8,11 @@ git rev-parse && cd "$(git rev-parse --show-cdup)" cd test -"$SQLCLI" ${UT3_TESTER}/${UT3_TESTER_PASSWORD}@//${CONNECTION_STR} @install_tests.sql +time "$SQLCLI" ${UT3_TESTER}/${UT3_TESTER_PASSWORD}@//${CONNECTION_STR} @install_tests.sql cd .. -utPLSQL-cli/bin/utplsql run ${UT3_TESTER}/${UT3_TESTER_PASSWORD}@${CONNECTION_STR} \ +time utPLSQL-cli/bin/utplsql run ${UT3_TESTER}/${UT3_TESTER_PASSWORD}@${CONNECTION_STR} \ -source_path=source -owner=ut3 \ -test_path=test -c \ -f=ut_documentation_reporter -o=test_results.log -s \ diff --git a/test/install_tests.sql b/test/install_tests.sql index e0a5d6d9f..3e90b1590 100644 --- a/test/install_tests.sql +++ b/test/install_tests.sql @@ -2,6 +2,7 @@ set define off whenever sqlerror exit failure rollback whenever oserror exit failure rollback +alter session set plsql_optimize_level=0; --Install helpers @@helpers/ut_test_table.sql @@helpers/ut_example_tests.pks From 69d504f3121703c534228e7670f7f47eb65094a8 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 18:44:06 +0100 Subject: [PATCH 09/10] Reworking install script to run some actions only on the first JOB (11g - fastest): - testing of code uninstall process - checking code style validity --- .travis/install.sh | 96 ++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 55 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index 2bd530c9c..2f1bdf743 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -2,61 +2,65 @@ cd source set -ev + #install core of utplsql -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL +time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL set feedback off set verify off +alter session set plsql_warnings = 'ENABLE:ALL', 'DISABLE:(5004,5018,6000,6001,6003,6009,6010,7206)'; alter session set plsql_optimize_level=0; @install_headless.sql $UT3_OWNER $UT3_OWNER_PASSWORD SQL -#uninstall core of utplsql -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL -set feedback off -set verify off - -@uninstall_all.sql $UT3_OWNER -declare - v_leftover_objects_count integer; -begin - select sum(cnt) - into v_leftover_objects_count - from (select count(1) cnt from dba_objects where owner = '$UT3_OWNER' - union all - select count(1) cnt from dba_synonyms where table_owner = '$UT3_OWNER' - ); - if v_leftover_objects_count > 0 then - raise_application_error(-20000, 'Not all objects were successfully uninstalled - leftover objects count='||v_leftover_objects_count); - end if; -end; -/ +if [ "$TRAVIS_JOB_ID" == "1" ]; then + + #check code-style for errors + time "$SQLCLI" $UT3_OWNER/$UT3_OWNER_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql + + #test install/uninstall process + time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL + set feedback off + set verify off + + @uninstall_all.sql $UT3_OWNER + declare + v_leftover_objects_count integer; + begin + select sum(cnt) + into v_leftover_objects_count + from (select count(1) cnt from dba_objects where owner = '$UT3_OWNER' + union all + select count(1) cnt from dba_synonyms where table_owner = '$UT3_OWNER' + ); + if v_leftover_objects_count > 0 then + raise_application_error(-20000, 'Not all objects were successfully uninstalled - leftover objects count='||v_leftover_objects_count); + end if; + end; + / SQL -#reinstall core of utplsql -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL -set feedback off -set verify off + time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL + set feedback off + set verify off -alter session set plsql_warnings = 'ENABLE:ALL', 'DISABLE:(5004,5018,6000,6001,6003,6009,6010,7206)'; -alter session set plsql_optimize_level=0; -@install.sql $UT3_OWNER + alter session set plsql_optimize_level=0; + @install.sql $UT3_OWNER SQL +fi + #additional privileges to run scripted tests -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL +time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL set feedback on --needed for Mystats script to work grant select any dictionary to $UT3_OWNER; --Needed for testing a coverage outside ut3_owner. grant create any procedure, drop any procedure, execute any procedure to $UT3_OWNER; - -conn $UT3_OWNER/$UT3_OWNER_PASSWORD@//$CONNECTION_STR -@../development/utplsql_style_check.sql SQL -#Create additional users -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL +#Create user that will own the tests +time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL set feedback off @create_utplsql_owner.sql $UT3_TESTER $UT3_TESTER_PASSWORD $UT3_TABLESPACE @@ -71,29 +75,11 @@ grant create job to $UT3_TESTER; exit SQL -#additional privileges to run tests -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL -set feedback on ---needed for Mystats script to work -grant select any dictionary to $UT3_OWNER; ---Needed for testing a coverage outside ut3_owner. -grant create any procedure, drop any procedure, execute any procedure to $UT3_OWNER; - -exit -SQL - -#Create additional users -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL +#Create additional UT3$USER# to test for special characters +time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL set feedback off @create_utplsql_owner.sql $UT3_USER $UT3_USER_PASSWORD $UT3_TABLESPACE - -exit -SQL - -#Grant UT3 framework to UT3$USER# -"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL -set feedback off +--Grant UT3 framework to UT3$USER# @create_user_grants.sql $UT3_OWNER $UT3_USER - exit SQL From 591c14b707f03bf579f02ce5ddfca7f17623c5b3 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 29 Jul 2018 18:58:34 +0100 Subject: [PATCH 10/10] Reworking install script to run some actions only on the first JOB (11g - fastest): - testing of code uninstall process - checking code style validity --- .travis/install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis/install.sh b/.travis/install.sh index 2f1bdf743..7b799eaa0 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -13,7 +13,8 @@ alter session set plsql_optimize_level=0; @install_headless.sql $UT3_OWNER $UT3_OWNER_PASSWORD SQL -if [ "$TRAVIS_JOB_ID" == "1" ]; then +#Run this step only on first job slave (11.2 - at it's fastest) +if [[ "${TRAVIS_JOB_NUMBER}" =~ \.1$ ]]; then #check code-style for errors time "$SQLCLI" $UT3_OWNER/$UT3_OWNER_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql