mirror of https://github.com/KLayout/klayout.git
32 lines
741 B
Ruby
32 lines
741 B
Ruby
|
|
module Test
|
||
|
|
module Unit
|
||
|
|
module Util
|
||
|
|
module Output
|
||
|
|
##
|
||
|
|
# Returns output for standard output and standard
|
||
|
|
# error as string.
|
||
|
|
#
|
||
|
|
# Example:
|
||
|
|
# capture_output do
|
||
|
|
# puts("stdout")
|
||
|
|
# warn("stderr")
|
||
|
|
# end # -> ["stdout\n", "stderr\n"]
|
||
|
|
def capture_output
|
||
|
|
require 'stringio'
|
||
|
|
|
||
|
|
output = StringIO.new
|
||
|
|
error = StringIO.new
|
||
|
|
stdout_save, stderr_save = $stdout, $stderr
|
||
|
|
$stdout, $stderr = output, error
|
||
|
|
begin
|
||
|
|
yield
|
||
|
|
[output.string, error.string]
|
||
|
|
ensure
|
||
|
|
$stdout, $stderr = stdout_save, stderr_save
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|