From 21fe2176f6a688da14d8382806787b6072ae1ed1 Mon Sep 17 00:00:00 2001 From: Adrien Thebo Date: Thu, 14 Apr 2011 11:27:22 -0700 Subject: (#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. --- spec/fixtures/uptime/sysctl_kern_boottime | Bin 16 -> 0 bytes spec/fixtures/uptime/sysctl_kern_boottime_big_endian | Bin 0 -> 20 bytes spec/fixtures/uptime/sysctl_kern_boottime_little_endian | Bin 0 -> 16 bytes spec/unit/util/uptime_spec.rb | 7 ++++++- 4 files changed, 6 insertions(+), 1 deletion(-) delete mode 100644 spec/fixtures/uptime/sysctl_kern_boottime create mode 100644 spec/fixtures/uptime/sysctl_kern_boottime_big_endian create mode 100644 spec/fixtures/uptime/sysctl_kern_boottime_little_endian diff --git a/spec/fixtures/uptime/sysctl_kern_boottime b/spec/fixtures/uptime/sysctl_kern_boottime deleted file mode 100644 index 0c54fe4..0000000 Binary files a/spec/fixtures/uptime/sysctl_kern_boottime and /dev/null differ 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 Binary files /dev/null and b/spec/fixtures/uptime/sysctl_kern_boottime_big_endian differ diff --git a/spec/fixtures/uptime/sysctl_kern_boottime_little_endian b/spec/fixtures/uptime/sysctl_kern_boottime_little_endian new file mode 100644 index 0000000..0c54fe4 Binary files /dev/null and b/spec/fixtures/uptime/sysctl_kern_boottime_little_endian 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 -- cgit