#!/usr/bin/env bash set -e MODULE_DIR=$(dirname $0) ZGRAB_ROOT=$MODULE_DIR/../.. ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/pop3 CONTAINER_NAME=zgrab_pop3 OUTPUT_ROOT=$ZGRAB_OUTPUT/pop3 echo "pop3/test: Tests runner for pop3" CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 > $OUTPUT_ROOT/banner.json CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 --send-quit > $OUTPUT_ROOT/banner.quit.json CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 --send-help --send-quit > $OUTPUT_ROOT/help.banner.quit.json CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 --send-noop --send-help --send-quit > $OUTPUT_ROOT/noop.help.banner.quit.json # TODO: the pop3 container does not support STARTTLS; they suggest # wrapping it in stunnel (which would handle the --pop3s case). FIELDS="help quit banner noop" 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.pop3.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 "pop3/test: BEGIN docker logs from $CONTAINER_NAME [{(" docker logs --tail all $CONTAINER_NAME echo ")}] END docker logs from $CONTAINER_NAME"