mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-24 23:21:12 -05:00
2f0ac20566
Reduce the number of processes to 1 if at least one FIX_xxxx variable is set to true. This avoids that Parallel runs multiple processes that might edit the same file at the same time.
538 lines
16 KiB
Bash
Executable file
538 lines
16 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
# Default log level
|
|
# shellcheck disable=SC2034
|
|
LOG_LEVEL="DEBUG"
|
|
|
|
# shellcheck source=/dev/null
|
|
source "lib/functions/log.sh"
|
|
|
|
# shellcheck source=/dev/null
|
|
source "lib/functions/validation.sh"
|
|
|
|
function IsUnsignedIntegerSuccessTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
if ! IsUnsignedInteger 1; then
|
|
fatal "${FUNCTION_NAME} failed"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function IsUnsignedIntegerFailureTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
if IsUnsignedInteger "test"; then
|
|
fatal "${FUNCTION_NAME} failed"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
# In the current implementation, there is no return value to assert
|
|
function ValidateDeprecatedVariablesTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
ERROR_ON_MISSING_EXEC_BIT="true" \
|
|
ValidateDeprecatedVariables
|
|
EXPERIMENTAL_BATCH_WORKER="true" \
|
|
ValidateDeprecatedVariables
|
|
LOG_LEVEL="TRACE" \
|
|
ValidateDeprecatedVariables
|
|
LOG_LEVEL="VERBOSE" \
|
|
ValidateDeprecatedVariables
|
|
VALIDATE_JSCPD_ALL_CODEBASE="true" \
|
|
ValidateDeprecatedVariables
|
|
VALIDATE_KOTLIN_ANDROID="true" \
|
|
ValidateDeprecatedVariables
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateGitHubUrlsTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
# shellcheck disable=SC2034
|
|
DEFAULT_GITHUB_DOMAIN="github.com"
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN=
|
|
if ValidateGitHubUrls; then
|
|
fatal "Empty GITHUB_DOMAIN should have failed validation"
|
|
else
|
|
info "Empty GITHUB_DOMAIN passed validation"
|
|
fi
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="github.example.com"
|
|
if ! ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} should have passed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} passed validation"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="${DEFAULT_GITHUB_DOMAIN}"
|
|
if ! ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} should have passed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} passed validation"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
|
|
GITHUB_DOMAIN="github.example.com"
|
|
# shellcheck disable=SC2034
|
|
GITHUB_CUSTOM_API_URL="github.custom.api.url"
|
|
if ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_API_URL} should have failed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_API_URL} failed validation as expected"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
unset GITHUB_CUSTOM_API_URL
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="github.example.com"
|
|
GITHUB_CUSTOM_SERVER_URL="github.custom.server.url"
|
|
if ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_SERVER_URL} should have failed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_SERVER_URL} failed validation as expected"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
unset GITHUB_CUSTOM_SERVER_URL
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="${DEFAULT_GITHUB_DOMAIN}"
|
|
GITHUB_CUSTOM_API_URL="github.custom.api.url"
|
|
if ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_API_URL} should have failed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_API_URL} failed validation as expected"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
unset GITHUB_CUSTOM_API_URL
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="${DEFAULT_GITHUB_DOMAIN}"
|
|
GITHUB_CUSTOM_SERVER_URL="github.custom.server.url"
|
|
if ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_SERVER_URL} should have failed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN} and ${GITHUB_CUSTOM_SERVER_URL} failed validation as expected"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
unset GITHUB_CUSTOM_SERVER_URL
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_DOMAIN="${DEFAULT_GITHUB_DOMAIN}"
|
|
GITHUB_CUSTOM_API_URL="github.custom.api.url"
|
|
GITHUB_CUSTOM_SERVER_URL="github.custom.server.url"
|
|
if ! ValidateGitHubUrls; then
|
|
fatal "${GITHUB_DOMAIN}, ${GITHUB_CUSTOM_API_URL}, and ${GITHUB_CUSTOM_SERVER_URL} should have passed validation"
|
|
else
|
|
info "${GITHUB_DOMAIN}, ${GITHUB_CUSTOM_API_URL}, and ${GITHUB_CUSTOM_SERVER_URL} passed validation as expected"
|
|
fi
|
|
unset GITHUB_DOMAIN
|
|
unset GITHUB_CUSTOM_API_URL
|
|
unset GITHUB_CUSTOM_SERVER_URL
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateSuperLinterSummaryOutputPathTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
SUPER_LINTER_SUMMARY_OUTPUT_PATH="/non/existing/file"
|
|
if ValidateSuperLinterSummaryOutputPath; then
|
|
fatal "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} should have failed validation when SUPER_LINTER_SUMMARY_OUTPUT_PATH is set to a non-existing file"
|
|
else
|
|
info "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} failed validation as expected"
|
|
fi
|
|
unset SUPER_LINTER_SUMMARY_OUTPUT_PATH
|
|
|
|
SUPER_LINTER_SUMMARY_OUTPUT_PATH="$(pwd)"
|
|
if ValidateSuperLinterSummaryOutputPath; then
|
|
fatal "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} should have failed validation when SUPER_LINTER_SUMMARY_OUTPUT_PATH is set to a directory"
|
|
else
|
|
info "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} failed validation as expected"
|
|
fi
|
|
unset SUPER_LINTER_SUMMARY_OUTPUT_PATH
|
|
|
|
SUPER_LINTER_SUMMARY_OUTPUT_PATH="${0}"
|
|
if ! ValidateSuperLinterSummaryOutputPath; then
|
|
fatal "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} should have passed validation when SUPER_LINTER_SUMMARY_OUTPUT_PATH is set to a file"
|
|
else
|
|
info "SUPER_LINTER_SUMMARY_OUTPUT_PATH=${SUPER_LINTER_SUMMARY_OUTPUT_PATH} passed validation as expected"
|
|
fi
|
|
unset SUPER_LINTER_SUMMARY_OUTPUT_PATH
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateFindModeTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
USE_FIND_ALGORITHM="true"
|
|
VALIDATE_ALL_CODEBASE="false"
|
|
if ValidateFindMode; then
|
|
fatal "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} should have failed validation"
|
|
else
|
|
info "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} failed validation as expected"
|
|
fi
|
|
unset USE_FIND_ALGORITHM
|
|
unset VALIDATE_ALL_CODEBASE
|
|
|
|
USE_FIND_ALGORITHM="false"
|
|
VALIDATE_ALL_CODEBASE="false"
|
|
if ValidateFindMode; then
|
|
info "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} passed validation as expected"
|
|
else
|
|
fatal "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} should have passed validation"
|
|
fi
|
|
unset USE_FIND_ALGORITHM
|
|
unset VALIDATE_ALL_CODEBASE
|
|
|
|
USE_FIND_ALGORITHM="false"
|
|
VALIDATE_ALL_CODEBASE="true"
|
|
if ValidateFindMode; then
|
|
info "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} passed validation as expected"
|
|
else
|
|
fatal "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} should have passed validation"
|
|
fi
|
|
unset USE_FIND_ALGORITHM
|
|
unset VALIDATE_ALL_CODEBASE
|
|
|
|
USE_FIND_ALGORITHM="true"
|
|
VALIDATE_ALL_CODEBASE="true"
|
|
if ValidateFindMode; then
|
|
info "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} passed validation as expected"
|
|
else
|
|
fatal "USE_FIND_ALGORITHM=${USE_FIND_ALGORITHM}, VALIDATE_ALL_CODEBASE=${VALIDATE_ALL_CODEBASE} should have passed validation"
|
|
fi
|
|
unset USE_FIND_ALGORITHM
|
|
unset VALIDATE_ALL_CODEBASE
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateAnsibleDirectoryTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
# shellcheck disable=SC2034
|
|
GITHUB_WORKSPACE="/test-github-workspace"
|
|
|
|
ValidateAnsibleDirectory
|
|
EXPECTED_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}/ansible"
|
|
if [[ "${ANSIBLE_DIRECTORY:-}" != "${EXPECTED_ANSIBLE_DIRECTORY}" ]]; then
|
|
fatal "ANSIBLE_DIRECTORY (${ANSIBLE_DIRECTORY}) is not equal to the expected value: ${EXPECTED_ANSIBLE_DIRECTORY}"
|
|
fi
|
|
|
|
ANSIBLE_DIRECTORY="."
|
|
ValidateAnsibleDirectory
|
|
EXPECTED_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}"
|
|
if [[ "${ANSIBLE_DIRECTORY:-}" != "${EXPECTED_ANSIBLE_DIRECTORY}" ]]; then
|
|
fatal "ANSIBLE_DIRECTORY (${ANSIBLE_DIRECTORY}) is not equal to the expected value: ${EXPECTED_ANSIBLE_DIRECTORY}"
|
|
fi
|
|
|
|
INPUT_ANSIBLE_DIRECTORY="/custom-ansible-directory"
|
|
ANSIBLE_DIRECTORY="${INPUT_ANSIBLE_DIRECTORY}"
|
|
ValidateAnsibleDirectory
|
|
EXPECTED_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}${INPUT_ANSIBLE_DIRECTORY}"
|
|
if [[ "${ANSIBLE_DIRECTORY:-}" != "${EXPECTED_ANSIBLE_DIRECTORY}" ]]; then
|
|
fatal "ANSIBLE_DIRECTORY (${ANSIBLE_DIRECTORY}) is not equal to the expected value: ${EXPECTED_ANSIBLE_DIRECTORY}"
|
|
fi
|
|
|
|
INPUT_ANSIBLE_DIRECTORY="custom-ansible-directory"
|
|
ANSIBLE_DIRECTORY="${INPUT_ANSIBLE_DIRECTORY}"
|
|
ValidateAnsibleDirectory
|
|
EXPECTED_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}/${INPUT_ANSIBLE_DIRECTORY}"
|
|
if [[ "${ANSIBLE_DIRECTORY:-}" != "${EXPECTED_ANSIBLE_DIRECTORY}" ]]; then
|
|
fatal "ANSIBLE_DIRECTORY (${ANSIBLE_DIRECTORY}) is not equal to the expected value: ${EXPECTED_ANSIBLE_DIRECTORY}"
|
|
fi
|
|
|
|
unset GITHUB_WORKSPACE
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateValidationVariablesTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('A' 'B')
|
|
|
|
if ValidateValidationVariables; then
|
|
info "Providing no VALIDATE_xxx variables passed validation as expected"
|
|
else
|
|
fatal "Providing no VALIDATE_xxx variables should have passed validation"
|
|
fi
|
|
|
|
VALIDATE_A="true"
|
|
if ValidateValidationVariables; then
|
|
info "VALIDATE_A=${VALIDATE_A} passed validation as expected"
|
|
else
|
|
fatal "VALIDATE_A=${VALIDATE_A} should have passed validation"
|
|
fi
|
|
unset VALIDATE_A
|
|
|
|
# TODO: Refactor the ValidateBooleanVariable function to throw an error instead of a fatal
|
|
# VALIDATE_A="blah"
|
|
# if ! ValidateValidationVariables; then
|
|
# info "VALIDATE_A=${VALIDATE_A} failed validation as expected"
|
|
# else
|
|
# fatal "VALIDATE_A=${VALIDATE_A} should have failed validation"
|
|
# fi
|
|
# unset VALIDATE_A
|
|
|
|
VALIDATE_A="true"
|
|
VALIDATE_B="true"
|
|
if ValidateValidationVariables; then
|
|
info "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} passed validation as expected"
|
|
else
|
|
fatal "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} should have passed validation"
|
|
fi
|
|
unset VALIDATE_A
|
|
unset VALIDATE_B
|
|
|
|
VALIDATE_A="false"
|
|
VALIDATE_B="false"
|
|
if ValidateValidationVariables; then
|
|
info "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} passed validation as expected"
|
|
else
|
|
fatal "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} should have passed validation"
|
|
fi
|
|
unset VALIDATE_A
|
|
unset VALIDATE_B
|
|
|
|
VALIDATE_A="true"
|
|
VALIDATE_B="false"
|
|
if ! ValidateValidationVariables; then
|
|
info "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} failed validation as expected"
|
|
else
|
|
fatal "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} should have failed validation"
|
|
fi
|
|
unset VALIDATE_A
|
|
unset VALIDATE_B
|
|
|
|
VALIDATE_A="false"
|
|
VALIDATE_B="true"
|
|
if ! ValidateValidationVariables; then
|
|
info "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} failed validation as expected"
|
|
else
|
|
fatal "VALIDATE_A=${VALIDATE_A}, VALIDATE_B=${VALIDATE_B} should have failed validation"
|
|
fi
|
|
unset VALIDATE_A
|
|
unset VALIDATE_B
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidationVariablesExportTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('A' 'B')
|
|
|
|
ValidateValidationVariables
|
|
|
|
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"; do
|
|
local -n VALIDATE_LANGUAGE
|
|
VALIDATE_LANGUAGE="VALIDATE_${LANGUAGE}"
|
|
debug "VALIDATE_LANGUAGE (Language: ${LANGUAGE}) variable attributes: ${VALIDATE_LANGUAGE@a}"
|
|
if [[ "${VALIDATE_LANGUAGE@a}" == *x* ]]; then
|
|
info "VALIDATE_LANGUAGE for ${LANGUAGE} is exported as expected"
|
|
else
|
|
fatal "VALIDATE_LANGUAGE for ${LANGUAGE} should have been exported"
|
|
fi
|
|
unset -n VALIDATE_LANGUAGE
|
|
done
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function ValidateCheckModeAndFixModeVariablesTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('A' 'B' 'C' 'D')
|
|
# shellcheck disable=SC2034
|
|
A_FIX_MODE_OPTIONS=(--fixA)
|
|
# shellcheck disable=SC2034
|
|
A_CHECK_ONLY_MODE_OPTIONS=(--checkA)
|
|
# shellcheck disable=SC2034
|
|
B_FIX_MODE_OPTIONS=(--fixB)
|
|
# shellcheck disable=SC2034
|
|
C_CHECK_ONLY_MODE_OPTIONS=(--checkC)
|
|
|
|
# shellcheck disable=SC2034
|
|
VALIDATE_A="true"
|
|
# shellcheck disable=SC2034
|
|
VALIDATE_B="true"
|
|
# shellcheck disable=SC2034
|
|
VALIDATE_C="true"
|
|
# shellcheck disable=SC2034
|
|
FIX_B="true"
|
|
|
|
if ! ValidateCheckModeAndFixModeVariables; then
|
|
fatal "Error while validating fix mode variables"
|
|
fi
|
|
|
|
if [[ -v FIX_A ]]; then
|
|
debug "FIX_A variable is defined as expected"
|
|
else
|
|
fatal "FIX_A variable should have been defined"
|
|
fi
|
|
|
|
EXPECTED_FIX_A="false"
|
|
if [[ "${FIX_A}" == "${EXPECTED_FIX_A}" ]]; then
|
|
debug "FIX_A variable has the expected value: ${FIX_A}"
|
|
else
|
|
fatal "FIX_A (${FIX_A}) doesn't match with the expected value: ${EXPECTED_FIX_A}"
|
|
fi
|
|
|
|
if [[ -v FIX_C ]]; then
|
|
debug "FIX_C variable is defined as expected"
|
|
else
|
|
fatal "FIX_C variable should have been defined"
|
|
fi
|
|
|
|
EXPECTED_FIX_C="false"
|
|
if [[ "${FIX_C}" == "${EXPECTED_FIX_C}" ]]; then
|
|
debug "FIX_C variable has the expected value: ${FIX_C}"
|
|
else
|
|
fatal "FIX_C (${FIX_C}) doesn't match with the expected value: ${EXPECTED_FIX_C}"
|
|
fi
|
|
|
|
# No need to check if FIX_B is defined because we defined it earlier in this test function
|
|
|
|
if [[ ! -v FIX_D ]]; then
|
|
debug "FIX_D is not defined as expected"
|
|
else
|
|
fatal "FIX_D variable should have not been defined"
|
|
fi
|
|
|
|
debug "FIX_A variable attributes: ${FIX_A@a}"
|
|
if [[ "${FIX_A@a}" == *x* ]]; then
|
|
debug "FIX_A is exported as expected"
|
|
else
|
|
fatal "FIX_A should have been exported"
|
|
fi
|
|
|
|
debug "FIX_B variable attributes: ${FIX_B@a}"
|
|
if [[ "${FIX_B@a}" == *x* ]]; then
|
|
debug "FIX_B is exported as expected"
|
|
else
|
|
fatal "FIX_B should have been exported"
|
|
fi
|
|
|
|
debug "FIX_C variable attributes: ${FIX_C@a}"
|
|
if [[ "${FIX_C@a}" == *x* ]]; then
|
|
debug "FIX_C is exported as expected"
|
|
else
|
|
fatal "FIX_C should have been exported"
|
|
fi
|
|
|
|
unset FIX_A
|
|
unset FIX_B
|
|
unset FIX_C
|
|
unset FIX_D
|
|
unset VALIDATE_A
|
|
unset VALIDATE_B
|
|
unset VALIDATE_C
|
|
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('E')
|
|
# shellcheck disable=SC2034
|
|
E_FIX_MODE_OPTIONS=(--fixA)
|
|
FIX_E="true"
|
|
VALIDATE_E="false"
|
|
|
|
if ValidateCheckModeAndFixModeVariables; then
|
|
fatal "FIX_E (${FIX_E}) and VALIDATE_E (${VALIDATE_E}) should have failed validation"
|
|
else
|
|
debug "FIX_E (${FIX_E}) and VALIDATE_E (${VALIDATE_E}) failed validation as expected"
|
|
fi
|
|
|
|
unset FIX_E
|
|
unset VALIDATE_E
|
|
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('F')
|
|
FIX_F="true"
|
|
|
|
if ValidateCheckModeAndFixModeVariables; then
|
|
fatal "FIX_F (${FIX_F}) should have failed validation when it doesn't support fix mode or check only mode"
|
|
else
|
|
debug "FIX_F (${FIX_F}) failed validation as expected when it doesn't support fix mode or check only mode"
|
|
fi
|
|
|
|
unset FIX_F
|
|
unset VALIDATE_F
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
CheckIfFixModeIsEnabledTest() {
|
|
# shellcheck disable=SC2034
|
|
LANGUAGE_ARRAY=('A')
|
|
|
|
FIX_MODE_ENABLED="false"
|
|
FIX_A="true"
|
|
CheckIfFixModeIsEnabled
|
|
EXPECTED_FIX_MODE_ENABLED="true"
|
|
if [[ "${FIX_MODE_ENABLED}" == "${EXPECTED_FIX_MODE_ENABLED}" ]]; then
|
|
debug "FIX_MODE_ENABLED variable has the expected value: ${FIX_MODE_ENABLED}"
|
|
else
|
|
fatal "FIX_MODE_ENABLED (${FIX_MODE_ENABLED}) doesn't match with the expected value: ${EXPECTED_FIX_MODE_ENABLED}"
|
|
fi
|
|
|
|
FIX_MODE_ENABLED="false"
|
|
FIX_A="false"
|
|
CheckIfFixModeIsEnabled
|
|
EXPECTED_FIX_MODE_ENABLED="false"
|
|
if [[ "${FIX_MODE_ENABLED}" == "${EXPECTED_FIX_MODE_ENABLED}" ]]; then
|
|
debug "FIX_MODE_ENABLED variable has the expected value: ${FIX_MODE_ENABLED}"
|
|
else
|
|
fatal "FIX_MODE_ENABLED (${FIX_MODE_ENABLED}) doesn't match with the expected value: ${EXPECTED_FIX_MODE_ENABLED}"
|
|
fi
|
|
|
|
}
|
|
|
|
IsUnsignedIntegerSuccessTest
|
|
IsUnsignedIntegerFailureTest
|
|
ValidateDeprecatedVariablesTest
|
|
ValidateGitHubUrlsTest
|
|
ValidateSuperLinterSummaryOutputPathTest
|
|
ValidateFindModeTest
|
|
ValidateAnsibleDirectoryTest
|
|
ValidateValidationVariablesTest
|
|
ValidationVariablesExportTest
|
|
ValidateCheckModeAndFixModeVariablesTest
|
|
CheckIfFixModeIsEnabledTest
|