facter 2.1.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of facter might be problematic. Click here for more details.

Files changed (440) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +194 -0
  3. data/CONTRIBUTING.md +65 -0
  4. data/Gemfile +53 -0
  5. data/LICENSE +15 -0
  6. data/README.md +33 -0
  7. data/Rakefile +79 -0
  8. data/bin/facter +20 -0
  9. data/etc/facter.conf +5 -0
  10. data/ext/build_defaults.yaml +24 -0
  11. data/ext/debian/changelog.erb +59 -0
  12. data/ext/debian/compat +1 -0
  13. data/ext/debian/control +14 -0
  14. data/ext/debian/copyright +19 -0
  15. data/ext/debian/docs +1 -0
  16. data/ext/debian/lintian-overrides +0 -0
  17. data/ext/debian/rules +10 -0
  18. data/ext/debian/source/format +1 -0
  19. data/ext/facter-diff +74 -0
  20. data/ext/ips/facter.p5m.erb +10 -0
  21. data/ext/ips/rules +7 -0
  22. data/ext/ips/transforms +18 -0
  23. data/ext/osx/file_mapping.yaml +27 -0
  24. data/ext/osx/preflight.erb +33 -0
  25. data/ext/osx/prototype.plist.erb +38 -0
  26. data/ext/project_data.yaml +36 -0
  27. data/ext/redhat/facter.spec.erb +220 -0
  28. data/ext/solaris/pkginfo +7 -0
  29. data/install.rb +380 -0
  30. data/lib/facter.rb +261 -0
  31. data/lib/facter/Cfkey.rb +42 -0
  32. data/lib/facter/application.rb +204 -0
  33. data/lib/facter/architecture.rb +50 -0
  34. data/lib/facter/augeasversion.rb +28 -0
  35. data/lib/facter/blockdevices.rb +105 -0
  36. data/lib/facter/core/aggregate.rb +220 -0
  37. data/lib/facter/core/directed_graph.rb +46 -0
  38. data/lib/facter/core/execution.rb +123 -0
  39. data/lib/facter/core/execution/base.rb +81 -0
  40. data/lib/facter/core/execution/posix.rb +50 -0
  41. data/lib/facter/core/execution/windows.rb +57 -0
  42. data/lib/facter/core/logging.rb +169 -0
  43. data/lib/facter/core/resolvable.rb +94 -0
  44. data/lib/facter/core/suitable.rb +113 -0
  45. data/lib/facter/dhcp_servers.rb +39 -0
  46. data/lib/facter/domain.rb +99 -0
  47. data/lib/facter/ec2.rb +44 -0
  48. data/lib/facter/ec2/rest.rb +130 -0
  49. data/lib/facter/facterversion.rb +15 -0
  50. data/lib/facter/filesystems.rb +38 -0
  51. data/lib/facter/fqdn.rb +24 -0
  52. data/lib/facter/gce.rb +16 -0
  53. data/lib/facter/gce/metadata.rb +87 -0
  54. data/lib/facter/hardwareisa.rb +20 -0
  55. data/lib/facter/hardwaremodel.rb +67 -0
  56. data/lib/facter/hostname.rb +31 -0
  57. data/lib/facter/id.rb +21 -0
  58. data/lib/facter/interfaces.rb +46 -0
  59. data/lib/facter/ipaddress.rb +171 -0
  60. data/lib/facter/ipaddress6.rb +82 -0
  61. data/lib/facter/iphostnumber.rb +29 -0
  62. data/lib/facter/kernel.rb +22 -0
  63. data/lib/facter/kernelmajversion.rb +23 -0
  64. data/lib/facter/kernelrelease.rb +50 -0
  65. data/lib/facter/kernelversion.rb +22 -0
  66. data/lib/facter/ldom.rb +47 -0
  67. data/lib/facter/lsbdistcodename.rb +16 -0
  68. data/lib/facter/lsbdistdescription.rb +25 -0
  69. data/lib/facter/lsbdistid.rb +16 -0
  70. data/lib/facter/lsbdistrelease.rb +16 -0
  71. data/lib/facter/lsbmajdistrelease.rb +27 -0
  72. data/lib/facter/lsbrelease.rb +16 -0
  73. data/lib/facter/macaddress.rb +97 -0
  74. data/lib/facter/macosx.rb +56 -0
  75. data/lib/facter/manufacturer.rb +68 -0
  76. data/lib/facter/memory.rb +168 -0
  77. data/lib/facter/netmask.rb +42 -0
  78. data/lib/facter/network.rb +20 -0
  79. data/lib/facter/operatingsystem.rb +141 -0
  80. data/lib/facter/operatingsystemmajrelease.rb +47 -0
  81. data/lib/facter/operatingsystemrelease.rb +250 -0
  82. data/lib/facter/osfamily.rb +37 -0
  83. data/lib/facter/partitions.rb +35 -0
  84. data/lib/facter/path.rb +14 -0
  85. data/lib/facter/physicalprocessorcount.rb +91 -0
  86. data/lib/facter/processor.rb +168 -0
  87. data/lib/facter/ps.rb +30 -0
  88. data/lib/facter/puppetversion.rb +20 -0
  89. data/lib/facter/rubysitedir.rb +12 -0
  90. data/lib/facter/rubyversion.rb +12 -0
  91. data/lib/facter/selinux.rb +99 -0
  92. data/lib/facter/ssh.rb +72 -0
  93. data/lib/facter/timezone.rb +14 -0
  94. data/lib/facter/uniqueid.rb +4 -0
  95. data/lib/facter/uptime.rb +34 -0
  96. data/lib/facter/uptime_days.rb +15 -0
  97. data/lib/facter/uptime_hours.rb +15 -0
  98. data/lib/facter/uptime_seconds.rb +24 -0
  99. data/lib/facter/util/architecture.rb +19 -0
  100. data/lib/facter/util/collection.rb +161 -0
  101. data/lib/facter/util/composite_loader.rb +12 -0
  102. data/lib/facter/util/config.rb +63 -0
  103. data/lib/facter/util/confine.rb +66 -0
  104. data/lib/facter/util/dhcp_servers.rb +43 -0
  105. data/lib/facter/util/directory_loader.rb +83 -0
  106. data/lib/facter/util/ec2.rb +106 -0
  107. data/lib/facter/util/fact.rb +204 -0
  108. data/lib/facter/util/file_read.rb +37 -0
  109. data/lib/facter/util/formatter.rb +39 -0
  110. data/lib/facter/util/ip.rb +285 -0
  111. data/lib/facter/util/ip/windows.rb +215 -0
  112. data/lib/facter/util/loader.rb +155 -0
  113. data/lib/facter/util/macaddress.rb +43 -0
  114. data/lib/facter/util/macosx.rb +73 -0
  115. data/lib/facter/util/manufacturer.rb +99 -0
  116. data/lib/facter/util/memory.rb +228 -0
  117. data/lib/facter/util/netmask.rb +40 -0
  118. data/lib/facter/util/normalization.rb +94 -0
  119. data/lib/facter/util/nothing_loader.rb +12 -0
  120. data/lib/facter/util/operatingsystem.rb +21 -0
  121. data/lib/facter/util/parser.rb +158 -0
  122. data/lib/facter/util/partitions.rb +41 -0
  123. data/lib/facter/util/partitions/linux.rb +65 -0
  124. data/lib/facter/util/plist.rb +24 -0
  125. data/lib/facter/util/plist/generator.rb +228 -0
  126. data/lib/facter/util/plist/parser.rb +226 -0
  127. data/lib/facter/util/posix.rb +16 -0
  128. data/lib/facter/util/processor.rb +289 -0
  129. data/lib/facter/util/registry.rb +11 -0
  130. data/lib/facter/util/resolution.rb +160 -0
  131. data/lib/facter/util/solaris_zones.rb +158 -0
  132. data/lib/facter/util/unix_root.rb +5 -0
  133. data/lib/facter/util/uptime.rb +81 -0
  134. data/lib/facter/util/values.rb +109 -0
  135. data/lib/facter/util/virtual.rb +180 -0
  136. data/lib/facter/util/vlans.rb +21 -0
  137. data/lib/facter/util/windows_root.rb +7 -0
  138. data/lib/facter/util/wmi.rb +16 -0
  139. data/lib/facter/util/xendomains.rb +10 -0
  140. data/lib/facter/version.rb +86 -0
  141. data/lib/facter/virtual.rb +311 -0
  142. data/lib/facter/vlans.rb +17 -0
  143. data/lib/facter/xendomains.rb +20 -0
  144. data/lib/facter/zfs_version.rb +10 -0
  145. data/lib/facter/zonename.rb +6 -0
  146. data/lib/facter/zones.rb +17 -0
  147. data/lib/facter/zpool_version.rb +10 -0
  148. data/spec/fixtures/cpuinfo/amd64dual +57 -0
  149. data/spec/fixtures/cpuinfo/amd64quad +79 -0
  150. data/spec/fixtures/cpuinfo/amd64solo +23 -0
  151. data/spec/fixtures/cpuinfo/amd64tri +86 -0
  152. data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
  153. data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
  154. data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
  155. data/spec/fixtures/cpuinfo/panda-armel +17 -0
  156. data/spec/fixtures/cpuinfo/ppc64 +19 -0
  157. data/spec/fixtures/cpuinfo/sparc +10 -0
  158. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
  159. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
  160. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
  161. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
  162. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
  163. data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
  164. data/spec/fixtures/hpux/sched.models +174 -0
  165. data/spec/fixtures/hpux/unistd.h +1534 -0
  166. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
  167. data/spec/fixtures/ifconfig/centos_5_5 +17 -0
  168. data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
  169. data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
  170. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
  171. data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
  172. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
  173. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
  174. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
  175. data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
  176. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
  177. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
  178. data/spec/fixtures/ifconfig/fedora_10 +36 -0
  179. data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
  180. data/spec/fixtures/ifconfig/fedora_13 +18 -0
  181. data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
  182. data/spec/fixtures/ifconfig/fedora_8 +38 -0
  183. data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
  184. data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
  185. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
  186. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
  187. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
  188. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
  189. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
  190. data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
  191. data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
  192. data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
  193. data/spec/fixtures/ifconfig/openbsd_bridge_rules +11 -0
  194. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
  195. data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
  196. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
  197. data/spec/fixtures/ldom/ldom_v1 +6 -0
  198. data/spec/fixtures/netstat/centos_5_5 +5 -0
  199. data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
  200. data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
  201. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
  202. data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
  203. data/spec/fixtures/netstat/fedora_10 +7 -0
  204. data/spec/fixtures/netstat/open_solaris_10 +16 -0
  205. data/spec/fixtures/netstat/open_solaris_b132 +17 -0
  206. data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
  207. data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
  208. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
  209. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
  210. data/spec/fixtures/unit/dhcp_servers/nmcli_devices +4 -0
  211. data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +4 -0
  212. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +36 -0
  213. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +24 -0
  214. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +49 -0
  215. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +37 -0
  216. data/spec/fixtures/unit/dhcp_servers/route +3 -0
  217. data/spec/fixtures/unit/dhcp_servers/route_nogw +1 -0
  218. data/spec/fixtures/unit/ec2/rest/meta-data/root +20 -0
  219. data/spec/fixtures/unit/filesystems/linux +28 -0
  220. data/spec/fixtures/unit/gce/metadata/metadata.json +69 -0
  221. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
  222. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
  223. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
  224. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
  225. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
  226. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
  227. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
  228. data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +2 -0
  229. data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +3 -0
  230. data/spec/fixtures/unit/memory/aix-svmon +9 -0
  231. data/spec/fixtures/unit/memory/aix-swap_l +2 -0
  232. data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +3 -0
  233. data/spec/fixtures/unit/memory/darwin-swapinfo-single +2 -0
  234. data/spec/fixtures/unit/memory/darwin-vm_stat +13 -0
  235. data/spec/fixtures/unit/memory/dragonfly-vmstat +3 -0
  236. data/spec/fixtures/unit/memory/freebsd-vmstat +3 -0
  237. data/spec/fixtures/unit/memory/linux-proc_meminfo +10 -0
  238. data/spec/fixtures/unit/memory/openbsd-vmstat +3 -0
  239. data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +2 -0
  240. data/spec/fixtures/unit/memory/solaris-prtconf +4 -0
  241. data/spec/fixtures/unit/memory/solaris-swap_l-multiple +3 -0
  242. data/spec/fixtures/unit/memory/solaris-swap_l-single +2 -0
  243. data/spec/fixtures/unit/memory/solaris-vmstat +3 -0
  244. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
  245. data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +3 -0
  246. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
  247. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
  248. data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
  249. data/spec/fixtures/unit/util/dhcp_servers/route +3 -0
  250. data/spec/fixtures/unit/util/dhcp_servers/route_nogw +1 -0
  251. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
  252. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
  253. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
  254. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
  255. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
  256. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
  257. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
  258. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
  259. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
  260. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
  261. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
  262. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
  263. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
  264. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
  265. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
  266. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
  267. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
  268. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
  269. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
  270. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
  271. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
  272. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
  273. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
  274. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
  275. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
  276. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
  277. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
  278. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
  279. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
  280. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
  281. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
  282. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
  283. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
  284. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
  285. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
  286. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
  287. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
  288. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
  289. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
  290. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
  291. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
  292. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
  293. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
  294. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
  295. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
  296. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
  297. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
  298. data/spec/fixtures/unit/util/manufacturer/smartos_smbios +533 -0
  299. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
  300. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
  301. data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +8 -0
  302. data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +12 -0
  303. data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +7 -0
  304. data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +9 -0
  305. data/spec/fixtures/unit/util/partitions/partitions/mount +9 -0
  306. data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
  307. data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
  308. data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
  309. data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
  310. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
  311. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
  312. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
  313. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  314. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  315. data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +2 -0
  316. data/spec/fixtures/unit/util/vlans/linux_vlan_config +6 -0
  317. data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
  318. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  319. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
  320. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
  321. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
  322. data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
  323. data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
  324. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
  325. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
  326. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
  327. data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
  328. data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
  329. data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +9 -0
  330. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +8 -0
  331. data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +9 -0
  332. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
  333. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
  334. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
  335. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
  336. data/spec/integration/facter_spec.rb +39 -0
  337. data/spec/lib/facter_spec/cpuinfo.rb +15 -0
  338. data/spec/lib/facter_spec/windows_network.rb +64 -0
  339. data/spec/puppetlabs_spec/files.rb +57 -0
  340. data/spec/puppetlabs_spec/fixtures.rb +49 -0
  341. data/spec/puppetlabs_spec/matchers.rb +87 -0
  342. data/spec/puppetlabs_spec/verbose.rb +9 -0
  343. data/spec/puppetlabs_spec_helper.rb +26 -0
  344. data/spec/shared_contexts/platform.rb +55 -0
  345. data/spec/shared_formats/parses.rb +3 -0
  346. data/spec/spec_helper.rb +75 -0
  347. data/spec/unit/application_spec.rb +101 -0
  348. data/spec/unit/architecture_spec.rb +63 -0
  349. data/spec/unit/blockdevices_spec.rb +109 -0
  350. data/spec/unit/core/aggregate_spec.rb +125 -0
  351. data/spec/unit/core/directed_graph_spec.rb +79 -0
  352. data/spec/unit/core/execution/base_spec.rb +130 -0
  353. data/spec/unit/core/execution/posix_spec.rb +86 -0
  354. data/spec/unit/core/execution/windows_spec.rb +106 -0
  355. data/spec/unit/core/execution_spec.rb +42 -0
  356. data/spec/unit/core/logging_spec.rb +104 -0
  357. data/spec/unit/core/resolvable_spec.rb +81 -0
  358. data/spec/unit/core/suitable_spec.rb +106 -0
  359. data/spec/unit/dhcp_servers_spec.rb +152 -0
  360. data/spec/unit/domain_spec.rb +310 -0
  361. data/spec/unit/ec2/rest_spec.rb +145 -0
  362. data/spec/unit/ec2_spec.rb +127 -0
  363. data/spec/unit/facter_spec.rb +108 -0
  364. data/spec/unit/filesystems_spec.rb +50 -0
  365. data/spec/unit/fqdn_spec.rb +16 -0
  366. data/spec/unit/gce/metadata_spec.rb +49 -0
  367. data/spec/unit/gce_spec.rb +34 -0
  368. data/spec/unit/hardwareisa_spec.rb +41 -0
  369. data/spec/unit/hardwaremodel_spec.rb +56 -0
  370. data/spec/unit/hostname_spec.rb +40 -0
  371. data/spec/unit/id_spec.rb +29 -0
  372. data/spec/unit/interfaces_spec.rb +57 -0
  373. data/spec/unit/ipaddress6_spec.rb +161 -0
  374. data/spec/unit/ipaddress_spec.rb +114 -0
  375. data/spec/unit/kernel_spec.rb +24 -0
  376. data/spec/unit/kernelmajversion_spec.rb +22 -0
  377. data/spec/unit/kernelrelease_spec.rb +69 -0
  378. data/spec/unit/kernelversion_spec.rb +32 -0
  379. data/spec/unit/ldom_spec.rb +75 -0
  380. data/spec/unit/lsbdistcodename_spec.rb +25 -0
  381. data/spec/unit/lsbdistdescription_spec.rb +25 -0
  382. data/spec/unit/lsbdistid_spec.rb +25 -0
  383. data/spec/unit/lsbdistrelease_spec.rb +25 -0
  384. data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
  385. data/spec/unit/lsbrelease_spec.rb +25 -0
  386. data/spec/unit/macaddress_spec.rb +73 -0
  387. data/spec/unit/manufacturer_spec.rb +115 -0
  388. data/spec/unit/memory_spec.rb +470 -0
  389. data/spec/unit/netmask_spec.rb +106 -0
  390. data/spec/unit/operatingsystem_spec.rb +160 -0
  391. data/spec/unit/operatingsystemmajrelease_spec.rb +38 -0
  392. data/spec/unit/operatingsystemrelease_spec.rb +236 -0
  393. data/spec/unit/osfamily_spec.rb +62 -0
  394. data/spec/unit/partitions_spec.rb +48 -0
  395. data/spec/unit/physicalprocessorcount_spec.rb +85 -0
  396. data/spec/unit/processor_spec.rb +401 -0
  397. data/spec/unit/ps_spec.rb +42 -0
  398. data/spec/unit/selinux_spec.rb +114 -0
  399. data/spec/unit/ssh_spec.rb +77 -0
  400. data/spec/unit/uniqueid_spec.rb +27 -0
  401. data/spec/unit/uptime_spec.rb +110 -0
  402. data/spec/unit/util/collection_spec.rb +258 -0
  403. data/spec/unit/util/config_spec.rb +97 -0
  404. data/spec/unit/util/confine_spec.rb +148 -0
  405. data/spec/unit/util/dhcp_servers_spec.rb +63 -0
  406. data/spec/unit/util/directory_loader_spec.rb +88 -0
  407. data/spec/unit/util/ec2_spec.rb +184 -0
  408. data/spec/unit/util/fact_spec.rb +142 -0
  409. data/spec/unit/util/file_read_spec.rb +29 -0
  410. data/spec/unit/util/formatter_spec.rb +50 -0
  411. data/spec/unit/util/ip/windows_spec.rb +80 -0
  412. data/spec/unit/util/ip_spec.rb +467 -0
  413. data/spec/unit/util/loader_spec.rb +286 -0
  414. data/spec/unit/util/macaddress_spec.rb +141 -0
  415. data/spec/unit/util/macosx_spec.rb +114 -0
  416. data/spec/unit/util/manufacturer_spec.rb +223 -0
  417. data/spec/unit/util/normalization_spec.rb +113 -0
  418. data/spec/unit/util/operatingsystem_spec.rb +92 -0
  419. data/spec/unit/util/parser_spec.rb +200 -0
  420. data/spec/unit/util/partitions/partitions_spec.rb +67 -0
  421. data/spec/unit/util/partitions_spec.rb +19 -0
  422. data/spec/unit/util/posix_spec.rb +11 -0
  423. data/spec/unit/util/processor_spec.rb +92 -0
  424. data/spec/unit/util/registry_spec.rb +76 -0
  425. data/spec/unit/util/resolution_spec.rb +129 -0
  426. data/spec/unit/util/solaris_zones_spec.rb +127 -0
  427. data/spec/unit/util/uptime_spec.rb +126 -0
  428. data/spec/unit/util/values_spec.rb +171 -0
  429. data/spec/unit/util/virtual_spec.rb +364 -0
  430. data/spec/unit/util/vlans_spec.rb +42 -0
  431. data/spec/unit/util/wmi_spec.rb +19 -0
  432. data/spec/unit/util/xendomains_spec.rb +21 -0
  433. data/spec/unit/version_spec.rb +42 -0
  434. data/spec/unit/virtual_spec.rb +519 -0
  435. data/spec/unit/zfs_version_spec.rb +75 -0
  436. data/spec/unit/zonename_spec.rb +14 -0
  437. data/spec/unit/zones_spec.rb +55 -0
  438. data/spec/unit/zpool_version_spec.rb +75 -0
  439. data/spec/watchr.rb +125 -0
  440. metadata +815 -0
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter'
5
+
6
+ describe "LSB distribution major release fact" do
7
+ it "should be derived from lsb_release" do
8
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
9
+ Facter.stubs(:value).with(:lsbdistrelease).returns("10.10")
10
+
11
+ Facter.fact(:lsbmajdistrelease).value.should == "10"
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "lsbrelease fact" do
6
+
7
+ [ "Linux", "GNU/kFreeBSD"].each do |kernel|
8
+ describe "on #{kernel}" do
9
+ before :each do
10
+ Facter.fact(:kernel).stubs(:value).returns kernel
11
+ end
12
+
13
+ it "returns the release through lsb_release -v -s 2>/dev/null" do
14
+ Facter::Core::Execution.impl.stubs(:execute).with('lsb_release -v -s 2>/dev/null', anything).returns 'n/a'
15
+ expect(Facter.fact(:lsbrelease).value).to eq 'n/a'
16
+ end
17
+
18
+ it "returns nil if lsb_release is not installed" do
19
+ Facter::Core::Execution.impl.stubs(:expand_command).with('lsb_release -v -s 2>/dev/null').returns nil
20
+ expect(Facter.fact(:lsbrelease).value).to be_nil
21
+ end
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,73 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/ip'
5
+
6
+
7
+ def ifconfig_fixture(filename)
8
+ File.read(fixtures('ifconfig', filename))
9
+ end
10
+
11
+ describe "macaddress fact" do
12
+ include FacterSpec::ConfigHelper
13
+
14
+ before do
15
+ given_a_configuration_of(:is_windows => false)
16
+ end
17
+
18
+ describe "when run on Linux" do
19
+ before :each do
20
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
21
+ Facter.fact(:operatingsystem).stubs(:value).returns("Linux")
22
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
23
+ end
24
+
25
+ it "should return the macaddress of the first interface" do
26
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["-a","2>/dev/null"]).
27
+ returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces'))
28
+
29
+ Facter.value(:macaddress).should == "00:12:3f:be:22:01"
30
+ end
31
+
32
+ it "should return nil when no macaddress can be found" do
33
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["-a","2>/dev/null"]).
34
+ returns(ifconfig_fixture('linux_ifconfig_no_mac'))
35
+
36
+ proc { Facter.value(:macaddress) }.should_not raise_error
37
+ Facter.value(:macaddress).should be_nil
38
+ end
39
+
40
+ # some interfaces dont have a real mac addresses (like venet inside a container)
41
+ it "should return nil when no interface has a real macaddress" do
42
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["-a","2>/dev/null"]).
43
+ returns(ifconfig_fixture('linux_ifconfig_venet'))
44
+
45
+ proc { Facter.value(:macaddress) }.should_not raise_error
46
+ Facter.value(:macaddress).should be_nil
47
+ end
48
+ end
49
+
50
+ describe "when run on BSD" do
51
+ it "should return macaddress information" do
52
+ Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
53
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
54
+ Facter::Util::IP.stubs(:exec_ifconfig).
55
+ returns(ifconfig_fixture('bsd_ifconfig_all_with_multiple_interfaces'))
56
+
57
+ Facter.value(:macaddress).should == "00:0b:db:93:09:67"
58
+ end
59
+ end
60
+
61
+ describe "when run on OpenBSD with bridge(4) rules" do
62
+ it "should return macaddress information" do
63
+ Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
64
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
65
+ Facter::Util::IP.stubs(:exec_ifconfig).
66
+ returns(ifconfig_fixture('openbsd_bridge_rules'))
67
+
68
+ proc { Facter.value(:macaddress) }.should_not raise_error
69
+ Facter.value(:macaddress).should be_nil
70
+ end
71
+ end
72
+
73
+ end
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter'
5
+ require 'facter/util/manufacturer'
6
+
7
+ describe "Hardware manufacturer facts" do
8
+
9
+ describe "on OS'es without DMI support" do
10
+
11
+ it "no DMI facts should be reported" do
12
+ Facter.fact(:kernel).stubs(:value).returns("Darwin")
13
+ Facter.fact(:boardmanufacturer).should == nil
14
+ Facter.fact(:boardproductname).should == nil
15
+ Facter.fact(:boardserialnumber).should == nil
16
+ Facter.fact(:bios_vendor).should == nil
17
+ Facter.fact(:bios_version).should == nil
18
+ Facter.fact(:bios_release_date).should == nil
19
+ Facter.fact(:type).should == nil
20
+ end
21
+
22
+ end
23
+
24
+ describe "on OS'es with DMI support" do
25
+ before :each do
26
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
27
+ dmidecode_output = <<-eos
28
+ Handle 0x0000, DMI type 0, 24 bytes
29
+ BIOS Information
30
+ Vendor: Dell Inc.
31
+ Version: 1.2.5
32
+ Release Date: 03/16/2011
33
+ Address: 0xF0000
34
+ Runtime Size: 64 kB
35
+ ROM Size: 4096 kB
36
+ Characteristics:
37
+ ISA is supported
38
+ PCI is supported
39
+ PNP is supported
40
+ BIOS is upgradeable
41
+ BIOS shadowing is allowed
42
+ Boot from CD is supported
43
+ Selectable boot is supported
44
+ EDD is supported
45
+ 8042 keyboard services are supported (int 9h)
46
+ Serial services are supported (int 14h)
47
+ CGA/mono video services are supported (int 10h)
48
+ ACPI is supported
49
+ USB legacy is supported
50
+ BIOS boot specification is supported
51
+ Function key-initiated network boot is supported
52
+ Targeted content distribution is supported
53
+ BIOS Revision: 1.2
54
+
55
+ Handle 0x0100, DMI type 1, 27 bytes
56
+ System Information
57
+ Manufacturer: Dell Inc.
58
+ Product Name: PowerEdge R515
59
+ Version: Not Specified
60
+ Serial Number: ABCD124
61
+ UUID: 1A2B3456-7890-1A23-4567-B8C91D123456
62
+ Wake-up Type: Power Switch
63
+ SKU Number: Not Specified
64
+ Family: Not Specified
65
+
66
+ Handle 0x0200, DMI type 2, 9 bytes
67
+ Base Board Information
68
+ Manufacturer: Dell Inc.
69
+ Product Name: 03X0MN
70
+ Version: A03
71
+ Serial Number: ..AB1234567B1234.
72
+ Asset Tag: Not Specified
73
+
74
+ Handle 0x0300, DMI type 3, 21 bytes
75
+ Chassis Information
76
+ Manufacturer: Dell Inc.
77
+ Type: Rack Mount Chassis
78
+ Lock: Present
79
+ Version: Not Specified
80
+ Serial Number: ABCD124
81
+ Asset Tag: Not Specified
82
+ Boot-up State: Safe
83
+ Power Supply State: Safe
84
+ Thermal State: Safe
85
+ Security Status: Unknown
86
+ OEM Information: 0x00000000
87
+ Height: 2 U
88
+ Number Of Power Cords: Unspecified
89
+ Contained Elements: 0
90
+
91
+ Handle 0x7F00, DMI type 127, 4 bytes
92
+ End Of Table
93
+ eos
94
+ Facter::Manufacturer.stubs(:get_dmi_table).returns(dmidecode_output)
95
+ end
96
+
97
+ it "should report the correct details from the DMI query" do
98
+ Facter.fact(:manufacturer).value.should == "Dell Inc."
99
+ Facter.fact(:boardmanufacturer).value.should == "Dell Inc."
100
+ Facter.fact(:boardproductname).value.should == "03X0MN"
101
+ Facter.fact(:boardserialnumber).value.should == "..AB1234567B1234."
102
+ Facter.fact(:bios_vendor).value.should == "Dell Inc."
103
+ Facter.fact(:bios_version).value.should == "1.2.5"
104
+ Facter.fact(:bios_release_date).value.should == "03/16/2011"
105
+ Facter.fact(:manufacturer).value.should == "Dell Inc."
106
+ Facter.fact(:productname).value.should == "PowerEdge R515"
107
+ Facter.fact(:serialnumber).value.should == "ABCD124"
108
+ Facter.fact(:type).value.should == "Rack Mount Chassis"
109
+ Facter.fact(:productname).value.should_not == Facter.fact(:boardproductname).value
110
+ Facter.fact(:serialnumber).value.should_not == Facter.fact(:boardserialnumber).value
111
+ end
112
+
113
+ end
114
+
115
+ end
@@ -0,0 +1,470 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "Memory facts" do
6
+ before(:each) do
7
+ Facter.collection.internal_loader.load(:memory)
8
+ end
9
+
10
+ after(:each) do
11
+ Facter.clear
12
+ end
13
+
14
+ describe "when returning scaled sizes" do
15
+ [ "memorysize",
16
+ "memoryfree",
17
+ "swapsize",
18
+ "swapfree"
19
+ ].each do |fact|
20
+
21
+ describe "when #{fact}_mb does not exist" do
22
+ before(:each) do
23
+ Facter.fact(fact + "_mb").stubs(:value).returns(nil)
24
+ end
25
+
26
+ it "#{fact} should not exist either" do
27
+ Facter.fact(fact).value.should be_nil
28
+ end
29
+ end
30
+
31
+ { "200.00" => "200.00 MB",
32
+ "1536.00" => "1.50 GB",
33
+ "1572864.00" => "1.50 TB",
34
+ }.each do |mbval, scval|
35
+ it "should scale #{fact} when given #{mbval} MB" do
36
+ Facter.fact(fact + "_mb").stubs(:value).returns(mbval)
37
+ Facter.fact(fact).value.should == scval
38
+ end
39
+ end
40
+ end
41
+
42
+ after(:each) do
43
+ Facter.clear
44
+ end
45
+ end
46
+
47
+ describe "on Darwin" do
48
+ before(:each) do
49
+ Facter.clear
50
+ Facter.fact(:kernel).stubs(:value).returns("Darwin")
51
+ Facter::Util::POSIX.stubs(:sysctl).with('hw.memsize').returns('8589934592')
52
+ Facter::Core::Execution.stubs(:exec).with('vm_stat').returns(my_fixture_read('darwin-vm_stat'))
53
+ Facter::Util::POSIX.stubs(:sysctl).with('vm.swapusage').returns("vm.swapusage: total = 64.00M used = 1.00M free = 63.00M (encrypted)")
54
+
55
+ Facter.collection.internal_loader.load(:memory)
56
+ end
57
+
58
+ it "should return the current swap size in MB" do
59
+ Facter.fact(:swapsize_mb).value.should == "64.00"
60
+ end
61
+
62
+ it "should return the current swap free in MB" do
63
+ Facter.fact(:swapfree_mb).value.should == "63.00"
64
+ end
65
+
66
+ it "should return whether swap is encrypted" do
67
+ Facter.fact(:swapencrypted).value.should == true
68
+ end
69
+
70
+ it "should return the memory size in MB" do
71
+ Facter.fact(:memorysize_mb).value.should == "8192.00"
72
+ end
73
+
74
+ it "should return the memory free in MB" do
75
+ Facter.fact(:memoryfree_mb).value.should == "138.70"
76
+ end
77
+
78
+ after(:each) do
79
+ Facter.clear
80
+ end
81
+ end
82
+
83
+ [ "linux",
84
+ "gnu/kfreebsd",
85
+ ].each do |kernel|
86
+
87
+
88
+ describe "on #{kernel}" do
89
+ before(:each) do
90
+ Facter.clear
91
+ Facter.fact(:kernel).stubs(:value).returns(kernel)
92
+
93
+ meminfo_contents = my_fixture_read('linux-proc_meminfo').split("\n")
94
+
95
+ File.stubs(:readlines).with("/proc/meminfo").returns(meminfo_contents)
96
+
97
+ Facter.collection.internal_loader.load(:memory)
98
+ end
99
+
100
+ after(:each) do
101
+ Facter.clear
102
+ end
103
+
104
+ it "should return the current memory size in MB" do
105
+ Facter.fact(:memorysize_mb).value.should == "249.91"
106
+ end
107
+
108
+ it "should return the current memory free in MB" do
109
+ Facter.fact(:memoryfree_mb).value.should == "196.16"
110
+ end
111
+
112
+ it "should return the current swap size in MB" do
113
+ Facter.fact(:swapsize_mb).value.should == "511.99"
114
+ end
115
+
116
+ it "should return the current swap free in MB" do
117
+ Facter.fact(:swapfree_mb).value.should == "511.99"
118
+ end
119
+ end
120
+ end
121
+
122
+ describe "on AIX" do
123
+ before (:each) do
124
+ Facter.clear
125
+ Facter.fact(:kernel).stubs(:value).returns("AIX")
126
+
127
+ Facter::Core::Execution.stubs(:exec).with('swap -l 2>/dev/null').returns(my_fixture_read('aix-swap_l'))
128
+ Facter::Core::Execution.stubs(:exec).with('/usr/bin/svmon -O unit=KB').returns(my_fixture_read('aix-svmon'))
129
+
130
+ Facter.collection.internal_loader.load(:memory)
131
+ end
132
+
133
+ after(:each) do
134
+ Facter.clear
135
+ end
136
+
137
+ describe "when not root" do
138
+ before(:each) do
139
+ Facter.fact(:id).stubs(:value).returns("notroot")
140
+ end
141
+
142
+ it "should return nil for swap size" do
143
+ Facter.fact(:swapsize_mb).value.should be_nil
144
+ end
145
+
146
+ it "should return nil for swap free" do
147
+ Facter.fact(:swapfree_mb).value.should be_nil
148
+ end
149
+ end
150
+
151
+ describe "when root" do
152
+ before(:each) do
153
+ Facter.fact(:id).stubs(:value).returns("root")
154
+ end
155
+
156
+ it "should return the current swap size in MB" do
157
+ Facter.fact(:swapsize_mb).value.should == "512.00"
158
+ end
159
+
160
+ it "should return the current swap free in MB" do
161
+ Facter.fact(:swapfree_mb).value.should == "508.00"
162
+ end
163
+ end
164
+
165
+ it "should return the current memory free in MB" do
166
+ Facter.fact(:memoryfree_mb).value.should == "22284.76"
167
+ end
168
+
169
+ it "should return the current memory size in MB" do
170
+ Facter.fact(:memorysize_mb).value.should == "32000.00"
171
+ end
172
+
173
+ end
174
+
175
+
176
+ describe "on OpenBSD" do
177
+ before :each do
178
+ Facter.clear
179
+ Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
180
+
181
+ swapusage = "total: 4080510 512-blocks allocated, 461832 used, 3618678 available"
182
+ Facter::Core::Execution.stubs(:exec).with('swapctl -s').returns(swapusage)
183
+
184
+ Facter::Core::Execution.stubs(:exec).with('vmstat').returns(my_fixture_read('openbsd-vmstat'))
185
+
186
+ Facter::Util::POSIX.stubs(:sysctl).with('hw.physmem').returns('267321344')
187
+ Facter::Util::POSIX.stubs(:sysctl).with('vm.swapencrypt.enable').returns('1')
188
+
189
+ Facter.collection.internal_loader.load(:memory)
190
+ end
191
+
192
+ after :each do
193
+ Facter.clear
194
+ end
195
+
196
+ it "should return the current swap free in MB" do
197
+ Facter.fact(:swapfree_mb).value.should == "1766.93"
198
+ end
199
+
200
+ it "should return the current swap size in MB" do
201
+ Facter.fact(:swapsize_mb).value.should == "1992.44"
202
+ end
203
+
204
+ it "should return the current memory free in MB" do
205
+ Facter.fact(:memoryfree_mb).value.should == "176.79"
206
+ end
207
+
208
+ it "should return the current memory size in MB" do
209
+ Facter.fact(:memorysize_mb).value.should == "254.94"
210
+ end
211
+
212
+ it "should return whether swap is encrypted" do
213
+ Facter.fact(:swapencrypted).value.should == true
214
+ end
215
+ end
216
+
217
+
218
+ describe "on Solaris" do
219
+ before(:each) do
220
+ Facter.clear
221
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
222
+
223
+ Facter::Core::Execution.stubs(:exec).with('/usr/sbin/prtconf 2>/dev/null').returns(my_fixture_read('solaris-prtconf'))
224
+ Facter::Core::Execution.stubs(:exec).with('vmstat').returns(my_fixture_read('solaris-vmstat'))
225
+ end
226
+
227
+ after(:each) do
228
+ Facter.clear
229
+ end
230
+
231
+ describe "when single swap exists" do
232
+ before(:each) do
233
+ Facter::Core::Execution.stubs(:exec).with('/usr/sbin/swap -l 2>/dev/null').returns my_fixture_read('solaris-swap_l-single')
234
+
235
+ Facter.collection.internal_loader.load(:memory)
236
+ end
237
+
238
+ it "should return the current memory size in MB" do
239
+ Facter.fact(:memorysize_mb).value.should == "2048.00"
240
+ end
241
+
242
+ it "should return the current memory free in MB" do
243
+ Facter.fact(:memoryfree_mb).value.should == "465.06"
244
+ end
245
+
246
+ it "should return the current swap free in MB" do
247
+ Facter.fact(:swapfree_mb).value.should == "1023.99"
248
+ end
249
+
250
+ it "should return the current swap size in MB" do
251
+ Facter.fact(:swapsize_mb).value.should == "1023.99"
252
+ end
253
+
254
+ end
255
+
256
+ describe "when multiple swaps exist" do
257
+ before(:each) do
258
+ Facter::Core::Execution.stubs(:exec).with('/usr/sbin/swap -l 2>/dev/null').returns my_fixture_read('solaris-swap_l-multiple')
259
+ Facter.collection.internal_loader.load(:memory)
260
+ end
261
+
262
+ it "should return the current memory size in MB" do
263
+ Facter.fact(:memorysize_mb).value.should == "2048.00"
264
+ end
265
+
266
+ it "should return the current memory free in MB" do
267
+ Facter.fact(:memoryfree_mb).value.should == "465.06"
268
+ end
269
+
270
+ it "should return the current swap free in MB" do
271
+ Facter.fact(:swapfree_mb).value.should == "2047.98"
272
+ end
273
+
274
+ it "should return the current swap size in MB" do
275
+ Facter.fact(:swapsize_mb).value.should == "2047.98"
276
+ end
277
+ end
278
+
279
+ describe "when no swap exists" do
280
+ before(:each) do
281
+ Facter::Core::Execution.stubs(:exec).with('/usr/sbin/swap -l 2>/dev/null').returns ""
282
+
283
+ Facter.collection.internal_loader.load(:memory)
284
+ end
285
+
286
+ it "should return the current memory size in MB" do
287
+ Facter.fact(:memorysize_mb).value.should == "2048.00"
288
+ end
289
+
290
+ it "should return the current memory free in MB" do
291
+ Facter.fact(:memoryfree_mb).value.should == "465.06"
292
+ end
293
+
294
+ it "should return 0 for the swap free in MB" do
295
+ Facter.fact(:swapfree_mb).value.should == "0.00"
296
+ end
297
+
298
+ it "should return 0 for the swap size in MB" do
299
+ Facter.fact(:swapsize_mb).value.should == "0.00"
300
+ end
301
+ end
302
+
303
+ describe "when in a SmartOS zone" do
304
+ before(:each) do
305
+ Facter::Core::Execution.stubs(:exec).with('/usr/sbin/swap -l 2>/dev/null').returns my_fixture_read('smartos_zone_swap_l-single')
306
+ Facter.collection.internal_loader.load(:memory)
307
+ end
308
+
309
+ it "should return the current swap size in MB" do
310
+ Facter.fact(:swapsize_mb).value.should == "49152.00"
311
+ end
312
+
313
+ it "should return the current swap free in MB" do
314
+ Facter.fact(:swapfree_mb).value.should == "33676.06"
315
+ end
316
+ end
317
+
318
+ end
319
+
320
+ describe "on DragonFly BSD" do
321
+ before :each do
322
+ Facter.clear
323
+ Facter.fact(:kernel).stubs(:value).returns("dragonfly")
324
+
325
+ swapusage = "total: 148342k bytes allocated = 0k used, 148342k available"
326
+ Facter::Util::POSIX.stubs(:sysctl).with('hw.pagesize').returns("4096")
327
+ Facter::Util::POSIX.stubs(:sysctl).with('vm.swap_size').returns("128461")
328
+ Facter::Util::POSIX.stubs(:sysctl).with('vm.swap_anon_use').returns("2635")
329
+ Facter::Util::POSIX.stubs(:sysctl).with('vm.swap_cache_use').returns("0")
330
+
331
+ Facter::Core::Execution.stubs(:exec).with('vmstat').returns my_fixture_read('dragonfly-vmstat')
332
+
333
+ Facter::Util::POSIX.stubs(:sysctl).with("hw.physmem").returns('248512512')
334
+
335
+ Facter.collection.internal_loader.load(:memory)
336
+ end
337
+
338
+ after :each do
339
+ Facter.clear
340
+ end
341
+
342
+ it "should return the current swap free in MB" do
343
+ Facter.fact(:swapfree_mb).value.should == "491.51"
344
+ end
345
+
346
+ it "should return the current swap size in MB" do
347
+ Facter.fact(:swapsize_mb).value.should == "501.80"
348
+ end
349
+
350
+ it "should return the current memory size in MB" do
351
+ Facter.fact(:memorysize_mb).value.should == "237.00"
352
+ end
353
+
354
+ it "should return the current memory free in MB" do
355
+ Facter.fact(:memoryfree_mb).value.should == "13.61"
356
+ end
357
+ end
358
+
359
+ describe "on FreeBSD" do
360
+ before(:each) do
361
+ Facter.clear
362
+ Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
363
+
364
+ Facter::Core::Execution.stubs(:exec).with('vmstat -H').returns my_fixture_read('freebsd-vmstat')
365
+ Facter::Util::POSIX.stubs(:sysctl).with('hw.physmem').returns '1056276480'
366
+ end
367
+
368
+ after(:each) do
369
+ Facter.clear
370
+ end
371
+
372
+ describe "with no swap" do
373
+ before(:each) do
374
+ sample_swapinfo = 'Device 1K-blocks Used Avail Capacity'
375
+
376
+ Facter::Core::Execution.stubs(:exec).with('swapinfo -k').returns sample_swapinfo
377
+ Facter.collection.internal_loader.load(:memory)
378
+ end
379
+
380
+ it "should return the current swap free in MB" do
381
+ Facter.fact(:swapfree_mb).value.should == "0.00"
382
+ end
383
+
384
+ it "should return the current swap size in MB" do
385
+ Facter.fact(:swapsize_mb).value.should == "0.00"
386
+ end
387
+
388
+ it "should return the current memory size in MB" do
389
+ Facter.fact(:memorysize_mb).value.should == "1007.34"
390
+ end
391
+
392
+ it "should return the current memory free in MB" do
393
+ Facter.fact(:memoryfree_mb).value.should == "641.25"
394
+ end
395
+ end
396
+
397
+ describe "with one swap" do
398
+ before(:each) do
399
+ Facter::Core::Execution.stubs(:exec).with('swapinfo -k').returns my_fixture_read('darwin-swapinfo-single')
400
+
401
+ Facter.collection.internal_loader.load(:memory)
402
+ end
403
+
404
+ it "should return the current swap free in MB" do
405
+ Facter.fact(:swapfree_mb).value.should == "1023.96"
406
+ end
407
+
408
+ it "should return the current swap size in MB" do
409
+ Facter.fact(:swapsize_mb).value.should == "2000.53"
410
+ end
411
+
412
+ it "should return the current memory size in MB" do
413
+ Facter.fact(:memorysize_mb).value.should == "1007.34"
414
+ end
415
+
416
+ it "should return the current memory free in MB" do
417
+ Facter.fact(:memoryfree_mb).value.should == "641.25"
418
+ end
419
+ end
420
+
421
+ describe "with multiple swaps" do
422
+ before(:each) do
423
+ Facter::Core::Execution.stubs(:exec).with('swapinfo -k').returns my_fixture_read('darwin-swapinfo-multiple')
424
+
425
+ Facter.collection.internal_loader.load(:memory)
426
+ end
427
+
428
+ it "should return the current swap free in MB" do
429
+ Facter.fact(:swapfree_mb).value.should == "2047.93"
430
+ end
431
+
432
+ it "should return the current swap size in MB" do
433
+ Facter.fact(:swapsize_mb).value.should == "4977.62"
434
+ end
435
+
436
+ it "should return the current memory size in MB" do
437
+ Facter.fact(:memorysize_mb).value.should == "1007.34"
438
+ end
439
+
440
+ it "should return the current memory free in MB" do
441
+ Facter.fact(:memoryfree_mb).value.should == "641.25"
442
+ end
443
+ end
444
+ end
445
+
446
+ describe "on Windows" do
447
+ before :each do
448
+ Facter.clear
449
+ Facter.fact(:kernel).stubs(:value).returns("windows")
450
+ Facter.collection.internal_loader.load(:memory)
451
+ require 'facter/util/wmi'
452
+ end
453
+
454
+ it "should return free memory in MB" do
455
+ os = stubs 'os'
456
+ os.stubs(:FreePhysicalMemory).returns("3415624")
457
+ Facter::Util::WMI.stubs(:execquery).returns([os])
458
+
459
+ Facter.fact(:memoryfree_mb).value.should == '3335.57'
460
+ end
461
+
462
+ it "should return total memory in MB" do
463
+ computer = stubs 'computer'
464
+ computer.stubs(:TotalPhysicalMemory).returns("4193837056")
465
+ Facter::Util::WMI.stubs(:execquery).returns([computer])
466
+
467
+ Facter.fact(:memorysize_mb).value.should == '3999.55'
468
+ end
469
+ end
470
+ end