blob: 0ff1a9c0ad0b8a51f2dc74dacaf0feee0d41c8be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# This is a test of the external_command library
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
script_dir = File.join(File.dirname(__FILE__), 'external_command_scripts')
output_script = File.join(script_dir, "output.sh")
require 'external_command'
describe "when running ExternalCommand" do
it "should get correct status code for /bin/true" do
t = ExternalCommand.new("/bin/true").run()
t.status.should == 0
t.out.should == ""
t.err.should == ""
end
it "should get correct status code for /bin/false" do
f = ExternalCommand.new("/bin/false").run()
f.status.should == 1
f.out.should == ""
f.err.should == ""
end
it "should get stdout and stderr" do
f = ExternalCommand.new(output_script, "out", "err", "10", "23").run()
f.status.should == 23
f.out.should == (0..9).map {|i| "out #{i}\n"}.join("")
f.err.should == (0..9).map {|i| "err #{i}\n"}.join("")
end
it "should work with large amounts of data" do
f = ExternalCommand.new(output_script, "a longer output line", "a longer error line", "10000", "5").run()
f.status.should == 5
f.out.should == (0..9999).map {|i| "a longer output line #{i}\n"}.join("")
f.err.should == (0..9999).map {|i| "a longer error line #{i}\n"}.join("")
end
end
|