| #!/usr/bin/env bash |
| |
| # shellcheck disable=SC2034 |
| # unused variables are global in nature and used in testsupport.sh |
| test |
| set -eo pipefail |
| |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # shellcheck disable=SC1091 |
| . dev-support/testrun-scripts/testsupport.sh |
| init |
| |
| resourceDir=src/test/resources/ |
| logdir=dev-support/testlogs/ |
| azureTestXml=azure-auth-keys.xml |
| azureTestXmlPath=$resourceDir$azureTestXml |
| processCount=8 |
| |
| ## SECTION: TEST COMBINATION METHODS |
| |
| runHNSOAuthTest() |
| { |
| accountName=$(xmlstarlet sel -t -v '//property[name = "fs.azure.hnsTestAccountName"]/value' -n $azureTestXmlPath) |
| PROPERTIES=("fs.azure.account.auth.type") |
| VALUES=("OAuth") |
| triggerRun "HNS-OAuth" "$accountName" "$runTest" $processCount "$cleanUpTestContainers" |
| } |
| |
| runHNSSharedKeyTest() |
| { |
| accountName=$(xmlstarlet sel -t -v '//property[name = "fs.azure.hnsTestAccountName"]/value' -n $azureTestXmlPath) |
| PROPERTIES=("fs.azure.account.auth.type") |
| VALUES=("SharedKey") |
| triggerRun "HNS-SharedKey" "$accountName" "$runTest" $processCount "$cleanUpTestContainers" |
| } |
| |
| runNonHNSSharedKeyTest() |
| { |
| accountName=$(xmlstarlet sel -t -v '//property[name = "fs.azure.nonHnsTestAccountName"]/value' -n $azureTestXmlPath) |
| PROPERTIES=("fs.azure.account.auth.type") |
| VALUES=("SharedKey") |
| triggerRun "NonHNS-SharedKey" "$accountName" "$runTest" $processCount "$cleanUpTestContainers" |
| } |
| |
| runAppendBlobHNSOAuthTest() |
| { |
| accountName=$(xmlstarlet sel -t -v '//property[name = "fs.azure.hnsTestAccountName"]/value' -n $azureTestXmlPath) |
| PROPERTIES=("fs.azure.account.auth.type" "fs.azure.test.appendblob.enabled") |
| VALUES=("OAuth" "true") |
| triggerRun "AppendBlob-HNS-OAuth" "$accountName" "$runTest" $processCount "$cleanUpTestContainers" |
| } |
| |
| runTest=false |
| cleanUpTestContainers=false |
| echo 'Ensure below are complete before running script:' |
| echo '1. Account specific settings file is present.' |
| echo ' Copy accountName_settings.xml.template to accountName_settings.xml' |
| echo ' where accountName in copied file name should be the test account name without domain' |
| echo ' (accountName_settings.xml.template is present in src/test/resources/accountName_settings' |
| echo ' folder. New account settings file to be added to same folder.)' |
| echo ' Follow instructions in the template to populate settings correctly for the account' |
| echo '2. In azure-auth-keys.xml, update properties fs.azure.hnsTestAccountName and fs.azure.nonHnsTestAccountName' |
| echo ' where accountNames should be the test account names without domain' |
| echo ' ' |
| echo ' ' |
| echo 'Choose action:' |
| echo '[Note - SET_ACTIVE_TEST_CONFIG will help activate the config for IDE/single test class runs]' |
| select scriptMode in SET_ACTIVE_TEST_CONFIG RUN_TEST CLEAN_UP_OLD_TEST_CONTAINERS SET_OR_CHANGE_TEST_ACCOUNT PRINT_LOG4J_LOG_PATHS_FROM_LAST_RUN |
| do |
| case $scriptMode in |
| SET_ACTIVE_TEST_CONFIG) |
| runTest=false |
| break |
| ;; |
| RUN_TEST) |
| runTest=true |
| read -r -p "Enter parallel test run process count [default - 8]: " processCount |
| processCount=${processCount:-8} |
| break |
| ;; |
| CLEAN_UP_OLD_TEST_CONTAINERS) |
| runTest=false |
| cleanUpTestContainers=true |
| break |
| ;; |
| SET_OR_CHANGE_TEST_ACCOUNT) |
| runTest=false |
| cleanUpTestContainers=false |
| accountSettingsFile="src/test/resources/azure-auth-keys.xml" |
| if [[ ! -f "$accountSettingsFile" ]]; |
| then |
| logOutput "No settings present. Creating new settings file ($accountSettingsFile) from template" |
| cp src/test/resources/azure-auth-keys.xml.template $accountSettingsFile |
| fi |
| |
| vi $accountSettingsFile |
| exit 0 |
| break |
| ;; |
| PRINT_LOG4J_LOG_PATHS_FROM_LAST_RUN) |
| runTest=false |
| cleanUpTestContainers=false |
| logFilePaths=/tmp/logPaths |
| find target/ -name "*output.txt" > $logFilePaths |
| logOutput "$(cat $logFilePaths)" |
| rm $logFilePaths |
| exit 0 |
| break |
| ;; |
| *) logOutput "ERROR: Invalid selection" |
| ;; |
| esac |
| done |
| |
| ## SECTION: COMBINATION DEFINITIONS AND TRIGGER |
| |
| echo ' ' |
| echo 'Set the active test combination to run the action:' |
| select combo in HNS-OAuth HNS-SharedKey nonHNS-SharedKey AppendBlob-HNS-OAuth AllCombinationsTestRun Quit |
| do |
| case $combo in |
| HNS-OAuth) |
| runHNSOAuthTest |
| break |
| ;; |
| HNS-SharedKey) |
| runHNSSharedKeyTest |
| break |
| ;; |
| nonHNS-SharedKey) |
| runNonHNSSharedKeyTest |
| break |
| ;; |
| AppendBlob-HNS-OAuth) |
| runAppendBlobHNSOAuthTest |
| break |
| ;; |
| AllCombinationsTestRun) |
| if [ $runTest == false ] |
| then |
| logOutput "ERROR: Invalid selection for SET_ACTIVE_TEST_CONFIG. This is applicable only for RUN_TEST." |
| break |
| fi |
| runHNSOAuthTest |
| runHNSSharedKeyTest |
| runNonHNSSharedKeyTest |
| runAppendBlobHNSOAuthTest ## Keep this as the last run scenario always |
| break |
| ;; |
| Quit) |
| exit 0 |
| ;; |
| *) logOutput "ERROR: Invalid selection" |
| ;; |
| esac |
| done |
| |
| if [ $runTest == true ] |
| then |
| printAggregate |
| fi |