-
Notifications
You must be signed in to change notification settings - Fork 112
/
test.sh
executable file
·147 lines (126 loc) · 4.93 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/sh
# Default install and test
# download nginx into ./build/
# build into ./build/nginx
# test on ./build/nginx
set -e
. ./nginx_version
# OS specific configuration
if [ `uname -s` = "NetBSD" ]; then
NPROCESSORS_ONLN="NPROCESSORS_ONLN"
NGINX_DEFAULT_OPT='--with-debug --with-http_stub_status_module --with-http_ssl_module --with-ld-opt=-L/usr/pkg/lib\ -Wl,-R/usr/pkg/lib --with-cc-opt=-g\ -O0\ -fno-common'
MAKE=gmake
KILLALL=pkill
PS_C="pgrep -l"
elif [ `uname -s` = "FreeBSD" ]; then
NPROCESSORS_ONLN="NPROCESSORS_ONLN"
NGINX_DEFAULT_OPT='--with-debug --with-http_stub_status_module --with-http_ssl_module --with-cc-opt=-g\ -O0\ -fno-common'
MAKE=gmake
KILLALL=pkill
PS_C="pgrep -l"
else
NPROCESSORS_ONLN="_NPROCESSORS_ONLN"
NGINX_DEFAULT_OPT='--with-debug --with-http_stub_status_module --with-http_ssl_module --with-cc-opt=-g\ -O0\ -fno-common'
MAKE=make
if [ -f /etc/centos-release ]; then
KILLALL=pkill
PS_C="pgrep -l"
else
KILLALL=killall
PS_C="ps -C"
fi
fi
if [ -n "$BUILD_DYNAMIC_MODULE" ]; then
BUILD_DIR='build_dynamic'
NGINX_INSTALL_DIR=`pwd`'/build_dynamic/nginx'
CONFIG_OPT="--enable-dynamic-module --with-build-dir=$BUILD_DIR"
else
BUILD_DIR='build'
NGINX_INSTALL_DIR=`pwd`'/build/nginx'
CONFIG_OPT="--with-build-dir=$BUILD_DIR"
fi
export NGINX_INSTALL_DIR # for test/t/ngx_mruby.rb
if [ $NGINX_SRC_MINOR -ge 11 -a $NGINX_SRC_PATCH -ge 5 ]; then
NGINX_CONFIG_OPT="--prefix=${NGINX_INSTALL_DIR} ${NGINX_DEFAULT_OPT} --with-stream"
elif [ $NGINX_SRC_MINOR -ge 11 -a $NGINX_SRC_PATCH -lt 5 ] || [ $NGINX_SRC_MINOR -eq 10 ] || [ $NGINX_SRC_MINOR -eq 9 -a $NGINX_SRC_PATCH -ge 6 ]; then
NGINX_CONFIG_OPT="--prefix=${NGINX_INSTALL_DIR} ${NGINX_DEFAULT_OPT} --with-stream --without-stream_access_module"
else
NGINX_CONFIG_OPT="--prefix=${NGINX_INSTALL_DIR} ${NGINX_DEFAULT_OPT}"
fi
if [ "$NUM_THREADS_ENV" != "" ]; then
NUM_THREADS=$NUM_THREADS_ENV
else
NUM_PROCESSORS=`getconf $NPROCESSORS_ONLN`
if [ $NUM_PROCESSORS -gt 1 ]; then
NUM_THREADS=$(expr $NUM_PROCESSORS / 2)
else
NUM_THREADS=1
fi
fi
echo "NGINX_CONFIG_OPT=$NGINX_CONFIG_OPT"
echo "NUM_THREADS=$NUM_THREADS"
export NGX_MRUBY_CFLAGS="-DMRB_GC_STRESS $NGX_MRUBY_CFLAGS"
if [ "$ONLY_BUILD_NGX_MRUBY" = "" ]; then
echo "nginx Downloading ..."
if [ -d "./${BUILD_DIR}" ]; then
echo "build directory was found"
else
mkdir ${BUILD_DIR}
fi
cd ${BUILD_DIR}
if [ ! -e ${NGINX_SRC_VER} ]; then
wget http://nginx.org/download/${NGINX_SRC_VER}.tar.gz
echo "nginx Downloading ... Done"
tar xzf ${NGINX_SRC_VER}.tar.gz
fi
ln -snf ${NGINX_SRC_VER} nginx_src
NGINX_SRC=`pwd`'/nginx_src'
cd ..
echo "ngx_mruby configure ..."
./configure ${CONFIG_OPT} --with-ngx-src-root=${NGINX_SRC} --with-ngx-config-opt="${NGINX_CONFIG_OPT}" $@
echo "ngx_mruby configure ... Done"
fi
echo "ngx_mruby building ..."
$MAKE NUM_THREADS=$NUM_THREADS -j $NUM_THREADS
echo "ngx_mruby building ... Done"
echo "ngx_mruby testing ..."
$MAKE install
$PS_C nginx 2>/dev/null && $KILLALL nginx
sed -e "s|__NGXDOCROOT__|${NGINX_INSTALL_DIR}/html/|g" test/conf/nginx.conf > ${NGINX_INSTALL_DIR}/conf/nginx.conf
cd ${NGINX_INSTALL_DIR}/html && sh -c 'yes "" | openssl req -new -days 365 -x509 -nodes -keyout localhost.key -out localhost.crt' && sh -c 'yes "" | openssl req -new -days 1 -x509 -nodes -keyout dummy.key -out dummy.crt' && cd -
if [ $NGINX_SRC_MINOR -ge 10 ] || [ $NGINX_SRC_MINOR -eq 9 -a $NGINX_SRC_PATCH -ge 6 ]; then
cat test/conf/nginx.stream.conf >> ${NGINX_INSTALL_DIR}/conf/nginx.conf
fi
if [ -n "$BUILD_DYNAMIC_MODULE" ]; then
sed -e "s|build/nginx|build_dynamic/nginx|g" ${NGINX_INSTALL_DIR}/conf/nginx.conf | tee ${NGINX_INSTALL_DIR}/conf/nginx.conf.tmp
echo "load_module modules/ngx_http_mruby_module.so;" > ${NGINX_INSTALL_DIR}/conf/nginx.conf
cat ${NGINX_INSTALL_DIR}/conf/nginx.conf.tmp >> ${NGINX_INSTALL_DIR}/conf/nginx.conf
fi
cp -pr test/html/* ${NGINX_INSTALL_DIR}/html/.
sed -e "s|__NGXDOCROOT__|${NGINX_INSTALL_DIR}/html/|g" test/html/set_ssl_cert_and_key.rb > ${NGINX_INSTALL_DIR}/html/set_ssl_cert_and_key.rb
for f in error.log access.log stderr.log
do
if [ -e ${NGINX_INSTALL_DIR}/logs/${f} ]; then
touch ${NGINX_INSTALL_DIR}/logs/${f}.bak
cat ${NGINX_INSTALL_DIR}/logs/${f} >> ${NGINX_INSTALL_DIR}/logs/${f}.bak
cp /dev/null ${NGINX_INSTALL_DIR}/logs/${f}
fi
done
: ${NGINX_RUNNER:=exec}
: ${NGINX_HEATTIME:=2}
echo "====================================="
echo ""
echo "ngx_mruby starting and logging"
echo ""
echo "====================================="
echo ""
echo ""
${NGINX_RUNNER} ${NGINX_INSTALL_DIR}/sbin/nginx &
nginx_pid=$!
trap "kill $nginx_pid; wait" EXIT
echo ""
echo ""
sleep ${NGINX_HEATTIME} # waiting for nginx
./mruby/build/test/bin/mruby ./test/t/ngx_mruby.rb 2> ${NGINX_INSTALL_DIR}/logs/stderr.log
echo "ngx_mruby testing ... Done"
echo "test.sh ... successful"