facter 2.0.1.rc1-universal-darwin

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 (379) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +194 -0
  3. data/CONTRIBUTING.md +65 -0
  4. data/Gemfile +43 -0
  5. data/LICENSE +15 -0
  6. data/README.md +33 -0
  7. data/Rakefile +79 -0
  8. data/bin/facter +16 -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 +33 -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 +262 -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 +100 -0
  39. data/lib/facter/core/execution/base.rb +73 -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 +117 -0
  45. data/lib/facter/domain.rb +99 -0
  46. data/lib/facter/ec2.rb +37 -0
  47. data/lib/facter/facterversion.rb +15 -0
  48. data/lib/facter/filesystems.rb +38 -0
  49. data/lib/facter/fqdn.rb +22 -0
  50. data/lib/facter/hardwareisa.rb +20 -0
  51. data/lib/facter/hardwaremodel.rb +67 -0
  52. data/lib/facter/hostname.rb +33 -0
  53. data/lib/facter/id.rb +21 -0
  54. data/lib/facter/interfaces.rb +46 -0
  55. data/lib/facter/ipaddress.rb +171 -0
  56. data/lib/facter/ipaddress6.rb +82 -0
  57. data/lib/facter/iphostnumber.rb +29 -0
  58. data/lib/facter/kernel.rb +22 -0
  59. data/lib/facter/kernelmajversion.rb +15 -0
  60. data/lib/facter/kernelrelease.rb +42 -0
  61. data/lib/facter/kernelversion.rb +22 -0
  62. data/lib/facter/ldom.rb +47 -0
  63. data/lib/facter/lsbdistcodename.rb +18 -0
  64. data/lib/facter/lsbdistdescription.rb +21 -0
  65. data/lib/facter/lsbdistid.rb +18 -0
  66. data/lib/facter/lsbdistrelease.rb +18 -0
  67. data/lib/facter/lsbmajdistrelease.rb +27 -0
  68. data/lib/facter/lsbrelease.rb +18 -0
  69. data/lib/facter/macaddress.rb +97 -0
  70. data/lib/facter/macosx.rb +56 -0
  71. data/lib/facter/manufacturer.rb +68 -0
  72. data/lib/facter/memory.rb +162 -0
  73. data/lib/facter/netmask.rb +42 -0
  74. data/lib/facter/network.rb +20 -0
  75. data/lib/facter/operatingsystem.rb +121 -0
  76. data/lib/facter/operatingsystemmajrelease.rb +33 -0
  77. data/lib/facter/operatingsystemrelease.rb +226 -0
  78. data/lib/facter/osfamily.rb +35 -0
  79. data/lib/facter/path.rb +14 -0
  80. data/lib/facter/physicalprocessorcount.rb +84 -0
  81. data/lib/facter/processor.rb +183 -0
  82. data/lib/facter/ps.rb +30 -0
  83. data/lib/facter/puppetversion.rb +20 -0
  84. data/lib/facter/rubysitedir.rb +12 -0
  85. data/lib/facter/rubyversion.rb +12 -0
  86. data/lib/facter/selinux.rb +99 -0
  87. data/lib/facter/ssh.rb +72 -0
  88. data/lib/facter/timezone.rb +14 -0
  89. data/lib/facter/uniqueid.rb +4 -0
  90. data/lib/facter/uptime.rb +34 -0
  91. data/lib/facter/uptime_days.rb +15 -0
  92. data/lib/facter/uptime_hours.rb +15 -0
  93. data/lib/facter/uptime_seconds.rb +24 -0
  94. data/lib/facter/util/architecture.rb +19 -0
  95. data/lib/facter/util/collection.rb +161 -0
  96. data/lib/facter/util/composite_loader.rb +12 -0
  97. data/lib/facter/util/config.rb +61 -0
  98. data/lib/facter/util/confine.rb +66 -0
  99. data/lib/facter/util/directory_loader.rb +83 -0
  100. data/lib/facter/util/ec2.rb +101 -0
  101. data/lib/facter/util/fact.rb +204 -0
  102. data/lib/facter/util/file_read.rb +37 -0
  103. data/lib/facter/util/formatter.rb +38 -0
  104. data/lib/facter/util/ip.rb +285 -0
  105. data/lib/facter/util/ip/windows.rb +215 -0
  106. data/lib/facter/util/loader.rb +146 -0
  107. data/lib/facter/util/macaddress.rb +43 -0
  108. data/lib/facter/util/macosx.rb +73 -0
  109. data/lib/facter/util/manufacturer.rb +104 -0
  110. data/lib/facter/util/memory.rb +228 -0
  111. data/lib/facter/util/monkey_patches.rb +8 -0
  112. data/lib/facter/util/netmask.rb +40 -0
  113. data/lib/facter/util/normalization.rb +94 -0
  114. data/lib/facter/util/nothing_loader.rb +12 -0
  115. data/lib/facter/util/parser.rb +158 -0
  116. data/lib/facter/util/plist.rb +24 -0
  117. data/lib/facter/util/plist/generator.rb +228 -0
  118. data/lib/facter/util/plist/parser.rb +226 -0
  119. data/lib/facter/util/processor.rb +291 -0
  120. data/lib/facter/util/registry.rb +11 -0
  121. data/lib/facter/util/resolution.rb +152 -0
  122. data/lib/facter/util/solaris_zones.rb +158 -0
  123. data/lib/facter/util/unix_root.rb +5 -0
  124. data/lib/facter/util/uptime.rb +81 -0
  125. data/lib/facter/util/values.rb +80 -0
  126. data/lib/facter/util/virtual.rb +151 -0
  127. data/lib/facter/util/vlans.rb +24 -0
  128. data/lib/facter/util/windows_root.rb +37 -0
  129. data/lib/facter/util/wmi.rb +16 -0
  130. data/lib/facter/util/xendomains.rb +10 -0
  131. data/lib/facter/version.rb +86 -0
  132. data/lib/facter/virtual.rb +262 -0
  133. data/lib/facter/vlans.rb +17 -0
  134. data/lib/facter/xendomains.rb +20 -0
  135. data/lib/facter/zfs_version.rb +10 -0
  136. data/lib/facter/zonename.rb +6 -0
  137. data/lib/facter/zones.rb +17 -0
  138. data/lib/facter/zpool_version.rb +10 -0
  139. data/spec/fixtures/cpuinfo/amd64dual +57 -0
  140. data/spec/fixtures/cpuinfo/amd64quad +79 -0
  141. data/spec/fixtures/cpuinfo/amd64solo +23 -0
  142. data/spec/fixtures/cpuinfo/amd64tri +86 -0
  143. data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
  144. data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
  145. data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
  146. data/spec/fixtures/cpuinfo/panda-armel +17 -0
  147. data/spec/fixtures/cpuinfo/ppc64 +19 -0
  148. data/spec/fixtures/cpuinfo/sparc +10 -0
  149. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
  150. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
  151. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
  152. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
  153. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
  154. data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
  155. data/spec/fixtures/hpux/sched.models +174 -0
  156. data/spec/fixtures/hpux/unistd.h +1534 -0
  157. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
  158. data/spec/fixtures/ifconfig/centos_5_5 +17 -0
  159. data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
  160. data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
  161. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
  162. data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
  163. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
  164. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
  165. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
  166. data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
  167. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
  168. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
  169. data/spec/fixtures/ifconfig/fedora_10 +36 -0
  170. data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
  171. data/spec/fixtures/ifconfig/fedora_13 +18 -0
  172. data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
  173. data/spec/fixtures/ifconfig/fedora_8 +38 -0
  174. data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
  175. data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
  176. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
  177. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
  178. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
  179. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
  180. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
  181. data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
  182. data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
  183. data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
  184. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
  185. data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
  186. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
  187. data/spec/fixtures/ldom/ldom_v1 +6 -0
  188. data/spec/fixtures/netstat/centos_5_5 +5 -0
  189. data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
  190. data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
  191. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
  192. data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
  193. data/spec/fixtures/netstat/fedora_10 +7 -0
  194. data/spec/fixtures/netstat/open_solaris_10 +16 -0
  195. data/spec/fixtures/netstat/open_solaris_b132 +17 -0
  196. data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
  197. data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
  198. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
  199. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
  200. data/spec/fixtures/unit/filesystems/linux +28 -0
  201. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
  202. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
  203. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
  204. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
  205. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
  206. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
  207. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
  208. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
  209. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
  210. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
  211. data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
  212. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
  213. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
  214. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
  215. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
  216. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
  217. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
  218. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
  219. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
  220. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
  221. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
  222. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
  223. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
  224. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
  225. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
  226. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
  227. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
  228. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
  229. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
  230. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
  231. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
  232. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
  233. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
  234. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
  235. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
  236. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
  237. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
  238. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
  239. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
  240. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
  241. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
  242. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
  243. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
  244. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
  245. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
  246. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
  247. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
  248. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
  249. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
  250. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
  251. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
  252. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
  253. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
  254. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
  255. data/spec/fixtures/unit/util/loader/nosuchfact.rb +1 -0
  256. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
  257. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
  258. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
  259. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
  260. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
  261. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
  262. data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
  263. data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
  264. data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
  265. data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
  266. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
  267. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
  268. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
  269. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  270. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  271. data/spec/fixtures/unit/util/vlans/linux_vlan_config +6 -0
  272. data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
  273. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  274. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
  275. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
  276. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
  277. data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
  278. data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
  279. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
  280. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
  281. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
  282. data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
  283. data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
  284. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
  285. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
  286. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
  287. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
  288. data/spec/integration/facter_spec.rb +39 -0
  289. data/spec/lib/facter_spec/cpuinfo.rb +15 -0
  290. data/spec/lib/facter_spec/windows_network.rb +64 -0
  291. data/spec/puppetlabs_spec/files.rb +57 -0
  292. data/spec/puppetlabs_spec/fixtures.rb +49 -0
  293. data/spec/puppetlabs_spec/matchers.rb +87 -0
  294. data/spec/puppetlabs_spec/verbose.rb +9 -0
  295. data/spec/puppetlabs_spec_helper.rb +26 -0
  296. data/spec/shared_contexts/platform.rb +55 -0
  297. data/spec/shared_formats/parses.rb +3 -0
  298. data/spec/spec_helper.rb +75 -0
  299. data/spec/unit/application_spec.rb +101 -0
  300. data/spec/unit/architecture_spec.rb +63 -0
  301. data/spec/unit/blockdevices_spec.rb +109 -0
  302. data/spec/unit/core/aggregate_spec.rb +125 -0
  303. data/spec/unit/core/directed_graph_spec.rb +79 -0
  304. data/spec/unit/core/execution/base_spec.rb +119 -0
  305. data/spec/unit/core/execution/posix_spec.rb +86 -0
  306. data/spec/unit/core/execution/windows_spec.rb +106 -0
  307. data/spec/unit/core/execution_spec.rb +37 -0
  308. data/spec/unit/core/logging_spec.rb +104 -0
  309. data/spec/unit/core/resolvable_spec.rb +81 -0
  310. data/spec/unit/core/suitable_spec.rb +96 -0
  311. data/spec/unit/domain_spec.rb +310 -0
  312. data/spec/unit/ec2_spec.rb +187 -0
  313. data/spec/unit/facter_spec.rb +108 -0
  314. data/spec/unit/filesystems_spec.rb +50 -0
  315. data/spec/unit/hardwareisa_spec.rb +41 -0
  316. data/spec/unit/hardwaremodel_spec.rb +56 -0
  317. data/spec/unit/hostname_spec.rb +40 -0
  318. data/spec/unit/id_spec.rb +29 -0
  319. data/spec/unit/interfaces_spec.rb +57 -0
  320. data/spec/unit/ipaddress6_spec.rb +161 -0
  321. data/spec/unit/ipaddress_spec.rb +114 -0
  322. data/spec/unit/kernel_spec.rb +24 -0
  323. data/spec/unit/kernelmajversion_spec.rb +17 -0
  324. data/spec/unit/kernelrelease_spec.rb +53 -0
  325. data/spec/unit/kernelversion_spec.rb +32 -0
  326. data/spec/unit/ldom_spec.rb +74 -0
  327. data/spec/unit/lsbdistcodename_spec.rb +25 -0
  328. data/spec/unit/lsbdistdescription_spec.rb +25 -0
  329. data/spec/unit/lsbdistid_spec.rb +25 -0
  330. data/spec/unit/lsbdistrelease_spec.rb +25 -0
  331. data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
  332. data/spec/unit/lsbrelease_spec.rb +25 -0
  333. data/spec/unit/macaddress_spec.rb +61 -0
  334. data/spec/unit/manufacturer_spec.rb +115 -0
  335. data/spec/unit/memory_spec.rb +539 -0
  336. data/spec/unit/netmask_spec.rb +95 -0
  337. data/spec/unit/operatingsystem_spec.rb +141 -0
  338. data/spec/unit/operatingsystemmajrelease_spec.rb +16 -0
  339. data/spec/unit/operatingsystemrelease_spec.rb +226 -0
  340. data/spec/unit/physicalprocessorcount_spec.rb +76 -0
  341. data/spec/unit/processor_spec.rb +393 -0
  342. data/spec/unit/ps_spec.rb +42 -0
  343. data/spec/unit/selinux_spec.rb +114 -0
  344. data/spec/unit/ssh_spec.rb +77 -0
  345. data/spec/unit/uniqueid_spec.rb +27 -0
  346. data/spec/unit/uptime_spec.rb +110 -0
  347. data/spec/unit/util/collection_spec.rb +258 -0
  348. data/spec/unit/util/config_spec.rb +84 -0
  349. data/spec/unit/util/confine_spec.rb +148 -0
  350. data/spec/unit/util/directory_loader_spec.rb +88 -0
  351. data/spec/unit/util/ec2_spec.rb +180 -0
  352. data/spec/unit/util/fact_spec.rb +142 -0
  353. data/spec/unit/util/file_read_spec.rb +29 -0
  354. data/spec/unit/util/ip/windows_spec.rb +80 -0
  355. data/spec/unit/util/ip_spec.rb +463 -0
  356. data/spec/unit/util/loader_spec.rb +286 -0
  357. data/spec/unit/util/macaddress_spec.rb +141 -0
  358. data/spec/unit/util/macosx_spec.rb +113 -0
  359. data/spec/unit/util/manufacturer_spec.rb +179 -0
  360. data/spec/unit/util/normalization_spec.rb +113 -0
  361. data/spec/unit/util/parser_spec.rb +200 -0
  362. data/spec/unit/util/processor_spec.rb +92 -0
  363. data/spec/unit/util/registry_spec.rb +76 -0
  364. data/spec/unit/util/resolution_spec.rb +129 -0
  365. data/spec/unit/util/solaris_zones_spec.rb +127 -0
  366. data/spec/unit/util/uptime_spec.rb +126 -0
  367. data/spec/unit/util/values_spec.rb +131 -0
  368. data/spec/unit/util/virtual_spec.rb +294 -0
  369. data/spec/unit/util/vlans_spec.rb +12 -0
  370. data/spec/unit/util/wmi_spec.rb +19 -0
  371. data/spec/unit/util/xendomains_spec.rb +21 -0
  372. data/spec/unit/version_spec.rb +42 -0
  373. data/spec/unit/virtual_spec.rb +470 -0
  374. data/spec/unit/zfs_version_spec.rb +75 -0
  375. data/spec/unit/zonename_spec.rb +14 -0
  376. data/spec/unit/zones_spec.rb +55 -0
  377. data/spec/unit/zpool_version_spec.rb +75 -0
  378. data/spec/watchr.rb +125 -0
  379. metadata +674 -0
@@ -0,0 +1,131 @@
1
+ require 'spec_helper'
2
+ require 'facter/util/values'
3
+
4
+ describe Facter::Util::Values do
5
+ describe 'deep_freeze' do
6
+ it "it dups and freezes strings" do
7
+ input = "hi"
8
+ output = described_class.deep_freeze(input)
9
+ expect(input).to_not be_frozen
10
+ expect(output).to be_frozen
11
+ end
12
+
13
+ it "freezes arrays and each element in the array" do
14
+ input = %w[one two three]
15
+ output = described_class.deep_freeze(input)
16
+
17
+ input.each { |entry| expect(entry).to_not be_frozen }
18
+ output.each { |entry| expect(entry).to be_frozen }
19
+
20
+ expect(input).to_not be_frozen
21
+ expect(output).to be_frozen
22
+ end
23
+
24
+ it "freezes hashes and each key and value in the hash" do
25
+ input = {'one' => 'two', 'three' => 'four'}
26
+
27
+ output = described_class.deep_freeze(input)
28
+
29
+ input.each_pair do |key, val|
30
+ # Ruby freezes all string keys, so these will always be frozen
31
+ expect(key).to be_frozen
32
+ expect(val).to_not be_frozen
33
+ end
34
+
35
+ output.each_pair do |key, val|
36
+ expect(key).to be_frozen
37
+ expect(val).to be_frozen
38
+ end
39
+
40
+ expect(input).to_not be_frozen
41
+ expect(output).to be_frozen
42
+ end
43
+
44
+ it "raises an error when given a structure that cannot be deeply frozen" do
45
+ expect {
46
+ described_class.deep_freeze(Set.new)
47
+ }.to raise_error(Facter::Util::Values::DeepFreezeError, /Cannot deep freeze.*Set/)
48
+ end
49
+ end
50
+
51
+ describe 'deep_merge' do
52
+ it "non-destructively concatenates arrays" do
53
+ first = %w[foo bar]
54
+ second = %w[baz quux]
55
+
56
+ expect(described_class.deep_merge(first, second)).to eq %w[foo bar baz quux]
57
+ expect(first).to eq %w[foo bar]
58
+ expect(second).to eq %w[baz quux]
59
+ end
60
+
61
+ it "returns the left value if the right value is nil" do
62
+ expect(described_class.deep_merge("left", nil)).to eq "left"
63
+ end
64
+
65
+ it "returns the right value if the left value is nil" do
66
+ expect(described_class.deep_merge(nil, "right")).to eq "right"
67
+ end
68
+
69
+ it "returns nil if both values are nil" do
70
+ expect(described_class.deep_merge(nil, nil)).to be_nil
71
+ end
72
+
73
+ describe "with hashes" do
74
+ it "merges when keys do not overlap" do
75
+
76
+ first = {:foo => 'bar'}
77
+ second = {:baz => 'quux'}
78
+
79
+ expect(described_class.deep_merge(first, second)).to eq(:foo => 'bar', :baz => 'quux')
80
+ expect(first).to eq(:foo => 'bar')
81
+ expect(second).to eq(:baz => 'quux')
82
+ end
83
+
84
+ it "concatenates arrays when both keys are arrays" do
85
+ first = {:foo => %w[bar]}
86
+ second = {:foo => %w[baz quux]}
87
+
88
+ expect(described_class.deep_merge(first, second)).to eq(:foo => %w[bar baz quux])
89
+ expect(first).to eq(:foo => %w[bar])
90
+ expect(second).to eq(:foo => %w[baz quux])
91
+ end
92
+
93
+ it "merges hashes when both keys are hashes" do
94
+ first = {:foo => {:pb => 'lead', :ag => 'silver'}}
95
+ second = {:foo => {:au => 'gold', :na => 'sodium'}}
96
+
97
+ expect(described_class.deep_merge(first, second)).to eq(
98
+ :foo => {
99
+ :pb => 'lead',
100
+ :ag => 'silver',
101
+ :au => 'gold',
102
+ :na => 'sodium'
103
+ }
104
+ )
105
+ end
106
+
107
+ it "prints the data structure path if an error is raised" do
108
+ first = {:foo => {:bar => {:baz => {:quux => true}}}}
109
+ second = {:foo => {:bar => {:baz => {:quux => false}}}}
110
+
111
+ expect {
112
+ described_class.deep_merge(first, second)
113
+ }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge .*at .*foo.*bar.*baz.*quux/)
114
+ end
115
+ end
116
+
117
+ describe "with unmergable scalar values" do
118
+ [
119
+ [true, false],
120
+ [1, 2],
121
+ ['up', 'down']
122
+ ].each do |(left, right)|
123
+ it "raises an error when merging #{left}:#{left.class} and #{right}:#{right.class}" do
124
+ expect {
125
+ described_class.deep_merge(left, right)
126
+ }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}/)
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,294 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/virtual'
5
+ require 'stringio'
6
+
7
+ describe Facter::Util::Virtual do
8
+
9
+ after do
10
+ Facter.clear
11
+ end
12
+ it "should detect openvz" do
13
+ FileTest.stubs(:directory?).with("/proc/vz").returns(true)
14
+ Dir.stubs(:glob).with("/proc/vz/*").returns(['vzquota'])
15
+ Facter::Util::Virtual.should be_openvz
16
+ end
17
+
18
+ it "should not detect openvz when /proc/lve/list is present" do
19
+ FileTest.stubs(:file?).with("/proc/lve/list").returns(true)
20
+ Facter::Util::Virtual.should_not be_openvz
21
+ end
22
+
23
+ it "should not detect openvz when /proc/vz/ is empty" do
24
+ FileTest.stubs(:file?).with("/proc/lve/list").returns(false)
25
+ FileTest.stubs(:directory?).with("/proc/vz").returns(true)
26
+ Dir.stubs(:glob).with("/proc/vz/*").returns([])
27
+ Facter::Util::Virtual.should_not be_openvz
28
+ end
29
+
30
+ it "should identify openvzhn when /proc/self/status has envID of 0" do
31
+ Facter::Util::Virtual.stubs(:openvz?).returns(true)
32
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
33
+ Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 0")
34
+ Facter::Util::Virtual.openvz_type().should == "openvzhn"
35
+ end
36
+
37
+ it "should identify openvzve when /proc/self/status has envID of 0" do
38
+ Facter::Util::Virtual.stubs(:openvz?).returns(true)
39
+ FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
40
+ Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 666")
41
+ Facter::Util::Virtual.openvz_type().should == "openvzve"
42
+ end
43
+
44
+ it "should not attempt to identify openvz when /proc/self/status has no envID" do
45
+ Facter::Util::Virtual.stubs(:openvz?).returns(true)
46
+ FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
47
+ Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("")
48
+ Facter::Util::Virtual.openvz_type().should be_nil
49
+ end
50
+
51
+ it "should identify Solaris zones when non-global zone" do
52
+ Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("somezone")
53
+ Facter::Util::Virtual.should be_zone
54
+ end
55
+
56
+ it "should not identify Solaris zones when global zone" do
57
+ Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("global")
58
+ Facter::Util::Virtual.should_not be_zone
59
+ end
60
+
61
+ it "(#14522) handles the unencoded binary data in /proc/self/status on Solaris" do
62
+ Facter.fact(:osfamily).stubs(:value).returns("Solaris")
63
+ File.stubs(:open).with('/proc/self/status', 'rb').returns(solaris_proc_self_status)
64
+ FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
65
+
66
+ Facter::Util::Virtual.vserver?.should eq(false)
67
+ end
68
+
69
+ it "should not detect vserver if no self status" do
70
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(false)
71
+ Facter::Util::Virtual.should_not be_vserver
72
+ end
73
+
74
+ it "should detect vserver when vxid present in process status" do
75
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
76
+ File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("VxID: 42\n"))
77
+ Facter::Util::Virtual.should be_vserver
78
+ end
79
+
80
+ it "should detect vserver when s_context present in process status" do
81
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
82
+ File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("s_context: 42\n"))
83
+ Facter::Util::Virtual.should be_vserver
84
+ end
85
+
86
+ it "should not detect vserver when vserver flags not present in process status" do
87
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
88
+ File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("wibble: 42\n"))
89
+ Facter::Util::Virtual.should_not be_vserver
90
+ end
91
+
92
+ it "should identify kvm" do
93
+ Facter::Util::Virtual.stubs(:kvm?).returns(true)
94
+ Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("something")
95
+ Facter::Util::Virtual.kvm_type().should == "kvm"
96
+ end
97
+
98
+ it "should be able to detect RHEV via sysfs on Linux" do
99
+ # Fake files are always hard to stub. :/
100
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
101
+ returns("RHEV Hypervisor")
102
+
103
+ Facter::Util::Virtual.should be_rhev
104
+ end
105
+
106
+ it "should be able to detect RHEV via sysfs on Linux improperly" do
107
+ # Fake files are always hard to stub. :/
108
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
109
+ returns("something else")
110
+
111
+ Facter::Util::Virtual.should_not be_rhev
112
+ end
113
+
114
+ it "should be able to detect ovirt via sysfs on Linux" do
115
+ # Fake files are always hard to stub. :/
116
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
117
+ returns("oVirt Node")
118
+
119
+ Facter::Util::Virtual.should be_ovirt
120
+ end
121
+
122
+ it "should be able to detect ovirt via sysfs on Linux improperly" do
123
+ # Fake files are always hard to stub. :/
124
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
125
+ returns("something else")
126
+
127
+ Facter::Util::Virtual.should_not be_ovirt
128
+ end
129
+
130
+ fixture_path = fixtures('virtual', 'proc_self_status')
131
+
132
+ test_cases = [
133
+ [File.join(fixture_path, 'vserver_2_1', 'guest'), true, 'vserver 2.1 guest'],
134
+ [File.join(fixture_path, 'vserver_2_1', 'host'), true, 'vserver 2.1 host'],
135
+ [File.join(fixture_path, 'vserver_2_3', 'guest'), true, 'vserver 2.3 guest'],
136
+ [File.join(fixture_path, 'vserver_2_3', 'host'), true, 'vserver 2.3 host']
137
+ ]
138
+
139
+ test_cases.each do |status_file, expected, description|
140
+ describe "with /proc/self/status from #{description}" do
141
+ it "should detect vserver as #{expected.inspect}" do
142
+ status = File.read(status_file)
143
+ FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
144
+ File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new(status))
145
+ Facter::Util::Virtual.vserver?.should == expected
146
+ end
147
+ end
148
+ end
149
+
150
+ it "reads dmi entries as ascii data" do
151
+ entries_file = my_fixture('invalid_unicode_dmi_entries')
152
+ expected_contents = 'Virtual'
153
+
154
+ entries = Facter::Util::Virtual.read_sysfs_dmi_entries(entries_file)
155
+
156
+ entries.should =~ /#{expected_contents}/
157
+ end
158
+
159
+ it "should identify vserver_host when /proc/virtual exists" do
160
+ Facter::Util::Virtual.expects(:vserver?).returns(true)
161
+ FileTest.stubs(:exists?).with("/proc/virtual").returns(true)
162
+ Facter::Util::Virtual.vserver_type().should == "vserver_host"
163
+ end
164
+
165
+ it "should identify vserver_type as vserver when /proc/virtual does not exist" do
166
+ Facter::Util::Virtual.expects(:vserver?).returns(true)
167
+ FileTest.stubs(:exists?).with("/proc/virtual").returns(false)
168
+ Facter::Util::Virtual.vserver_type().should == "vserver"
169
+ end
170
+
171
+ it "should detect xen when /proc/sys/xen exists" do
172
+ FileTest.expects(:exists?).with("/proc/sys/xen").returns(true)
173
+ Facter::Util::Virtual.should be_xen
174
+ end
175
+
176
+ it "should detect xen when /sys/bus/xen exists" do
177
+ FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
178
+ FileTest.expects(:exists?).with("/sys/bus/xen").returns(true)
179
+ Facter::Util::Virtual.should be_xen
180
+ end
181
+
182
+ it "should detect xen when /proc/xen exists" do
183
+ FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
184
+ FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
185
+ FileTest.expects(:exists?).with("/proc/xen").returns(true)
186
+ Facter::Util::Virtual.should be_xen
187
+ end
188
+
189
+ it "should not detect xen when no sysfs/proc xen directories exist" do
190
+ FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
191
+ FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
192
+ FileTest.expects(:exists?).with("/proc/xen").returns(false)
193
+ Facter::Util::Virtual.should_not be_xen
194
+ end
195
+
196
+ it "should detect kvm" do
197
+ FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(true)
198
+ File.stubs(:read).with("/proc/cpuinfo").returns("model name : QEMU Virtual CPU version 0.9.1\n")
199
+ Facter::Util::Virtual.should be_kvm
200
+ end
201
+
202
+ it "should detect kvm on FreeBSD" do
203
+ FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
204
+ Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
205
+ Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns("QEMU Virtual CPU version 0.12.4")
206
+ Facter::Util::Virtual.should be_kvm
207
+ end
208
+
209
+ it "should detect kvm on OpenBSD" do
210
+ FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
211
+ Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
212
+ Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns('QEMU Virtual CPU version (cpu64-rhel6) ("AuthenticAMD" 686-class, 512KB L2 cache)')
213
+ Facter::Util::Virtual.should be_kvm
214
+ end
215
+
216
+ it "should identify FreeBSD jail when in jail" do
217
+ Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
218
+ Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n security.jail.jailed").returns("1")
219
+ Facter::Util::Virtual.should be_jail
220
+ end
221
+
222
+ it "should not identify GNU/kFreeBSD jail when not in jail" do
223
+ Facter.fact(:kernel).stubs(:value).returns("GNU/kFreeBSD")
224
+ Facter::Core::Execution.stubs(:exec).with("/bin/sysctl -n security.jail.jailed").returns("0")
225
+ Facter::Util::Virtual.should_not be_jail
226
+ end
227
+
228
+ it "should detect hpvm on HP-UX" do
229
+ Facter.fact(:kernel).stubs(:value).returns("HP-UX")
230
+ Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server Integrity Virtual Machine')
231
+ Facter::Util::Virtual.should be_hpvm
232
+ end
233
+
234
+ it "should not detect hpvm on HP-UX when not in hpvm" do
235
+ Facter.fact(:kernel).stubs(:value).returns("HP-UX")
236
+ Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server rx660')
237
+ Facter::Util::Virtual.should_not be_hpvm
238
+ end
239
+
240
+ it "should be able to detect virtualbox via sysfs on Linux" do
241
+ # Fake files are always hard to stub. :/
242
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
243
+ returns("VirtualBox")
244
+
245
+ Facter::Util::Virtual.should be_virtualbox
246
+ end
247
+
248
+ it "should be able to detect virtualbox via sysfs on Linux improperly" do
249
+ # Fake files are always hard to stub. :/
250
+ File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
251
+ returns("HP-Oracle-Sun-VMWare-funky-town")
252
+
253
+ Facter::Util::Virtual.should_not be_virtualbox
254
+ end
255
+
256
+ let :solaris_proc_self_status do
257
+ sample_data = my_fixture_read('solaris10_proc_self_status1')
258
+ mockfile = mock('File')
259
+ mockfile.stubs(:read).returns(sample_data)
260
+ mockfile
261
+ end
262
+
263
+ shared_examples_for "virt-what" do |kernel, path, null_device|
264
+ before(:each) do
265
+ Facter.fact(:kernel).stubs(:value).returns(kernel)
266
+ Facter::Core::Execution.expects(:which).with("virt-what").returns(path)
267
+ Facter::Core::Execution.expects(:exec).with("#{path} 2>#{null_device}")
268
+ end
269
+
270
+ it "on #{kernel} virt-what is at #{path} and stderr is sent to #{null_device}" do
271
+ Facter::Util::Virtual.virt_what
272
+ end
273
+ end
274
+
275
+ context "on linux" do
276
+ it_should_behave_like "virt-what", "linux", "/usr/bin/virt-what", "/dev/null"
277
+
278
+ it "should strip out warnings on stdout from virt-what" do
279
+ virt_what_warning = "virt-what: this script must be run as root"
280
+ Facter.fact(:kernel).stubs(:value).returns('linux')
281
+ Facter::Core::Execution.expects(:which).with('virt-what').returns "/usr/bin/virt-what"
282
+ Facter::Core::Execution.expects(:exec).with('/usr/bin/virt-what 2>/dev/null').returns virt_what_warning
283
+ Facter::Util::Virtual.virt_what.should_not match /^virt-what: /
284
+ end
285
+ end
286
+
287
+ context "on unix" do
288
+ it_should_behave_like "virt-what", "unix", "/usr/bin/virt-what", "/dev/null"
289
+ end
290
+
291
+ context "on windows" do
292
+ it_should_behave_like "virt-what", "windows", 'c:\windows\system32\virt-what', "NUL"
293
+ end
294
+ end
@@ -0,0 +1,12 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/vlans'
5
+
6
+ describe Facter::Util::Vlans do
7
+ it "should return a list of vlans on Linux" do
8
+ linux_vlanconfig = my_fixture_read("linux_vlan_config")
9
+ Facter::Util::Vlans.stubs(:get_vlan_config).returns(linux_vlanconfig)
10
+ Facter::Util::Vlans.get_vlans().should == %{400,300,200,100}
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/wmi'
5
+
6
+ describe Facter::Util::WMI do
7
+ let(:connection) { stub 'connection' }
8
+
9
+ it "should default to localhost" do
10
+ Facter::Util::WMI.wmi_resource_uri.should == "winmgmts:{impersonationLevel=impersonate}!//./root/cimv2"
11
+ end
12
+
13
+ it "should execute the query on the connection" do
14
+ Facter::Util::WMI.stubs(:connect).returns(connection)
15
+ connection.stubs(:execquery).with("select * from Win32_OperatingSystem")
16
+
17
+ Facter::Util::WMI.execquery("select * from Win32_OperatingSystem")
18
+ end
19
+ end