Project

General

Profile

Download (1.22 KB) Statistics
| Branch: | Revision:
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
(50-50/56)