summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/facter/operatingsystem.rb8
-rw-r--r--spec/unit/operatingsystem.rb36
2 files changed, 41 insertions, 3 deletions
diff --git a/lib/facter/operatingsystem.rb b/lib/facter/operatingsystem.rb
index 704b48f..335003a 100644
--- a/lib/facter/operatingsystem.rb
+++ b/lib/facter/operatingsystem.rb
@@ -23,9 +23,11 @@ Facter.add(:operatingsystem) do
elsif FileTest.exists?("/etc/arch-release")
"Archlinux"
elsif FileTest.exists?("/etc/enterprise-release")
- "OEL"
- elsif FileTest.exists?("/etc/ovs-release")
- "OVS"
+ if FileTest.exists?("/etc/ovs-release")
+ "OVS"
+ else
+ "OEL"
+ end
elsif FileTest.exists?("/etc/arch-release")
"Arch"
elsif FileTest.exists?("/etc/redhat-release")
diff --git a/spec/unit/operatingsystem.rb b/spec/unit/operatingsystem.rb
new file mode 100644
index 0000000..4c3fb3b
--- /dev/null
+++ b/spec/unit/operatingsystem.rb
@@ -0,0 +1,36 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../spec_helper'
+
+require 'facter'
+
+describe "Operating System fact" do
+
+
+ after do
+ Facter.clear
+ end
+
+ it "should default to the kernel name" do
+ Facter.fact(:kernel).stubs(:value).returns("Nutmeg")
+
+ Facter.fact(:operatingsystem).value.should == "Nutmeg"
+ end
+
+ it "should be Solaris for SunOS" do
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
+
+ Facter.fact(:operatingsystem).value.should == "Solaris"
+ end
+
+ it "should identify Oracle VM as OVS" do
+
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
+ FileTest.stubs(:exists?).returns false
+
+ FileTest.expects(:exists?).with("/etc/ovs-release").returns true
+ FileTest.expects(:exists?).with("/etc/enterprise-release").returns true
+
+ Facter.fact(:operatingsystem).value.should == "OVS"
+ end
+end