- Added swapfree and swapsize facts - Tests will now run correctly for osx swap tests
Signed-off-by: Adrien Thebo <adr...@puppetlabs.com> --- Local-branch: tickets/next/5011 lib/facter/memory.rb | 30 ++++++++++++++++++++++++++++++ spec/unit/memory_spec.rb | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 0 deletions(-) create mode 100644 spec/unit/memory_spec.rb diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb index 86adc7f..aa67702 100644 --- a/lib/facter/memory.rb +++ b/lib/facter/memory.rb @@ -20,6 +20,36 @@ require 'facter/util/memory' end end +Facter.add("SwapSize") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + swaptotal = 0 + if swap =~ /total = (\S+)/ then swaptotal = $1; end + swaptotal + end +end + +Facter.add("SwapFree") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + swapfree = 0 + if swap =~ /free = (\S+)/ then swapfree = $1; end + swapfree + end +end + +Facter.add("SwapEncrypted") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + encrypted = false + if swap =~ /\(encrypted\)/ then encrypted = true; end + encrypted + end +end + if Facter.value(:kernel) == "AIX" and Facter.value(:id) == "root" swap = Facter::Util::Resolution.exec('swap -l') swapfree, swaptotal = 0, 0 diff --git a/spec/unit/memory_spec.rb b/spec/unit/memory_spec.rb new file mode 100644 index 0000000..5cae8cb --- /dev/null +++ b/spec/unit/memory_spec.rb @@ -0,0 +1,45 @@ +#!/usr/bin/env ruby + +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +require 'facter' + +describe "Memory facts" do + before do + Facter.loadfacts + end + + after do + Facter.clear + end + + it "should return the current swap size" do + + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + if swapusage =~ /total = (\S+).*/ + Facter.fact(:swapfree).value.should == $1 + end + end + + it "should return the current swap free" do + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + if swapusage =~ /free = (\S+).*/ + Facter.fact(:swapfree).value.should == $1 + end + end + + it "should return whether swap is encrypted" do + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + swapusage =~ /\(encrypted\)/ + Facter.fact(:swapencrypted).value.should == true + end +end -- 1.7.4.1 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to puppet-dev@googlegroups.com. To unsubscribe from this group, send email to puppet-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.