diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | GNUmakefile | 13 | ||||
-rw-r--r-- | t/GNUmakefile | 7 | ||||
-rw-r--r-- | t/test-lib.sh | 3 |
4 files changed, 17 insertions, 9 deletions
@@ -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 |