aboutsummaryrefslogtreecommitdiffstats
path: root/tool/test-bundled-gems.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/test-bundled-gems.rb')
-rw-r--r--tool/test-bundled-gems.rb26
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