proxy.py/tests/integration/main.sh

68 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# TODO: Option to also shutdown proxy.py after
# integration testing is done. Atleast on
# macOS and ubuntu, pkill and kill commands
# will do the job.
#
# For github action, we simply bank upon GitHub
# to clean up any background process including
# proxy.py
# Wait for server to come up
while true; do
if [[ $(lsof -i TCP:8899 | wc -l | tr -d ' ') == 0 ]]; then
echo "Waiting for proxy..."
sleep 1
else
break
fi
done
# Wait for http proxy and web server to start
while true; do
curl -v \
--max-time 1 \
--connect-timeout 1 \
-x localhost:8899 \
http://localhost:8899/ 2>/dev/null
if [[ $? == 0 ]]; then
break
fi
echo "Waiting for web server to start accepting requests..."
sleep 1
done
# Check if proxy was started with integration
# testing web server plugin. If detected, use
# internal web server for integration testing.
# If integration testing plugin is not found,
# detect if we have internet access. If we do,
# then use httpbin.org for integration testing.
curl -v \
-x localhost:8899 \
http://httpbin.org/get
if [[ $? != 0 ]]; then
echo "http request failed"
exit 1
fi
curl -v \
-x localhost:8899 \
https://httpbin.org/get
if [[ $? != 0 ]]; then
echo "https request failed"
exit 1
fi
curl -v \
-x localhost:8899 \
http://localhost:8899/
if [[ $? != 0 ]]; then
echo "http request to built in webserver failed"
exit 1
fi
exit 0