2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-03-27 11:49:56 +00:00
|
|
|
require "cmd/shared_examples/args_parse"
|
2024-03-21 21:52:32 -07:00
|
|
|
require "dev-cmd/test"
|
2024-04-13 00:25:32 -04:00
|
|
|
require "sandbox"
|
2019-03-27 11:49:56 +00:00
|
|
|
|
2024-03-21 21:52:32 -07:00
|
|
|
RSpec.describe Homebrew::DevCmd::Test do
|
2019-03-27 11:49:56 +00:00
|
|
|
it_behaves_like "parseable arguments"
|
|
|
|
|
2021-02-25 16:29:05 +00:00
|
|
|
it "tests a given Formula", :integration_test do
|
2019-03-27 09:45:48 +00:00
|
|
|
install_test_formula "testball", <<~'RUBY'
|
2017-02-23 06:05:13 +01:00
|
|
|
test do
|
2019-03-27 09:45:48 +00:00
|
|
|
assert_equal "test", shell_output("#{bin}/test")
|
2017-02-23 06:05:13 +01:00
|
|
|
end
|
2018-07-11 15:17:40 +02:00
|
|
|
RUBY
|
2017-02-23 06:05:13 +01:00
|
|
|
|
2019-03-27 09:45:48 +00:00
|
|
|
expect { brew "test", "--verbose", "testball" }
|
2017-02-23 06:05:13 +01:00
|
|
|
.to output(/Testing testball/).to_stdout
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
.and be_a_success
|
|
|
|
end
|
2024-04-13 00:25:32 -04:00
|
|
|
|
|
|
|
it "blocks network access when test phase is offline", :integration_test do
|
|
|
|
if Sandbox.available?
|
|
|
|
install_test_formula "testball_offline_test", <<~RUBY
|
|
|
|
deny_network_access! :test
|
|
|
|
test do
|
|
|
|
system "curl", "example.org"
|
|
|
|
end
|
|
|
|
RUBY
|
|
|
|
|
|
|
|
expect { brew "test", "--verbose", "testball_offline_test" }
|
|
|
|
.to output(/curl: \(6\) Could not resolve host: example\.org/).to_stdout
|
|
|
|
.and be_a_failure
|
|
|
|
end
|
|
|
|
end
|
2017-02-23 06:05:13 +01:00
|
|
|
end
|