diff --git a/common.mk b/common.mk index 49f5ed06ad..75411e1c0c 100644 --- a/common.mk +++ b/common.mk @@ -143,6 +143,7 @@ PRE_LIBRUBY_UPDATE = $(MINIRUBY) -e 'ARGV[1] or File.unlink(ARGV[0]) rescue nil' $(LIBRUBY_EXTS) $(LIBRUBY_SO_UPDATE) TESTSDIR = $(srcdir)/test +TEST_EXCLUDES = --excludes=$(TESTSDIR)/excludes TESTWORKDIR = testwork TESTRUN_SCRIPT = $(srcdir)/test.rb @@ -574,7 +575,7 @@ test: test-sample btest-ruby test-knownbug test-all: $(TEST_RUNNABLE)-test-all yes-test-all: prog PHONY - $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TESTOPTS) $(TESTS) + $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS) TESTS_BUILD = mkmf no-test-all: PHONY $(MINIRUBY) -I"$(srcdir)/lib" "$(srcdir)/test/runner.rb" $(TESTOPTS) $(TESTS_BUILD) diff --git a/test/excludes/TestException.rb b/test/excludes/TestException.rb new file mode 100644 index 0000000000..78ee4ca1c0 --- /dev/null +++ b/test/excludes/TestException.rb @@ -0,0 +1,8 @@ +reason = %[\ +Because machine stack overflow can happen anywhere, even critical +sections including external libraries, it is very neary impossible to +recover from such situation. +] + +exclude /test_machine_stackoverflow/, reason +exclude :test_machine_stackoverflow_by_define_method, reason