aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/spec/support
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cask/spec/support')
l---------Library/Homebrew/cask/spec/support/Casks/.rubocop.yml1
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/appcast-checkpoint-sha256-for-empty-string.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/appcast-invalid-checkpoint.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/appcast-missing-checkpoint.rb3
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/appcast-valid-checkpoint.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/booby-trap.rb8
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/generic-artifact-absolute-target.rb3
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/generic-artifact-no-target.rb3
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/generic-artifact-relative-target.rb3
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/invalid-sha256.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-homepage.rb5
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-license.rb5
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-name.rb5
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-sha256.rb5
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-url.rb5
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/missing-version.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/osdn-correct-url-format.rb6
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/osdn-incorrect-url-format.rb6
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/sha256-for-empty-string.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/sourceforge-correct-url-format.rb6
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/sourceforge-incorrect-url-format.rb6
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/sourceforge-version-latest-correct-url-format.rb6
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/version-latest-string.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/version-latest-with-checksum.rb4
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/with-binary.rb10
-rw-r--r--Library/Homebrew/cask/spec/support/Casks/with-embedded-binary.rb10
-rw-r--r--Library/Homebrew/cask/spec/support/audit_matchers.rb39
-rw-r--r--Library/Homebrew/cask/spec/support/binaries/AppWithBinary.zipbin0 -> 306 bytes
-rw-r--r--Library/Homebrew/cask/spec/support/binaries/AppWithEmbeddedBinary.zipbin0 -> 618 bytes
-rw-r--r--Library/Homebrew/cask/spec/support/env_helper.rb16
-rw-r--r--Library/Homebrew/cask/spec/support/expectations_hash_helper.rb10
-rw-r--r--Library/Homebrew/cask/spec/support/file_helper.rb16
-rw-r--r--Library/Homebrew/cask/spec/support/install_helper.rb10
-rw-r--r--Library/Homebrew/cask/spec/support/kernel_at_exit_hacks.rb13
-rw-r--r--Library/Homebrew/cask/spec/support/sha256_helper.rb8
-rw-r--r--Library/Homebrew/cask/spec/support/shutup_helper.rb18
36 files changed, 258 insertions, 0 deletions
diff --git a/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml b/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml
new file mode 120000
index 000000000..ee5c2b948
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml
@@ -0,0 +1 @@
+../../../Casks/.rubocop.yml \ No newline at end of file
diff --git a/Library/Homebrew/cask/spec/support/Casks/appcast-checkpoint-sha256-for-empty-string.rb b/Library/Homebrew/cask/spec/support/Casks/appcast-checkpoint-sha256-for-empty-string.rb
new file mode 100644
index 000000000..f40f244f2
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/appcast-checkpoint-sha256-for-empty-string.rb
@@ -0,0 +1,4 @@
+test_cask 'appcast-checkpoint-sha256-for-empty-string' do
+ appcast 'http://localhost/appcast.xml',
+ checkpoint: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/appcast-invalid-checkpoint.rb b/Library/Homebrew/cask/spec/support/Casks/appcast-invalid-checkpoint.rb
new file mode 100644
index 000000000..e182c2389
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/appcast-invalid-checkpoint.rb
@@ -0,0 +1,4 @@
+test_cask 'appcast-invalid-checkpoint' do
+ appcast 'http://localhost/appcast.xml',
+ checkpoint: 'not a valid shasum'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/appcast-missing-checkpoint.rb b/Library/Homebrew/cask/spec/support/Casks/appcast-missing-checkpoint.rb
new file mode 100644
index 000000000..5ab2c0665
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/appcast-missing-checkpoint.rb
@@ -0,0 +1,3 @@
+test_cask 'appcast-missing-checkpoint' do
+ appcast 'http://localhost/appcast.xml'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/appcast-valid-checkpoint.rb b/Library/Homebrew/cask/spec/support/Casks/appcast-valid-checkpoint.rb
new file mode 100644
index 000000000..96d7edbba
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/appcast-valid-checkpoint.rb
@@ -0,0 +1,4 @@
+test_cask 'appcast-valid-checkpoint' do
+ appcast 'http://localhost/appcast.xml',
+ checkpoint: 'd5b2dfbef7ea28c25f7a77cd7fa14d013d82b626db1d82e00e25822464ba19e2'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/booby-trap.rb b/Library/Homebrew/cask/spec/support/Casks/booby-trap.rb
new file mode 100644
index 000000000..21bd97952
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/booby-trap.rb
@@ -0,0 +1,8 @@
+cask 'booby-trap' do
+ version '0.0.7'
+
+ url do
+ # to be lazily evaluated
+ fail 'Boom'
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/generic-artifact-absolute-target.rb b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-absolute-target.rb
new file mode 100644
index 000000000..475fb055f
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-absolute-target.rb
@@ -0,0 +1,3 @@
+test_cask 'generic-artifact-absolute-target' do
+ artifact 'Caffeine.app', target: "#{Hbc.appdir}/Caffeine.app"
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/generic-artifact-no-target.rb b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-no-target.rb
new file mode 100644
index 000000000..f7657dbb5
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-no-target.rb
@@ -0,0 +1,3 @@
+test_cask 'generic-artifact-no-target' do
+ artifact 'Caffeine.app'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/generic-artifact-relative-target.rb b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-relative-target.rb
new file mode 100644
index 000000000..f97441751
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/generic-artifact-relative-target.rb
@@ -0,0 +1,3 @@
+test_cask 'generic-artifact-relative-target' do
+ artifact 'Caffeine.app', target: 'Caffeine.app'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/invalid-sha256.rb b/Library/Homebrew/cask/spec/support/Casks/invalid-sha256.rb
new file mode 100644
index 000000000..aac00f495
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/invalid-sha256.rb
@@ -0,0 +1,4 @@
+test_cask 'invalid-sha256' do
+ version '1.2.3'
+ sha256 'not a valid shasum'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-homepage.rb b/Library/Homebrew/cask/spec/support/Casks/missing-homepage.rb
new file mode 100644
index 000000000..ff924541d
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-homepage.rb
@@ -0,0 +1,5 @@
+test_cask 'missing-homepage' do
+ version '1.2.3'
+
+ url 'http://localhost/something.dmg'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-license.rb b/Library/Homebrew/cask/spec/support/Casks/missing-license.rb
new file mode 100644
index 000000000..30f3791c7
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-license.rb
@@ -0,0 +1,5 @@
+test_cask 'missing-license' do
+ version '1.2.3'
+
+ url 'http://localhost/something.dmg'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-name.rb b/Library/Homebrew/cask/spec/support/Casks/missing-name.rb
new file mode 100644
index 000000000..a5265b379
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-name.rb
@@ -0,0 +1,5 @@
+test_cask 'missing-name' do
+ version '1.2.3'
+
+ url 'http://localhost/something.dmg'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-sha256.rb b/Library/Homebrew/cask/spec/support/Casks/missing-sha256.rb
new file mode 100644
index 000000000..7f8027907
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-sha256.rb
@@ -0,0 +1,5 @@
+test_cask 'missing-sha256' do
+ version '1.2.3'
+
+ url 'http://localhost/something.dmg'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-url.rb b/Library/Homebrew/cask/spec/support/Casks/missing-url.rb
new file mode 100644
index 000000000..1b3e76b9c
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-url.rb
@@ -0,0 +1,5 @@
+test_cask 'missing-url' do
+ version '1.2.3'
+
+ homepage 'http://example.com'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/missing-version.rb b/Library/Homebrew/cask/spec/support/Casks/missing-version.rb
new file mode 100644
index 000000000..da2160bce
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/missing-version.rb
@@ -0,0 +1,4 @@
+test_cask 'missing-version' do
+ url 'http://localhost/something.dmg'
+ homepage 'http://example.com'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/osdn-correct-url-format.rb b/Library/Homebrew/cask/spec/support/Casks/osdn-correct-url-format.rb
new file mode 100644
index 000000000..da6ff0fcd
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/osdn-correct-url-format.rb
@@ -0,0 +1,6 @@
+test_cask 'osdn-correct-url-format' do
+ version '1.2.3'
+
+ url 'http://user.dl.osdn.jp/something/id/Something-1.2.3.dmg'
+ homepage 'http://osdn.jp/projects/something/'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/osdn-incorrect-url-format.rb b/Library/Homebrew/cask/spec/support/Casks/osdn-incorrect-url-format.rb
new file mode 100644
index 000000000..8400159a1
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/osdn-incorrect-url-format.rb
@@ -0,0 +1,6 @@
+test_cask 'osdn-incorrect-url-format' do
+ version '1.2.3'
+
+ url 'http://osdn.jp/projects/something/files/Something-1.2.3.dmg/download'
+ homepage 'http://osdn.jp/projects/something/'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/sha256-for-empty-string.rb b/Library/Homebrew/cask/spec/support/Casks/sha256-for-empty-string.rb
new file mode 100644
index 000000000..b97764071
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/sha256-for-empty-string.rb
@@ -0,0 +1,4 @@
+test_cask 'sha256-for-empty-string' do
+ version '1.2.3'
+ sha256 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/sourceforge-correct-url-format.rb b/Library/Homebrew/cask/spec/support/Casks/sourceforge-correct-url-format.rb
new file mode 100644
index 000000000..41ef73500
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/sourceforge-correct-url-format.rb
@@ -0,0 +1,6 @@
+test_cask 'sourceforge-correct-url-format' do
+ version '1.2.3'
+
+ url 'https://downloads.sourceforge.net/something/Something-1.2.3.dmg'
+ homepage 'https://sourceforge.net/projects/something/'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/sourceforge-incorrect-url-format.rb b/Library/Homebrew/cask/spec/support/Casks/sourceforge-incorrect-url-format.rb
new file mode 100644
index 000000000..27b5490b7
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/sourceforge-incorrect-url-format.rb
@@ -0,0 +1,6 @@
+test_cask 'sourceforge-incorrect-url-format' do
+ version '1.2.3'
+
+ url 'http://sourceforge.net/projects/something/files/Something-1.2.3.dmg/download'
+ homepage 'http://sourceforge.net/projects/something/'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/sourceforge-version-latest-correct-url-format.rb b/Library/Homebrew/cask/spec/support/Casks/sourceforge-version-latest-correct-url-format.rb
new file mode 100644
index 000000000..d9546c5e1
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/sourceforge-version-latest-correct-url-format.rb
@@ -0,0 +1,6 @@
+test_cask 'sourceforge-version-latest-correct-url-format' do
+ version :latest
+
+ url 'https://sourceforge.net/projects/something/files/latest/download'
+ homepage 'https://sourceforge.net/projects/something/'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/version-latest-string.rb b/Library/Homebrew/cask/spec/support/Casks/version-latest-string.rb
new file mode 100644
index 000000000..3b4723f45
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/version-latest-string.rb
@@ -0,0 +1,4 @@
+test_cask 'version-latest-string' do
+ version 'latest'
+ sha256 :no_check
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/version-latest-with-checksum.rb b/Library/Homebrew/cask/spec/support/Casks/version-latest-with-checksum.rb
new file mode 100644
index 000000000..8dbca1a69
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/version-latest-with-checksum.rb
@@ -0,0 +1,4 @@
+test_cask 'version-latest-with-checksum' do
+ version :latest
+ sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/with-binary.rb b/Library/Homebrew/cask/spec/support/Casks/with-binary.rb
new file mode 100644
index 000000000..a06787125
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/with-binary.rb
@@ -0,0 +1,10 @@
+test_cask 'with-binary' do
+ version '1.2.3'
+ sha256 'd5b2dfbef7ea28c25f7a77cd7fa14d013d82b626db1d82e00e25822464ba19e2'
+
+ url FileHelper.local_binary_url('AppWithBinary.zip')
+ homepage 'http://example.com/with-binary'
+
+ app 'App.app'
+ binary 'binary'
+end
diff --git a/Library/Homebrew/cask/spec/support/Casks/with-embedded-binary.rb b/Library/Homebrew/cask/spec/support/Casks/with-embedded-binary.rb
new file mode 100644
index 000000000..796f28c78
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/Casks/with-embedded-binary.rb
@@ -0,0 +1,10 @@
+test_cask 'with-embedded-binary' do
+ version '1.2.3'
+ sha256 'fe052d3e77d92676775fd916ddb8942e72a565b844ea7f6d055474c99bb4e47b'
+
+ url FileHelper.local_binary_url('AppWithEmbeddedBinary.zip')
+ homepage 'http://example.com/with-binary'
+
+ app 'App.app'
+ binary "#{appdir}/App.app/Contents/MacOS/App/binary"
+end
diff --git a/Library/Homebrew/cask/spec/support/audit_matchers.rb b/Library/Homebrew/cask/spec/support/audit_matchers.rb
new file mode 100644
index 000000000..fc1e0e876
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/audit_matchers.rb
@@ -0,0 +1,39 @@
+module AuditMatchers
+ extend RSpec::Matchers::DSL
+
+ matcher :pass do
+ match do |audit|
+ !audit.errors? && !audit.warnings?
+ end
+ end
+
+ matcher :fail do
+ match(&:errors?)
+ end
+
+ matcher :warn do
+ match do |audit|
+ audit.warnings? && !audit.errors?
+ end
+ end
+
+ matcher :fail_with do |error_msg|
+ match do |audit|
+ include_msg?(audit.errors, error_msg)
+ end
+ end
+
+ matcher :warn_with do |warning_msg|
+ match do |audit|
+ include_msg?(audit.warnings, warning_msg)
+ end
+ end
+
+ def include_msg?(messages, msg)
+ if msg.is_a?(Regexp)
+ Array(messages).any? { |m| m =~ msg }
+ else
+ Array(messages).include?(msg)
+ end
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/binaries/AppWithBinary.zip b/Library/Homebrew/cask/spec/support/binaries/AppWithBinary.zip
new file mode 100644
index 000000000..4a5b318ba
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/binaries/AppWithBinary.zip
Binary files differ
diff --git a/Library/Homebrew/cask/spec/support/binaries/AppWithEmbeddedBinary.zip b/Library/Homebrew/cask/spec/support/binaries/AppWithEmbeddedBinary.zip
new file mode 100644
index 000000000..7c708038c
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/binaries/AppWithEmbeddedBinary.zip
Binary files differ
diff --git a/Library/Homebrew/cask/spec/support/env_helper.rb b/Library/Homebrew/cask/spec/support/env_helper.rb
new file mode 100644
index 000000000..0a302ef45
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/env_helper.rb
@@ -0,0 +1,16 @@
+module EnvHelper
+ class << self
+ def with_env_var(key, val)
+ was_defined = ENV.key? "key"
+ old_value = ENV["key"]
+ ENV[key] = val
+ yield
+ ensure
+ if was_defined
+ ENV[key] = old_value
+ else
+ ENV.delete(key)
+ end
+ end
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/expectations_hash_helper.rb b/Library/Homebrew/cask/spec/support/expectations_hash_helper.rb
new file mode 100644
index 000000000..8d386767d
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/expectations_hash_helper.rb
@@ -0,0 +1,10 @@
+module ExpectationsHashHelper
+ shared_examples "expectations hash" do |input_name, expectations|
+ expectations.each do |input_value, expected_output|
+ context "when #{input_name} is #{input_value.inspect}" do
+ let(input_name.to_sym) { input_value }
+ it { should == expected_output }
+ end
+ end
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/file_helper.rb b/Library/Homebrew/cask/spec/support/file_helper.rb
new file mode 100644
index 000000000..8eb78f759
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/file_helper.rb
@@ -0,0 +1,16 @@
+module FileHelper
+ class << self
+ def local_binary_path(name)
+ File.expand_path(File.join(File.dirname(__FILE__), "binaries", name))
+ end
+
+ def local_binary_url(name)
+ "file://" + local_binary_path(name)
+ end
+
+ def valid_alias?(candidate)
+ return false unless candidate.symlink?
+ candidate.readlink.exist?
+ end
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/install_helper.rb b/Library/Homebrew/cask/spec/support/install_helper.rb
new file mode 100644
index 000000000..c8023c66b
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/install_helper.rb
@@ -0,0 +1,10 @@
+module InstallHelper
+ class << self
+ def install_without_artifacts(cask)
+ Hbc::Installer.new(cask).tap do |i|
+ i.download
+ i.extract_primary_container
+ end
+ end
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/kernel_at_exit_hacks.rb b/Library/Homebrew/cask/spec/support/kernel_at_exit_hacks.rb
new file mode 100644
index 000000000..b5c84869b
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/kernel_at_exit_hacks.rb
@@ -0,0 +1,13 @@
+module Kernel
+ alias real_at_exit at_exit
+
+ def at_exit(&block)
+ real_at_exit(&block) unless ENV["DISABLE_AT_EXIT"]
+ end
+
+ def with_disabled_at_exit
+ ENV["DISABLE_AT_EXIT"] = "1"
+ yield
+ ENV.delete("DISABLE_AT_EXIT")
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/sha256_helper.rb b/Library/Homebrew/cask/spec/support/sha256_helper.rb
new file mode 100644
index 000000000..14f2a2519
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/sha256_helper.rb
@@ -0,0 +1,8 @@
+require"digest"
+
+module Sha256Helper
+ def random_sha256
+ seed = "--#{rand(10_000)}--#{Time.now}--"
+ Digest::SHA2.hexdigest(seed)
+ end
+end
diff --git a/Library/Homebrew/cask/spec/support/shutup_helper.rb b/Library/Homebrew/cask/spec/support/shutup_helper.rb
new file mode 100644
index 000000000..98dde01a6
--- /dev/null
+++ b/Library/Homebrew/cask/spec/support/shutup_helper.rb
@@ -0,0 +1,18 @@
+module ShutupHelper
+ def shutup
+ if ENV.key?("VERBOSE_TESTS")
+ yield
+ else
+ begin
+ tmperr = $stderr.clone
+ tmpout = $stdout.clone
+ $stderr.reopen "/dev/null", "w"
+ $stdout.reopen "/dev/null", "w"
+ yield
+ ensure
+ $stderr.reopen tmperr
+ $stdout.reopen tmpout
+ end
+ end
+ end
+end