diff options
author | Benoit Daloze <eregontp@gmail.com> | 2019-09-29 12:16:10 +0200 |
---|---|---|
committer | Benoit Daloze <eregontp@gmail.com> | 2019-09-29 13:57:54 +0200 |
commit | 4096e4b08c46dddb8edc9dabf70e737946ac6df8 (patch) | |
tree | d4bd39f69107c1ef7947c1dade2f62a791e60ed7 /tool/test-bundled-gems.rb | |
parent | d090e449ef4e92b2020e51fe495cd039e4f6fdda (diff) |
Move the logic to test bundled gems to Ruby code
* Writing shell scripts in a Makefile is very error-prone.
* TEST_BUNDLED_GEMS_ALLOW_FAILURES seemed to not work before.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2503
Diffstat (limited to 'tool/test-bundled-gems.rb')
-rw-r--r-- | tool/test-bundled-gems.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tool/test-bundled-gems.rb b/tool/test-bundled-gems.rb new file mode 100644 index 0000000000..735f7f4863 --- /dev/null +++ b/tool/test-bundled-gems.rb @@ -0,0 +1,26 @@ +require 'rbconfig' + +allowed_failures = ENV['TEST_BUNDLED_GEMS_ALLOW_FAILURES'] || '' +allowed_failures = allowed_failures.split(',').reject(&:empty?) + +exit_code = 0 +File.foreach('gems/bundled_gems') do |line| + gem = line.split.first + puts "\nTesting the #{gem} gem" + + gem_src_dir = File.expand_path("../../gems/src/#{gem}", __FILE__ ) + test_command = "#{RbConfig.ruby} -C #{gem_src_dir} -Ilib ../../../.bundle/bin/rake" + puts test_command + system test_command + + unless $?.success? + puts "Tests failed with exit code #{$?.exitstatus}" + if allowed_failures.include?(gem) + puts "Ignoring test failures for #{gem} due to \$TEST_BUNDLED_GEMS_ALLOW_FAILURES" + else + exit_code = $?.exitstatus + end + end +end + +exit exit_code |