]> andersk Git - test.git/blob - stresstest.sh
Use 2048-bit RSA keys for auto-generated certificates.
[test.git] / stresstest.sh
1 #!/bin/bash -e
2
3 PORT=4201
4 PIDFILE=stresstest.pid
5
6 rm -f "${PIDFILE}"
7 trap '[ -r "${PIDFILE}" ] && kill "$(cat "${PIDFILE}")"; rm -f "${PIDFILE}"'  \
8      EXIT INT TERM QUIT HUP
9
10 ./shellinaboxd -p "${PORT}" -s "/:$(id -u):$(id -g):${PWD}:/bin/bash -c       \
11                'while read i; do [ -z "${i}" ] && break; echo \" $i\"; done'" \
12                --background="${PIDFILE}"
13
14 session() {
15   local data="$(wget -O- --post-data='' --quiet "http://localhost:${PORT}/")"
16   local session="${data##*\"session\":\"}"
17   session="${session%%\"*}"
18   while read -r i; do
19     local keys="$(echo -n "${i}" | od -tx1 -An -w1000)"
20     wget -O/dev/null --post-data="session=${session}&keys=${keys// /}"        \
21                      --quiet "http://localhost:${PORT}/"
22     kill -0 "$(cat "${PIDFILE}")" || break
23     [ -z "$i" ] && break
24     data="$(wget -O- --post-data="session=${session}"                         \
25                  --quiet "http://localhost:${PORT}/")"
26     data=${data##*\"data\":\"}
27     data=${data%%\"*}
28     echo "${data}"
29   done <<'EOF'
30 Hello world
31 This is a test
32 OK, that's it for now
33
34 EOF
35 }
36
37 pids=""
38 for i in `seq 100`; do
39   session &
40   pids="${pids} $!"
41   sleep 0.02
42   kill -0 "$(cat "${PIDFILE}")" || break
43 done
44 wait $pids >&/dev/null
This page took 0.176775 seconds and 5 git commands to generate.