Added new ruby/spec task for bundled gems

This commit is contained in:
Hiroshi SHIBATA 2024-02-15 11:05:35 +09:00
parent 76d322b5d2
commit 1e6fffaeeb
3 changed files with 21 additions and 6 deletions

View File

@ -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

6
spec/bundled_gems.mspec Normal file
View File

@ -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

View File

@ -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")