68 lines
1.5 KiB
Bash
68 lines
1.5 KiB
Bash
![]() |
#!/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
|