zgrab2/integration_tests/smtp/test.sh
2019-01-18 13:33:23 -05:00

45 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
MODULE_DIR=$(dirname $0)
ZGRAB_ROOT=$MODULE_DIR/../..
ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output
mkdir -p $ZGRAB_OUTPUT/smtp
CONTAINER_NAME=zgrab_smtp
OUTPUT_ROOT="$ZGRAB_OUTPUT/smtp"
echo "smtp/test: Tests runner for smtp"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp > "$OUTPUT_ROOT/00.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-helo > "$OUTPUT_ROOT/helo.01.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-helo --helo-domain localhost > "$OUTPUT_ROOT/helo.02.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-ehlo > "$OUTPUT_ROOT/ehlo.03.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --ehlo-domain localhost > "$OUTPUT_ROOT/ehlo.04.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-ehlo --ehlo-domain localhost --send-quit > "$OUTPUT_ROOT/ehlo.quit.05.json"
CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh smtp --send-help --send-quit > "$OUTPUT_ROOT/help.quit.06.json"
# TODO: the qpsmtpd container does not support STARTTLS.
FIELDS="help quit helo ehlo"
status=0
for field in $FIELDS; do
for file in $(find $OUTPUT_ROOT -iname "*$field*.json"); do
echo "check $file for $field"
RESULT=$(jp data.smtp.result.$field < $file)
if [ "$RESULT" = "null" ]; then
echo "Did not find $field in $file [["
cat $file
echo "]]"
status=1
fi
done
done
# Dump the docker logs
echo "smtp/test: BEGIN docker logs from $CONTAINER_NAME [{("
docker logs --tail all $CONTAINER_NAME
echo ")}] END docker logs from $CONTAINER_NAME"
exit $status