diff --git a/test/bulk.sh b/test/bulk.sh index ecd91a9..4b7a952 100755 --- a/test/bulk.sh +++ b/test/bulk.sh @@ -1,36 +1,55 @@ #!/usr/bin/env bash +hostname="crafatar.com" async="true" +random="false" interval="0.1" -if [ "$1" = "-s" ]; then - async="" - shift -elif [ "$1" = "-i" ]; then - interval="$2" - shift 2 -fi -host="$1" -shift -if [ -z "$host" ] || [ ! -z "$@" ]; then - echo "Usage: $0 [-s | -i ] " - exit 1 -fi -# insert newline after uuids -ids="$(cat 'uuids.txt')" -# `brew install coreutils` on OS X -ids="$(shuf <<< "$ids" 2>/dev/null || gshuf <<< "$ids")" +usage() { + echo "Usage: $0 [-s | -r | -i | -h ]... " >&2 + exit 1 +} + +get_ids() { + local shuf + if [ "$random" = "true" ]; then + while true; do uuid -v 4; done + else + # `brew install coreutils` on OS X for gshuf + shuf=$(command -v shuf gshuf) + # randomize ids + $shuf < uuids.txt + fi +} bulk() { - trap return INT - echo "$ids" | while read id; do - if [ -z "$async" ]; then - curl -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" + trap return INT # return from this function on Ctrl+C + get_ids | while read id; do + if [ "$async" = "false" ]; then + curl -H "Host: $hostname" -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" else - curl -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" & + curl -H "Host: $hostname" -sSL -o /dev/null -w "%{url_effective} %{http_code} %{time_total}s\\n" -- "$host/avatars/$id?overlay" & sleep "$interval" fi done } +while [ $# != 0 ]; do + case "$1" in + -s) + async="false";; + -r) + random="true";; + -i) + interval="$2" + shift;; + *) + [ -n "$host" ] && usage + host="$1";; + esac + shift +done + +[ -z "$host" ] && usage + time bulk \ No newline at end of file diff --git a/test/uuids.txt b/test/uuids.txt index 35319a7..0402f6a 100644 --- a/test/uuids.txt +++ b/test/uuids.txt @@ -4424,4 +4424,4 @@ ffdd082bf54e415b943a8713f2885913 ffe0be5f0cab4b3785f67974c23660bb ffe3d4c861354928b932794d85a30567 ffe72a222ac9463d81d3ee5eafb7f68e -fff854a189644f12b92764fdb4573f8b \ No newline at end of file +fff854a189644f12b92764fdb4573f8b