summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrien Thebo <adrien.thebo@gmail.com>2011-04-14 11:27:22 -0700
committerAdrien Thebo <adrien@puppetlabs.com>2011-04-18 09:37:47 -0700
commit21fe2176f6a688da14d8382806787b6072ae1ed1 (patch)
tree079bd46246d3da249f2ecc03c777e6c832066203
parent6e02daa1ed56f9758226f4e640ec419395868728 (diff)
downloadfacter-21fe2176f6a688da14d8382806787b6072ae1ed1.tar.gz
facter-21fe2176f6a688da14d8382806787b6072ae1ed1.tar.xz
facter-21fe2176f6a688da14d8382806787b6072ae1ed1.zip
(#6612) Changed uptime spec to be endian agnostic
The sysctl uptime fixture was little endian, which fails on sparc hardware. Added a big endian fixture and endian detection.
-rw-r--r--spec/fixtures/uptime/sysctl_kern_boottime_big_endianbin0 -> 20 bytes
-rw-r--r--spec/fixtures/uptime/sysctl_kern_boottime_little_endian (renamed from spec/fixtures/uptime/sysctl_kern_boottime)bin16 -> 16 bytes
-rwxr-xr-xspec/unit/util/uptime_spec.rb7
3 files changed, 6 insertions, 1 deletions
diff --git a/spec/fixtures/uptime/sysctl_kern_boottime_big_endian b/spec/fixtures/uptime/sysctl_kern_boottime_big_endian
new file mode 100644
index 0000000..6b7be22
--- /dev/null
+++ b/spec/fixtures/uptime/sysctl_kern_boottime_big_endian
Binary files differ
diff --git a/spec/fixtures/uptime/sysctl_kern_boottime b/spec/fixtures/uptime/sysctl_kern_boottime_little_endian
index 0c54fe4..0c54fe4 100644
--- a/spec/fixtures/uptime/sysctl_kern_boottime
+++ b/spec/fixtures/uptime/sysctl_kern_boottime_little_endian
Binary files differ
diff --git a/spec/unit/util/uptime_spec.rb b/spec/unit/util/uptime_spec.rb
index 8d3980c..98a1a1b 100755
--- a/spec/unit/util/uptime_spec.rb
+++ b/spec/unit/util/uptime_spec.rb
@@ -27,7 +27,12 @@ describe Facter::Util::Uptime do
end
it "should use 'sysctl kern.boottime'" do
- sysctl_output_file = File.join(SPECDIR, 'fixtures', 'uptime', 'sysctl_kern_boottime') # Aug 01 14:13:47 -0700 2010
+ if [1].pack("L") == [1].pack("V") # Determine endianness
+ sysctl_output_filename = 'sysctl_kern_boottime_little_endian'
+ else
+ sysctl_output_filename = 'sysctl_kern_boottime_big_endian'
+ end
+ sysctl_output_file = File.join(SPECDIR, 'fixtures', 'uptime', sysctl_output_filename) # Aug 01 14:13:47 -0700 2010
Facter::Util::Uptime.stubs(:uptime_sysctl_cmd).returns("cat \"#{sysctl_output_file}\"")
Time.stubs(:now).returns Time.parse("Aug 01 15:13:47 -0700 2010") # one hour later
Facter::Util::Uptime.get_uptime_seconds_unix.should == 60 * 60