-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.sh
executable file
·42 lines (36 loc) · 1.24 KB
/
test.sh
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
#!/bin/bash
set -e
# build and run nsqlookupd
LOOKUP_LOGFILE=$(mktemp -t nsqlookupd.XXXXXXX)
echo "building and starting nsqlookupd"
echo " logging to $LOOKUP_LOGFILE"
go build -o apps/nsqlookupd/nsqlookupd ./apps/nsqlookupd/
apps/nsqlookupd/nsqlookupd >$LOOKUP_LOGFILE 2>&1 &
LOOKUPD_PID=$!
# build and run nsqd configured to use our lookupd above
NSQD_LOGFILE=$(mktemp -t nsqd.XXXXXXX)
cmd="apps/nsqd/nsqd --data-path=/tmp --lookupd-tcp-address=127.0.0.1:4160 --tls-cert=nsqd/test/certs/cert.pem --tls-key=nsqd/test/certs/key.pem"
echo "building and starting $cmd"
echo " logging to $NSQD_LOGFILE"
go build -o apps/nsqd/nsqd ./apps/nsqd
$cmd >$NSQD_LOGFILE 2>&1 &
NSQD_PID=$!
sleep 0.3
cleanup() {
echo "killing nsqd PID $NSQD_PID"
kill -s TERM $NSQD_PID || cat $NSQD_LOGFILE
echo "killing nsqlookupd PID $LOOKUPD_PID"
kill -s TERM $LOOKUPD_PID || cat $LOOKUP_LOGFILE
}
trap cleanup INT TERM EXIT
go test -timeout 60s ./...
GOMAXPROCS=4 go test -timeout 60s -race ./...
# no tests, but a build is something
for dir in nsqadmin apps/* bench/*; do
if grep -q '^package main$' $dir/*.go ; then
echo "building $dir"
go build -o $dir/$(basename $dir) ./$dir
else
echo "WARNING: skipping go build in $dir"
fi
done