diff options
Diffstat (limited to 'Library/Homebrew/test.rb')
| -rw-r--r-- | Library/Homebrew/test.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Library/Homebrew/test.rb b/Library/Homebrew/test.rb new file mode 100644 index 000000000..163abe93a --- /dev/null +++ b/Library/Homebrew/test.rb @@ -0,0 +1,34 @@ +old_trap = trap("INT") { exit! 130 } + +require "global" +require "extend/ENV" +require "timeout" +require "debrew" +require "formula_assertions" +require "fcntl" +require "socket" + +TEST_TIMEOUT_SECONDS = 5*60 + +begin + error_pipe = UNIXSocket.open(ENV["HOMEBREW_ERROR_PIPE"], &:recv_io) + error_pipe.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) + + ENV.extend(Stdenv) + ENV.setup_build_environment + + trap("INT", old_trap) + + formula = ARGV.formulae.first + formula.extend(Homebrew::Assertions) + formula.extend(Debrew::Formula) if ARGV.debug? + + # tests can also return false to indicate failure + Timeout::timeout TEST_TIMEOUT_SECONDS do + raise "test returned false" if formula.run_test == false + end +rescue Exception => e + Marshal.dump(e, error_pipe) + error_pipe.close + exit! 1 +end |
