summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-06-08 07:00:08 +0000
committerEric Wong <normalperson@yhbt.net>2010-06-08 07:00:08 +0000
commit2760d1e0d459a8e92eadf78cdf9f09d6a3109003 (patch)
tree57df2907f32e5eaedac9eb927a60ee2e685ad367
parent9110e76b36e224434aaa853625844f3b1ad69ae1 (diff)
In parallel with other of Rubies, of course.  We need to rely on
RUBY_ENGINE since RUBY_VERSION is 1.8.7 and that conflicts with
the most popular MRI version.

Since Rubinius doesn't support some command-line options, we
still need to rely on MRI for a few things.  Also fixing an
embarrassing UUoC in the process.
-rw-r--r--.gitignore3
-rw-r--r--GNUmakefile13
-rw-r--r--t/GNUmakefile7
-rw-r--r--t/test-lib.sh3
4 files changed, 17 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 9697ef3..78a2a53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,8 @@
 /InstalledFiles
 /doc
 /local.mk
-/test/install-*
+/test/rbx-*
+/test/ruby-*
 ext/unicorn_http/Makefile
 ext/unicorn_http/unicorn_http.c
 log/
diff --git a/GNUmakefile b/GNUmakefile
index 35df2f2..c37347f 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -5,6 +5,7 @@ GIT_URL = git://git.bogomips.org/unicorn.git
 RLFLAGS = -G2
 
 # lower-case vars are deprecated
+MRI = ruby
 RUBY = ruby
 RAKE = rake
 RAGEL = ragel
@@ -21,20 +22,22 @@ ifeq ($(RUBY_VERSION),)
   RUBY_VERSION := $(shell $(RUBY) -e 'puts RUBY_VERSION')
 endif
 
+RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
+
 # dunno how to implement this as concisely in Ruby, and hell, I love awk
 awk_slow := awk '/def test_/{print FILENAME"--"$$2".n"}' 2>/dev/null
 
 rails_vers := $(subst test/rails/app-,,$(wildcard test/rails/app-*))
 slow_tests := test/unit/test_server.rb test/exec/test_exec.rb \
   test/unit/test_signals.rb test/unit/test_upload.rb
-log_suffix = .$(RUBY_VERSION).log
+log_suffix = .$(RUBY_ENGINE).$(RUBY_VERSION).log
 T_r := $(wildcard test/rails/test*.rb)
 T := $(filter-out $(slow_tests) $(T_r), $(wildcard test/*/test*.rb))
 T_n := $(shell $(awk_slow) $(slow_tests))
 T_log := $(subst .rb,$(log_suffix),$(T))
 T_n_log := $(subst .n,$(log_suffix),$(T_n))
 T_r_log := $(subst .r,$(log_suffix),$(T_r))
-test_prefix = $(CURDIR)/test/install-$(RUBY_VERSION)
+test_prefix = $(CURDIR)/test/$(RUBY_ENGINE)-$(RUBY_VERSION)
 
 ext := ext/unicorn_http
 c_files := $(ext)/unicorn_http.c $(wildcard $(ext)/*.h)
@@ -65,16 +68,16 @@ $(test_prefix)/.stamp: $(inst_deps)
         tar cf - $(inst_deps) GIT-VERSION-GEN | \
           (cd $(test_prefix) && tar xf -)
         $(MAKE) -C $(test_prefix) clean
-        $(MAKE) -C $(test_prefix) http shebang
+        $(MAKE) -C $(test_prefix) http shebang RUBY="$(RUBY)"
         > $@
 
 # this is only intended to be run within $(test_prefix)
 shebang: $(bins)
-        $(RUBY) -i -p -e '$$_.gsub!(%r{^#!.*$$},"#!$(ruby_bin)")' $^
+        $(MRI) -i -p -e '$$_.gsub!(%r{^#!.*$$},"#!$(ruby_bin)")' $^
 
 t_log := $(T_log) $(T_n_log)
 test: $(T) $(T_n)
-        @cat $(t_log) | $(RUBY) test/aggregate.rb
+        @$(MRI) test/aggregate.rb < $(t_log)
         @$(RM) $(t_log)
 
 test-exec: $(wildcard test/exec/test_*.rb)
diff --git a/t/GNUmakefile b/t/GNUmakefile
index 0d4a4b4..e80c43a 100644
--- a/t/GNUmakefile
+++ b/t/GNUmakefile
@@ -14,12 +14,15 @@ ifeq ($(RUBY_VERSION),)
   $(error unable to detect RUBY_VERSION)
 endif
 
+RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
+export RUBY_ENGINE
+
 T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
 
 all:: $(T)
 
 # can't rely on "set -o pipefail" since we don't require bash or ksh93 :<
-t_pfx = trash/$@-$(RUBY_VERSION)
+t_pfx = trash/$@-$(RUBY_ENGINE)-$(RUBY_VERSION)
 TEST_OPTS =
 # TRACER = strace -f -o $(t_pfx).strace -s 100000
 # TRACER = /usr/bin/time -o $(t_pfx).time
@@ -48,7 +51,7 @@ $(deps):
         @mv $@.$(pid) $@
 dep: $(deps)
 
-test_prefix := $(CURDIR)/../test/install-$(RUBY_VERSION)
+test_prefix := $(CURDIR)/../test/$(RUBY_ENGINE)-$(RUBY_VERSION)
 $(test_prefix)/.stamp:
         $(MAKE) -C .. test-install
 
diff --git a/t/test-lib.sh b/t/test-lib.sh
index e5c4b2f..22497f3 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -7,7 +7,8 @@ set +u
 set -e
 RUBY="${RUBY-ruby}"
 RUBY_VERSION=${RUBY_VERSION-$($RUBY -e 'puts RUBY_VERSION')}
-t_pfx=$PWD/trash/$T-$RUBY_VERSION
+RUBY_ENGINE=${RUBY_ENGINE-$($RUBY -e 'puts((RUBY_ENGINE rescue "ruby"))')}
+t_pfx=$PWD/trash/$T-$RUBY_ENGINE-$RUBY_VERSION
 set -u
 
 PATH=$PWD/bin:$PATH