diff options
| author | Xu Cheng | 2015-04-13 18:05:41 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-04-15 19:51:54 +0800 |
| commit | b621edf89dba704f7165fff0f0311f9e0c05bc34 (patch) | |
| tree | c26a1c8c83c0ca205a97d81a2f2fa2dc14ef7240 /Library/Homebrew/test.rb | |
| parent | a6be0b5bb8312e25695bd71bfe5e799526b4290e (diff) | |
| download | brew-b621edf89dba704f7165fff0f0311f9e0c05bc34.tar.bz2 | |
sandbox test
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 |
