From 37687e027233072582c28bdd1530047a40ef7869 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 11 Jun 2010 02:27:49 +0000 Subject: alt working_directory test from Unicorn --- t/t0015-working_directory.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 t/t0015-working_directory.sh diff --git a/t/t0015-working_directory.sh b/t/t0015-working_directory.sh new file mode 100755 index 0000000..4810252 --- /dev/null +++ b/t/t0015-working_directory.sh @@ -0,0 +1,56 @@ +#!/bin/sh +if test -n "$RBX_SKIP" +then + echo "$0 is broken under Rubinius for now" + exit 0 +fi +. ./test-lib.sh + +t_plan 4 "config.ru inside alt working_directory" + +t_begin "setup and start" && { + rainbows_setup + rtmpfiles unicorn_config_tmp + rm -rf $t_pfx.app + mkdir $t_pfx.app + + cat > $t_pfx.app/config.ru < $unicorn_config_tmp + + # the whole point of this exercise + echo "working_directory '$t_pfx.app'" >> $unicorn_config_tmp + + # allows ppid to be 1 in before_fork + echo "preload_app true" >> $unicorn_config_tmp + cat >> $unicorn_config_tmp <<\EOF +before_fork do |server,worker| + $master_ppid = Process.ppid # should be zero to detect daemonization +end +EOF + + mv $unicorn_config_tmp $unicorn_config + + # rely on --daemonize switch, no & or -D + rainbows -c $unicorn_config + rainbows_wait_start +} + +t_begin "hit with curl" && { + body=$(curl -sSf http://$listen/) +} + +t_begin "killing succeeds" && { + kill $rainbows_pid +} + +t_begin "response body ppid == 1 (daemonized)" && { + test "$body" -eq 1 +} + +t_done -- cgit v1.2.3-24-ge0c7