aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/test_cmd_testbot.rb64
1 files changed, 64 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_cmd_testbot.rb b/Library/Homebrew/test/test_cmd_testbot.rb
index 40dd22f34..a696b9e95 100644
--- a/Library/Homebrew/test/test_cmd_testbot.rb
+++ b/Library/Homebrew/test/test_cmd_testbot.rb
@@ -1,3 +1,5 @@
+require "pathname"
+
require "testing_env"
require "dev-cmd/test-bot"
@@ -33,3 +35,65 @@ class TestbotCommandTests < Homebrew::TestCase
predicate.call "ARGV"
end
end
+
+class TestbotStepTests < Homebrew::TestCase
+ def run
+ [nil, "1"].each do |travis|
+ with_environment("TRAVIS" => travis) { super }
+ end
+ self
+ end
+
+ def teardown
+ unless passed?
+ raise "INFO: Previous test failed with ENV['TRAVIS'] = #{ENV["TRAVIS"].inspect}"
+ end
+ end
+
+ def stub_test_instance
+ stub(
+ :category => "stub",
+ :log_root => Pathname.pwd
+ )
+ end
+
+ def test_step_run_measures_execution_time
+ step = Homebrew::Step.new stub_test_instance, %w[sleep 0.1]
+ shutup do
+ step.run
+ end
+ assert_operator step.time, :>, 0.1
+ assert_operator step.time, :<, 1
+ assert_equal step.passed?, true
+ end
+
+ def test_step_run_observes_failure
+ step = Homebrew::Step.new stub_test_instance, ["false", ""]
+ shutup do
+ step.run
+ end
+ assert_equal step.passed?, false
+ assert_equal step.failed?, true
+ end
+
+ def test_step_dry_run_is_dry_and_always_succeeds
+ step = Homebrew::Step.new stub_test_instance, ["false", ""]
+ ARGV.expects(:include?).with("--dry-run").returns(true)
+ step.stubs(:fork).raises("Dry run isn't dry!")
+ shutup do
+ step.run
+ end
+ assert_equal step.passed?, true
+ end
+
+ def test_step_fail_fast_exits_on_failure
+ step = Homebrew::Step.new stub_test_instance, ["false", ""]
+ ARGV.stubs(:include?).returns(false)
+ ARGV.expects(:include?).with("--fail-fast").returns(true)
+ step.expects(:exit).with(1).returns(nil)
+ shutup do
+ step.run
+ end
+ assert_equal step.passed?, false
+ end
+end