/
ruby_spec.rb
71 lines (61 loc) · 2.22 KB
/
ruby_spec.rb
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#
# Author:: Adam Jacob (<adam@opscode.com>)
# Copyright:: Copyright (c) 2008 Opscode, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
require 'tempfile'
describe Ohai::System, "plugin ruby" do
before(:all) do
@ohai = Ohai::System.new
@ohai[:languages] = Mash.new
@ohai.require_plugin("ruby")
@ruby_ohai_data_pristine = @ohai[:languages][:ruby]
end
before(:each) do
@ruby_ohai_data = @ruby_ohai_data_pristine.dup
end
code = <<-EOS
ruby_bin = File.join(::RbConfig::CONFIG['bindir'], ::RbConfig::CONFIG['ruby_install_name'])
data = {
:platform => RUBY_PLATFORM,
:version => RUBY_VERSION,
:release_date => RUBY_RELEASE_DATE,
:target => ::RbConfig::CONFIG['target'],
:target_cpu => ::RbConfig::CONFIG['target_cpu'],
:target_vendor => ::RbConfig::CONFIG['target_vendor'],
:target_os => ::RbConfig::CONFIG['target_os'],
:host => ::RbConfig::CONFIG['host'],
:host_cpu => ::RbConfig::CONFIG['host_cpu'],
:host_os => ::RbConfig::CONFIG['host_os'],
:host_vendor => ::RbConfig::CONFIG['host_vendor'],
:gems_dir => %x{\#{ruby_bin} \#{::RbConfig::CONFIG['bindir']}/gem env gemdir}.chomp!,
:gem_bin => [ ::Gem.default_exec_format % 'gem', 'gem' ].map{|bin| "\#{::RbConfig::CONFIG['bindir']}/\#{bin}"
}.find{|bin| ::File.exists? bin},
:ruby_bin => ruby_bin
}
puts data.inspect
EOS
program = Tempfile.new('ruby')
program.write(code)
program.close
data = eval(`ruby #{program.path}`)
program.unlink
data.each do |attribute, value|
it "should have #{attribute} set" do
@ruby_ohai_data[attribute].should eql(value)
end
end
end