#!/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 --quit > $OUTPUT_ROOT/banner.quit.json CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 --help --quit > $OUTPUT_ROOT/help.banner.quit.json CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh pop3 -noop --help --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=$($ZGRAB_ROOT/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"