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