File: run.sh

package info (click to toggle)
spring 88.0%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 41,524 kB
  • sloc: cpp: 343,114; ansic: 38,414; python: 12,257; java: 12,203; awk: 5,748; sh: 1,204; xml: 997; perl: 405; objc: 192; makefile: 181; php: 134; sed: 2
file content (63 lines) | stat: -rwxr-xr-x 1,159 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh

set -e # abort on error

if [ $# -le 0 ]; then
	echo "Usage: $0 /path/to/spring testScript [parameters]"
	exit 1
fi


if [ ! -x "$1" ]; then
	echo "Parameter 1 $1 isn't executable!"
	exit 1
fi

RUNCLIENT=test/validation/run-client.sh

if [ ! -x $RUNCLIENT ]; then
	echo "$RUNCLIENT doesn't exist, please run from the source-root directory"
	exit 1
fi

GDBCMDS=$(mktemp)
(
	echo file $1
	echo run $2 $3 $4 $5 $6 $7 $8 $9
	echo bt full
	echo quit
)>$GDBCMDS

# limit to 1GB RAM
ulimit -v 1000000
# max 15 min cpu time
ulimit -t 900

# FIXME: remove old caching files, the client-script would start immediately when they exist
# maybe a foreign directory for the client is the cleanest way...
rm -rf ~/.spring/cache/paths

# start up the client in background
$RUNCLIENT $1 &
PID=$!

set +e #temp disable abort on error
gdb -batch -return-child-result -x $GDBCMDS
# store exit code
EXIT=$?
set -e

# cleanup
rm -f $GDBCMDS

# get spring client process exit code / wait for exit
wait $PID
EXITCHILD=$?
# wait for client to exit
if [ $EXITCHILD -ne 0 ];
then
	echo "Error: Spring-client exited with error code $EXITCHILD"
	exit $EXITCHILD
fi
exit $EXIT