|
#!/bin/sh |
|
|
|
if [ "$1" = "" ]; then |
|
echo "Give me a server start cmd, example: $0 'python index.py production'" |
|
exit 1 |
|
fi |
|
|
|
file_map="iDuSh22faxqj:6q1d i0gZ322ututi: i7tit9c:6svq i4wk2oh: iRujgdfrkza: dkbdv7:" |
|
server_run_cmd="$1" |
|
test_server="http://localhost:3000" |
|
|
|
$server_run_cmd >/dev/null 2>&1 & |
|
server_pid=$! |
|
sleep 1 |
|
if ! kill -0 $server_pid 2>/dev/null; then |
|
echo "Starting server failed" |
|
exit 1 |
|
fi |
|
while ! curl -sm1 $test_server >/dev/null 2>&1; do sleep 1; done |
|
|
|
ln_fmt="%10s%10s%20s%15s\n" |
|
printf "$ln_fmt" RET FUN FID PWD |
|
has_error=0 |
|
for file in $file_map; do |
|
fid=${file%:*} |
|
pwd=${file#*:} |
|
url="$test_server/?url=https://wwbg.lanpw.com/$fid&pwd=$pwd" |
|
status_code=$(curl -sm5 -o /dev/null -I -w "%{http_code}" "$url&type=down") |
|
ret="OK" |
|
if [ "$status_code" != "302" ]; then |
|
ret="FAILED" |
|
has_error=1 |
|
fi |
|
printf "$ln_fmt" "$ret" DLOAD "$fid" "$pwd" |
|
|
|
ret="OK" |
|
json_repl=$(curl -sm5 "$url&type=json") |
|
code=$(echo "$json_repl" | grep -oP '"code":\K[^,]*') |
|
if [ "$code" != "200" ]; then |
|
ret="FAILED" |
|
has_error=1 |
|
fi |
|
printf "$ln_fmt" "$ret" GJSON "$fid" "$pwd" |
|
done |
|
|
|
if [ $has_error -eq 0 ]; then |
|
echo "All test passed" |
|
fi |
|
|
|
kill $server_pid 1>/dev/null 2>&1 |
|
exit $has_error |
|
|