summaryrefslogtreecommitdiff
diff options
-rw-r--r--common.mk11
-rw-r--r--spec/bundled_gems.mspec6
-rw-r--r--spec/default.mspec10
3 files changed, 21 insertions, 6 deletions
diff --git a/common.mk b/common.mk
index 09c977a53d..a88a4ec0fb 100644
--- a/common.mk
+++ b/common.mk
@@ -994,6 +994,15 @@ yes-test-spec: yes-test-spec-precheck
$(ACTIONS_ENDGROUP)
no-test-spec:
+test-bundled-gems-spec: $(TEST_RUNNABLE)-test-bundled-gems-spec
+yes-test-bundled-gems-spec: yes-test-spec-precheck
+ $(ACTIONS_GROUP)
+ $(gnumake_recursive)$(Q) \
+ $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \
+ $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/bundled_gems.mspec $(MSPECOPT) $(SPECOPTS)
+ $(ACTIONS_ENDGROUP)
+no-test-bundled-gems-spec:
+
check: $(DOT_WAIT) test-spec
RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable
@@ -1568,7 +1577,7 @@ yes-test-bundled-gems-prepare: yes-test-bundled-gems-precheck
PREPARE_BUNDLED_GEMS = test-bundled-gems-prepare
test-bundled-gems: $(TEST_RUNNABLE)-test-bundled-gems
-yes-test-bundled-gems: test-bundled-gems-run
+yes-test-bundled-gems: test-bundled-gems-run test-bundled-gems-spec
no-test-bundled-gems:
# Override this to allow failure of specific gems on CI
diff --git a/spec/bundled_gems.mspec b/spec/bundled_gems.mspec
new file mode 100644
index 0000000000..762fa1c165
--- /dev/null
+++ b/spec/bundled_gems.mspec
@@ -0,0 +1,6 @@
+load File.dirname(__FILE__) + '/default.mspec'
+
+class MSpecScript
+ set :library, get(:stdlibs).to_a & get(:bundled_gems).to_a
+ set :files, get(:library)
+end
diff --git a/spec/default.mspec b/spec/default.mspec
index 3296289a11..7c44526c0b 100644
--- a/spec/default.mspec
+++ b/spec/default.mspec
@@ -32,13 +32,13 @@ class MSpecScript
end
# Disable to run for bundled gems in test-spec
- bundled_gems = File.readlines("gems/bundled_gems").map do |line|
+ set :bundled_gems, (File.readlines("#{srcdir}/gems/bundled_gems").map do |line|
next if /^\s*(?:#|$)/ =~ line
- "library/" + line.split.first
- end.compact
- stdlibs = Dir.glob("ruby/library/*").map{|d| d.sub(%r'\Aruby/', '')}
+ "#{srcdir}/spec/ruby/library/" + line.split.first
+ end.compact)
+ set :stdlibs, Dir.glob("#{srcdir}/spec/ruby/library/*")
+ set :library, get(:stdlibs).to_a - get(:bundled_gems).to_a
- set :library, stdlibs - bundled_gems
set :files, get(:command_line) + get(:language) + get(:core) + get(:library) + get(:security) + get(:optional)
if ENV.key?("COVERAGE")