specinfra 2.38.0 → 2.38.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c50b6fad32f531c6ff0465166b651d714f10f844
4
- data.tar.gz: 18bdbfa44d752dc45b26d22c05303b0df51db5cb
3
+ metadata.gz: 972b0b4d232e4437b861f29d76317693630733bf
4
+ data.tar.gz: 266ceb8f83189aa3730c96c3a3c986bad4ca21cb
5
5
  SHA512:
6
- metadata.gz: cee38cc5a910e85c2315986f7c4fa01ba6202af0cb960e4199c7acddbc8928aa0cffaa74e0dac426e78b8ca1a40f7a421758998d5afd1e3e46d7bf530bbd649d
7
- data.tar.gz: 534190a21b48b1e4d8ea883d6ab53a81755e4f9cc0f5dce0d1b8a747c5b5d007918db2ce735b30cd8a09ba21947a0bffdb7c2ccf8abd083113e9fa90faa1b60d
6
+ metadata.gz: c346d60997449ddb9148b252f1e766108d335e39a7a2869a8d533ae504a0e8ecb899ab4d1f86c44f8eb457b84019510e5434218a74125138c56f96e545940731
7
+ data.tar.gz: 891c0baffa2a8b9ee7af9e22023092e94bf833e4b9328ceb3e4a6402df8574379bd5db94c526cb14e3db7d63e23082f47c493a5497242dd372ee8b7ef0c0bf2f
@@ -0,0 +1,15 @@
1
+ class Specinfra::Command::Freebsd::Base::Interface < Specinfra::Command::Base::Interface
2
+ class << self
3
+ def check_exists(name)
4
+ "ifconfig #{name}"
5
+ end
6
+
7
+ def check_has_ipv4_address(interface, ip_address)
8
+ "ifconfig #{interface} | grep -w inet | cut -d ' ' -f 2"
9
+ end
10
+
11
+ def check_has_ipv6_address(interface, ip_address)
12
+ "ifconfig #{interface} | grep -w inet6 | cut -d ' ' -f 2"
13
+ end
14
+ end
15
+ end
@@ -210,6 +210,7 @@ require 'specinfra/command/opensuse/base/service'
210
210
  require 'specinfra/command/freebsd'
211
211
  require 'specinfra/command/freebsd/base'
212
212
  require 'specinfra/command/freebsd/base/file'
213
+ require 'specinfra/command/freebsd/base/interface'
213
214
  require 'specinfra/command/freebsd/base/inventory'
214
215
  require 'specinfra/command/freebsd/base/package'
215
216
  require 'specinfra/command/freebsd/base/port'
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.38.0"
2
+ VERSION = "2.38.1"
3
3
  end
@@ -0,0 +1,18 @@
1
+ # Ref: https://github.com/sorah/infra_operator/blob/6259aada3fdd9d4bed5759115d39bd1df25a81f2/spec/backends/exec_spec.rb#L36
2
+
3
+ require 'spec_helper'
4
+
5
+ context "when executed process launches child process like a daemon, and the daemon doesn't close stdout,err" do
6
+ subject(:result) { Specinfra::Runner.run_command("ruby -e 'pid = fork { sleep 10; puts :bye }; Process.detach(pid); puts pid'") }
7
+
8
+ it "doesn't block" do
9
+ a = Time.now
10
+ result # exec
11
+ b = Time.now
12
+ expect((b-a) < 3).to be_truthy
13
+
14
+ expect(result.stderr).to be_empty
15
+ expect(result.stdout.chomp).to match(/\A\d+\z/)
16
+ Process.kill :TERM, result.stdout.chomp.to_i
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ def command(cmd)
4
+ Specinfra::Runner.run_command(cmd)
5
+ end
6
+
7
+ shared_examples "IO checks" do
8
+ let (:generator) { "seq 1 #{max}" }
9
+ let (:expected) { (1..max).map { |x| x.to_s }.join("\n") << "\n" }
10
+
11
+ it "stdout only" do
12
+ out = command(generator).stdout
13
+ expect(out).to eq expected
14
+ end
15
+
16
+ it "stderr only" do
17
+ out = command("#{generator} >&2" ).stderr
18
+ expect(out).to eq expected
19
+ end
20
+
21
+ it "stdout then stderr" do
22
+ cmd = command("#{generator}; #{generator} >&2" )
23
+ expect(cmd.stdout).to eq expected
24
+ expect(cmd.stderr).to eq expected
25
+ end
26
+
27
+ it "stderr then stdout" do
28
+ cmd = command("#{generator} >&2; #{generator}" )
29
+ expect(cmd.stdout).to eq expected
30
+ expect(cmd.stderr).to eq expected
31
+ end
32
+
33
+ it "stdout and stderr" do
34
+ cmd = command("(#{generator} &); #{generator} >&2; sleep 2" )
35
+ expect(cmd.stdout).to eq expected
36
+ expect(cmd.stderr).to eq expected
37
+ end
38
+ end
39
+
40
+ describe "buffer overflow problem" do
41
+ context "with small output amount" do
42
+ let (:max) { 10 }
43
+ include_examples "IO checks"
44
+ end
45
+
46
+ context "with huge output amount" do
47
+ let (:max) { 999999 }
48
+ include_examples "IO checks"
49
+ end
50
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ backend = Specinfra::Backend::Exec.new
4
+
5
+ context 'Output of stdout_handler' do
6
+ subject(:stdout) do
7
+ out = ''
8
+ backend.stdout_handler = Proc.new {|o| out += o }
9
+ backend.run_command('echo foo')
10
+ out
11
+ end
12
+
13
+ it { expect(stdout).to eq "foo\n" }
14
+ end
15
+
16
+ context 'Output of stderr_handler' do
17
+ subject(:stderr) do
18
+ err = ''
19
+ backend.stderr_handler = Proc.new {|e| err += e }
20
+ backend.run_command('echo foo 1>&2')
21
+ err
22
+ end
23
+
24
+ it { expect(stderr).to eq "foo\n" }
25
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specinfra
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.38.0
4
+ version: 2.38.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2015-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-scp
@@ -252,6 +252,7 @@ files:
252
252
  - lib/specinfra/command/freebsd.rb
253
253
  - lib/specinfra/command/freebsd/base.rb
254
254
  - lib/specinfra/command/freebsd/base/file.rb
255
+ - lib/specinfra/command/freebsd/base/interface.rb
255
256
  - lib/specinfra/command/freebsd/base/inventory.rb
256
257
  - lib/specinfra/command/freebsd/base/package.rb
257
258
  - lib/specinfra/command/freebsd/base/port.rb
@@ -439,7 +440,10 @@ files:
439
440
  - lib/specinfra/runner.rb
440
441
  - lib/specinfra/version.rb
441
442
  - spec/backend/exec/build_command_spec.rb
443
+ - spec/backend/exec/child_process_spec.rb
442
444
  - spec/backend/exec/env_spec.rb
445
+ - spec/backend/exec/read_noblock_spec.rb
446
+ - spec/backend/exec/stdxxx_handler_spec.rb
443
447
  - spec/backend/ssh/build_command_spec.rb
444
448
  - spec/command/amazon/interface_spec.rb
445
449
  - spec/command/amazon/package_spec.rb
@@ -525,7 +529,10 @@ specification_version: 4
525
529
  summary: Common layer for serverspec and itamae
526
530
  test_files:
527
531
  - spec/backend/exec/build_command_spec.rb
532
+ - spec/backend/exec/child_process_spec.rb
528
533
  - spec/backend/exec/env_spec.rb
534
+ - spec/backend/exec/read_noblock_spec.rb
535
+ - spec/backend/exec/stdxxx_handler_spec.rb
529
536
  - spec/backend/ssh/build_command_spec.rb
530
537
  - spec/command/amazon/interface_spec.rb
531
538
  - spec/command/amazon/package_spec.rb
@@ -584,3 +591,4 @@ test_files:
584
591
  - spec/host_inventory/openbsd/filesystem_spec.rb
585
592
  - spec/host_inventory/solaris/filesystem_spec.rb
586
593
  - spec/spec_helper.rb
594
+ has_rdoc: