Fix facter unit test when using realpath
This commit is contained in:
@@ -17,12 +17,11 @@ Facter.add(:java_default_home) do
|
|||||||
if java_bin.empty?
|
if java_bin.empty?
|
||||||
nil
|
nil
|
||||||
else
|
else
|
||||||
# We might have found a symlink instead of the real binary
|
java_path = File.realpath(java_bin)
|
||||||
java_bin = File.realpath(java_bin)
|
if java_path =~ %r(/jre/)
|
||||||
if java_bin =~ %r(/jre/)
|
java_default_home = File.dirname(File.dirname(File.dirname(java_path)))
|
||||||
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
|
|
||||||
else
|
else
|
||||||
java_default_home = File.dirname(File.dirname(java_bin))
|
java_default_home = File.dirname(File.dirname(java_path))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
require "spec_helper"
|
require "spec_helper"
|
||||||
|
|
||||||
|
def unlink_and_delete(filename)
|
||||||
|
if File.symlink?(filename)
|
||||||
|
File.unlink(filename)
|
||||||
|
end
|
||||||
|
if File.exist?(filename)
|
||||||
|
File.delete(filename)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe Facter::Util::Fact do
|
describe Facter::Util::Fact do
|
||||||
|
|
||||||
describe "java_default_home" do
|
describe "java_default_home" do
|
||||||
@@ -10,26 +19,24 @@ describe Facter::Util::Fact do
|
|||||||
|
|
||||||
context 'returns java home path when java found in PATH' do
|
context 'returns java home path when java found in PATH' do
|
||||||
context "when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java" do
|
context "when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java" do
|
||||||
|
|
||||||
it do
|
it do
|
||||||
File.delete('./java') if File.exist?('./java')
|
unlink_and_delete('./java_test')
|
||||||
File.symlink('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java', './java')
|
File.symlink('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java', './java_test')
|
||||||
Facter::Util::Resolution.expects(:which).with("java").returns("./java")
|
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
|
||||||
expect(File.readlink('./java')).to eq('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java')
|
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java')
|
||||||
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/java-7-openjdk-amd64'
|
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/java-7-openjdk-amd64'
|
||||||
File.delete('./java') if File.exist?('./java')
|
unlink_and_delete('./java_test')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java" do
|
context "when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java" do
|
||||||
|
|
||||||
it do
|
it do
|
||||||
File.delete('./java') if File.exist?('./java')
|
unlink_and_delete('./java_test')
|
||||||
File.symlink('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java', './java')
|
File.symlink('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java', './java_test')
|
||||||
Facter::Util::Resolution.expects(:which).with("java").returns("./java")
|
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
|
||||||
expect(File.readlink('./java')).to eq('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java')
|
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java')
|
||||||
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/oracle-java8-jre-amd64'
|
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/oracle-java8-jre-amd64'
|
||||||
File.delete('./java') if File.exist?('./java')
|
unlink_and_delete('./java_test')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user