From 2760d1e0d459a8e92eadf78cdf9f09d6a3109003 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 8 Jun 2010 07:00:08 +0000 Subject: update test infrastructure to run Rubinius tests 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. --- .gitignore | 3 ++- GNUmakefile | 13 ++++++++----- t/GNUmakefile | 7 +++++-- t/test-lib.sh | 3 ++- 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 -- cgit v1.2.3-24-ge0c7