1*1b3f573fSAndroid Build Coastguard Worker#!/bin/bash 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workercd $(dirname $0) 4*1b3f573fSAndroid Build Coastguard Worker 5*1b3f573fSAndroid Build Coastguard Workerset -e 6*1b3f573fSAndroid Build Coastguard Worker 7*1b3f573fSAndroid Build Coastguard WorkerPORT=12345 8*1b3f573fSAndroid Build Coastguard WorkerTIMEOUT=10 9*1b3f573fSAndroid Build Coastguard Worker 10*1b3f573fSAndroid Build Coastguard Worker./compile_extension.sh 11*1b3f573fSAndroid Build Coastguard Worker 12*1b3f573fSAndroid Build Coastguard Workerrun_test() { 13*1b3f573fSAndroid Build Coastguard Worker echo 14*1b3f573fSAndroid Build Coastguard Worker echo "Running multirequest test, args: $@" 15*1b3f573fSAndroid Build Coastguard Worker 16*1b3f573fSAndroid Build Coastguard Worker RUN_UNDER="" 17*1b3f573fSAndroid Build Coastguard Worker EXTRA_ARGS="" 18*1b3f573fSAndroid Build Coastguard Worker ARGS="-d xdebug.profiler_enable=0 -d display_errors=on -dextension=../ext/google/protobuf/modules/protobuf.so" 19*1b3f573fSAndroid Build Coastguard Worker 20*1b3f573fSAndroid Build Coastguard Worker for i in "$@"; do 21*1b3f573fSAndroid Build Coastguard Worker case $i in 22*1b3f573fSAndroid Build Coastguard Worker --valgrind) 23*1b3f573fSAndroid Build Coastguard Worker RUN_UNDER="valgrind --error-exitcode=1" 24*1b3f573fSAndroid Build Coastguard Worker shift 25*1b3f573fSAndroid Build Coastguard Worker ;; 26*1b3f573fSAndroid Build Coastguard Worker --keep_descriptors) 27*1b3f573fSAndroid Build Coastguard Worker EXTRA_ARGS=-dprotobuf.keep_descriptor_pool_after_request=1 28*1b3f573fSAndroid Build Coastguard Worker shift 29*1b3f573fSAndroid Build Coastguard Worker ;; 30*1b3f573fSAndroid Build Coastguard Worker esac 31*1b3f573fSAndroid Build Coastguard Worker done 32*1b3f573fSAndroid Build Coastguard Worker 33*1b3f573fSAndroid Build Coastguard Worker export ZEND_DONT_UNLOAD_MODULES=1 34*1b3f573fSAndroid Build Coastguard Worker export USE_ZEND_ALLOC=0 35*1b3f573fSAndroid Build Coastguard Worker rm -f nohup.out 36*1b3f573fSAndroid Build Coastguard Worker nohup $RUN_UNDER php $ARGS $EXTRA_ARGS -S localhost:$PORT multirequest.php >nohup.out 2>&1 & 37*1b3f573fSAndroid Build Coastguard Worker PID=$! 38*1b3f573fSAndroid Build Coastguard Worker 39*1b3f573fSAndroid Build Coastguard Worker if ! timeout $TIMEOUT bash -c "until echo > /dev/tcp/localhost/$PORT; do sleep 0.1; done" > /dev/null 2>&1; then 40*1b3f573fSAndroid Build Coastguard Worker echo "Server failed to come up after $TIMEOUT seconds" 41*1b3f573fSAndroid Build Coastguard Worker cat nohup.out 42*1b3f573fSAndroid Build Coastguard Worker exit 1 43*1b3f573fSAndroid Build Coastguard Worker fi 44*1b3f573fSAndroid Build Coastguard Worker 45*1b3f573fSAndroid Build Coastguard Worker seq 2 | xargs -I{} wget -nv http://localhost:$PORT/multirequest.result -O multirequest{}.result 46*1b3f573fSAndroid Build Coastguard Worker REQUESTS_SUCCEEDED=$? 47*1b3f573fSAndroid Build Coastguard Worker 48*1b3f573fSAndroid Build Coastguard Worker 49*1b3f573fSAndroid Build Coastguard Worker if kill $PID > /dev/null 2>&1 && [[ $REQUESTS_SUCCEEDED == "0" ]]; then 50*1b3f573fSAndroid Build Coastguard Worker wait 51*1b3f573fSAndroid Build Coastguard Worker echo "Multirequest test SUCCEEDED" 52*1b3f573fSAndroid Build Coastguard Worker else 53*1b3f573fSAndroid Build Coastguard Worker echo "Multirequest test FAILED" 54*1b3f573fSAndroid Build Coastguard Worker cat nohup.out 55*1b3f573fSAndroid Build Coastguard Worker exit 1 56*1b3f573fSAndroid Build Coastguard Worker fi 57*1b3f573fSAndroid Build Coastguard Worker} 58*1b3f573fSAndroid Build Coastguard Worker 59*1b3f573fSAndroid Build Coastguard Workerrun_test 60*1b3f573fSAndroid Build Coastguard Workerrun_test --keep_descriptors 61*1b3f573fSAndroid Build Coastguard Workerrun_test --valgrind 62*1b3f573fSAndroid Build Coastguard Workerrun_test --valgrind --keep_descriptors 63