Previous value of 8M caused JVM to crash on servers with more then 40G of RAM Tested on databases servers up to 1.5T of RAM, 12M seems to be sufficient
93 lines
3.4 KiB
Ruby
93 lines
3.4 KiB
Ruby
require "spec_helper"
|
|
|
|
describe Facter::Util::Fact do
|
|
before {
|
|
Facter.clear
|
|
}
|
|
|
|
describe "java_version" do
|
|
context 'returns java version when java present' do
|
|
context 'on OpenBSD', :with_env => true do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
|
it do
|
|
java_version_output = <<-EOS
|
|
openjdk version "1.7.0_71"
|
|
OpenJDK Runtime Environment (build 1.7.0_71-b14)
|
|
OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)
|
|
EOS
|
|
Facter::Util::Resolution.expects(:which).with("java").returns('/usr/local/jdk-1.7.0/jre/bin/java')
|
|
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
|
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
|
end
|
|
end
|
|
context 'on Darwin' do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'Darwin'} }
|
|
it do
|
|
java_version_output = <<-EOS
|
|
java version "1.7.0_71"
|
|
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
|
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
|
EOS
|
|
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
|
|
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
|
expect(Facter.value(:java_version)).to eql "1.7.0_71"
|
|
end
|
|
end
|
|
context 'on other systems' do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'MyOS'} }
|
|
it do
|
|
java_version_output = <<-EOS
|
|
java version "1.7.0_71"
|
|
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
|
|
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
|
|
EOS
|
|
Facter::Util::Resolution.expects(:exec).with("java -Xmx12m -version 2>&1").returns(java_version_output)
|
|
expect(Facter.value(:java_version)).to eq("1.7.0_71")
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'returns nil when java not present' do
|
|
context 'on OpenBSD', :with_env => true do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'OpenBSD'} }
|
|
it do
|
|
Facter::Util::Resolution.stubs(:exec)
|
|
expect(Facter.value(:java_version)).to be_nil
|
|
end
|
|
end
|
|
context 'on Darwin' do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'Darwin'} }
|
|
it do
|
|
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
|
|
expect(Facter.value(:java_version)).to be_nil
|
|
end
|
|
end
|
|
context 'on other systems' do
|
|
before do
|
|
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
|
|
end
|
|
let(:facts) { {:operatingsystem => 'MyOS'} }
|
|
it do
|
|
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
|
|
expect(Facter.value(:java_version)).to be_nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|