zgrab2/integration_tests/pop3/test.sh

42 lines
1.4 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/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"