Manuel Pégourié-Gonnard | 4d5cc11 | 2014-11-25 12:21:48 +0100 | [diff] [blame^] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Measure memory usage of a minimal client using a small configuration |
| 4 | # Currently hardwired to the ccm-psk configuration, may be expanded later |
| 5 | |
| 6 | set -eu |
| 7 | |
| 8 | CONFIG_H='include/polarssl/config.h' |
| 9 | CLIENT='mini_client' |
| 10 | |
| 11 | if [ -r $CONFIG_H ]; then :; else |
| 12 | echo "$CONFIG_H not found" >&2 |
| 13 | exit 1 |
| 14 | fi |
| 15 | |
| 16 | CONFIG_BAK=${CONFIG_H}.bak |
| 17 | cp $CONFIG_H $CONFIG_BAK |
| 18 | |
| 19 | cp configs/config-ccm-psk-tls1_2.h $CONFIG_H |
| 20 | |
| 21 | printf "Executable size... " |
| 22 | |
| 23 | make clean |
| 24 | CFLAGS=-fno-asynchronous-unwind-tables make OFLAGS=-Os lib >/dev/null 2>&1 |
| 25 | cd programs |
| 26 | CFLAGS=-fno-asynchronous-unwind-tables make OFLAGS=-Os ssl/$CLIENT >/dev/null |
| 27 | strip ssl/$CLIENT |
| 28 | stat -c'%s' ssl/$CLIENT |
| 29 | cd .. |
| 30 | |
| 31 | printf "Peak ram usage... " |
| 32 | |
| 33 | make clean |
| 34 | CFLAGS=-g3 make OFLAGS=-Os lib >/dev/null 2>&1 |
| 35 | cd programs |
| 36 | CFLAGS=-g3 make OFLAGS=-Os ssl/$CLIENT ssl/ssl_server2 >/dev/null |
| 37 | cd .. |
| 38 | |
| 39 | rm -f massif.out.* |
| 40 | |
| 41 | programs/ssl/ssl_server2 psk=000102030405060708090A0B0C0D0E0F >/dev/null & |
| 42 | SRV_PID=$! |
| 43 | sleep 1; |
| 44 | |
| 45 | if valgrind --tool=massif --stacks=yes programs/ssl/$CLIENT > /dev/null 2>&1 |
| 46 | then |
| 47 | FAILED=0 |
| 48 | else |
| 49 | echo "client failed" >&2 |
| 50 | FAILED=1 |
| 51 | fi |
| 52 | |
| 53 | kill $SRV_PID |
| 54 | wait $SRV_PID |
| 55 | |
| 56 | scripts/massif_max.pl massif.out.* |
| 57 | |
| 58 | rm -f massif.out.* |
| 59 | mv $CONFIG_BAK $CONFIG_H |
| 60 | |
| 61 | exit $FAILED |