summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/commands/update_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb28
2 files changed, 30 insertions, 2 deletions
diff --git a/lib/rubygems/commands/update_command.rb b/lib/rubygems/commands/update_command.rb
index 2df6a48d2d..b7609ed7fe 100644
--- a/lib/rubygems/commands/update_command.rb
+++ b/lib/rubygems/commands/update_command.rb
@@ -174,13 +174,13 @@ command to remove old versions.
update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"
Dir.chdir update_dir do
- say "Installing RubyGems #{version}"
+ say "Installing RubyGems #{version}" unless options[:silent]
installed = preparing_gem_layout_for(version) do
system Gem.ruby, '--disable-gems', 'setup.rb', *args
end
- say "RubyGems system software updated" if installed
+ say "RubyGems system software updated" if installed unless options[:silent]
end
end
diff --git a/test/rubygems/test_gem_commands_update_command.rb b/test/rubygems/test_gem_commands_update_command.rb
index eed799c5aa..cacde06fd5 100644
--- a/test/rubygems/test_gem_commands_update_command.rb
+++ b/test/rubygems/test_gem_commands_update_command.rb
@@ -276,6 +276,34 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
Gem.disable_system_update_message = old_disable_system_update_message
end
+ # The other style of `gem update --system` tests don't actually run
+ # setup.rb, so we just check that setup.rb gets the `--silent` flag.
+ def test_execute_system_silent_passed_to_setuprb
+ @cmd.options[:args] = []
+ @cmd.options[:system] = true
+ @cmd.options[:silent] = true
+
+ assert_equal true, @cmd.update_rubygems_arguments.include?('--silent')
+ end
+
+ def test_execute_system_silent
+ spec_fetcher do |fetcher|
+ fetcher.download 'rubygems-update', 9 do |s|
+ s.files = %w[setup.rb]
+ end
+ end
+
+ @cmd.options[:args] = []
+ @cmd.options[:system] = true
+ @cmd.options[:silent] = true
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ assert_empty @ui.output
+ end
+
# before:
# a1 -> c1.2
# after: