98 lines
3.4 KiB
Bash
Executable File
98 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
NORMAL=$(tput sgr0)
|
|
GREEN=$(tput setaf 2)
|
|
YELLOW=$(tput setaf 3)
|
|
RED=$(tput setaf 1)
|
|
|
|
function red() {
|
|
echo -e "$RED$*$NORMAL"
|
|
}
|
|
|
|
function green() {
|
|
echo -e "$GREEN$*$NORMAL"
|
|
}
|
|
|
|
function yellow() {
|
|
echo -e "$YELLOW$*$NORMAL"
|
|
}
|
|
|
|
return_code=0
|
|
|
|
TEST_PATH=${TEST_PATH:-"tests/data"}
|
|
|
|
yellow "\n*********************************************"
|
|
yellow "* Test successful scan download and parsing *"
|
|
yellow "*********************************************"
|
|
rm -rf /opt/VulnWhisperer/*
|
|
if vuln_whisperer -F -c configs/test.ini --mock --mock_dir "${TEST_PATH}"; then
|
|
green "\n✅ Passed: Test successful scan download and parsing"
|
|
else
|
|
red "\n❌ Failed: Test successful scan download and parsing"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
yellow "\n*********************************************"
|
|
yellow "* Test run with no scans to import *"
|
|
yellow "*********************************************"
|
|
if vuln_whisperer -F -c configs/test.ini --mock --mock_dir "${TEST_PATH}"; then
|
|
green "\n✅ Passed: Test run with no scans to import"
|
|
else
|
|
red "\n❌ Failed: Test run with no scans to import"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
yellow "\n*********************************************"
|
|
yellow "* Test one failed scan *"
|
|
yellow "*********************************************"
|
|
rm -rf /opt/VulnWhisperer/*
|
|
yellow "Removing ${TEST_PATH}/nessus/GET_scans_exports_164_download"
|
|
mv "${TEST_PATH}/nessus/GET_scans_exports_164_download"{,.bak}
|
|
if vuln_whisperer -F -c configs/test.ini --mock --mock_dir "${TEST_PATH}"; [[ $? -eq 1 ]]; then
|
|
green "\n✅ Passed: Test one failed scan"
|
|
else
|
|
red "\n❌ Failed: Test one failed scan"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
yellow "\n*********************************************"
|
|
yellow "* Test two failed scans *"
|
|
yellow "*********************************************"
|
|
rm -rf /opt/VulnWhisperer/*
|
|
yellow "Removing ${TEST_PATH}/qualys_vuln/scan_1553941061.87241"
|
|
mv "${TEST_PATH}/qualys_vuln/scan_1553941061.87241"{,.bak}
|
|
if vuln_whisperer -F -c configs/test.ini --mock --mock_dir "${TEST_PATH}"; [[ $? -eq 2 ]]; then
|
|
green "\n✅ Passed: Test two failed scans"
|
|
else
|
|
red "\n❌ Failed: Test two failed scans"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
yellow "\n*********************************************"
|
|
yellow "* Test only nessus with one failed scan *"
|
|
yellow "*********************************************"
|
|
rm -rf /opt/VulnWhisperer/*
|
|
if vuln_whisperer -F -c configs/test.ini -s nessus --mock --mock_dir "${TEST_PATH}"; [[ $? -eq 1 ]]; then
|
|
green "\n✅ Passed: Test only nessus with one failed scan"
|
|
else
|
|
red "\n❌ Failed: Test only nessus with one failed scan"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
yellow "*********************************************"
|
|
yellow "* Test only Qualys VM with one failed scan *"
|
|
yellow "*********************************************"
|
|
rm -rf /opt/VulnWhisperer/*
|
|
if vuln_whisperer -F -c configs/test.ini -s qualys_vuln --mock --mock_dir "${TEST_PATH}"; [[ $? -eq 1 ]]; then
|
|
green "\n✅ Passed: Test only Qualys VM with one failed scan"
|
|
else
|
|
red "\n❌ Failed: Test only Qualys VM with one failed scan"
|
|
((return_code = return_code + 1))
|
|
fi
|
|
|
|
# Restore the removed files
|
|
mv "${TEST_PATH}/qualys_vuln/scan_1553941061.87241.bak" "${TEST_PATH}/qualys_vuln/scan_1553941061.87241"
|
|
mv "${TEST_PATH}/nessus/GET_scans_exports_164_download.bak" "${TEST_PATH}/nessus/GET_scans_exports_164_download"
|
|
|
|
exit $return_code
|