facter 2.5.7-x64-mingw32 → 3.9.6.cfacter.20180412-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. checksums.yaml +5 -5
  2. data/bin/facter.bat +8 -0
  3. data/bin/facter.exe +0 -0
  4. data/bin/facter_interactive.bat +6 -0
  5. data/bin/libfacter.so +0 -0
  6. data/bin/run_facter_interactive.bat +9 -0
  7. data/lib/facter.rb +45 -261
  8. data/lib/libfacter.so.a +0 -0
  9. metadata +23 -854
  10. data/COMMITTERS.md +0 -185
  11. data/CONTRIBUTING.md +0 -91
  12. data/Gemfile +0 -69
  13. data/LICENSE +0 -15
  14. data/README.md +0 -65
  15. data/Rakefile +0 -46
  16. data/bin/facter +0 -20
  17. data/etc/facter.conf +0 -5
  18. data/ext/build_defaults.yaml +0 -9
  19. data/ext/debian/changelog.erb +0 -59
  20. data/ext/debian/compat +0 -1
  21. data/ext/debian/control +0 -15
  22. data/ext/debian/copyright +0 -19
  23. data/ext/debian/docs +0 -1
  24. data/ext/debian/lintian-overrides +0 -0
  25. data/ext/debian/rules +0 -10
  26. data/ext/debian/source/format +0 -1
  27. data/ext/facter-diff +0 -74
  28. data/ext/ips/facter.p5m.erb +0 -10
  29. data/ext/ips/rules +0 -7
  30. data/ext/ips/transforms +0 -18
  31. data/ext/osx/file_mapping.yaml +0 -32
  32. data/ext/osx/preflight.erb +0 -33
  33. data/ext/osx/prototype.plist.erb +0 -38
  34. data/ext/project_data.yaml +0 -31
  35. data/ext/redhat/facter.spec.erb +0 -223
  36. data/ext/solaris/pkginfo +0 -7
  37. data/install.rb +0 -380
  38. data/lib/facter/Cfkey.rb +0 -42
  39. data/lib/facter/application.rb +0 -206
  40. data/lib/facter/architecture.rb +0 -50
  41. data/lib/facter/augeasversion.rb +0 -28
  42. data/lib/facter/blockdevices.rb +0 -105
  43. data/lib/facter/core/aggregate.rb +0 -220
  44. data/lib/facter/core/directed_graph.rb +0 -46
  45. data/lib/facter/core/execution.rb +0 -123
  46. data/lib/facter/core/execution/base.rb +0 -81
  47. data/lib/facter/core/execution/posix.rb +0 -50
  48. data/lib/facter/core/execution/windows.rb +0 -57
  49. data/lib/facter/core/logging.rb +0 -197
  50. data/lib/facter/core/resolvable.rb +0 -94
  51. data/lib/facter/core/suitable.rb +0 -113
  52. data/lib/facter/dhcp_servers.rb +0 -45
  53. data/lib/facter/domain.rb +0 -99
  54. data/lib/facter/ec2.rb +0 -68
  55. data/lib/facter/ec2/rest.rb +0 -137
  56. data/lib/facter/facterversion.rb +0 -15
  57. data/lib/facter/filesystems.rb +0 -45
  58. data/lib/facter/fqdn.rb +0 -24
  59. data/lib/facter/gce.rb +0 -16
  60. data/lib/facter/gce/metadata.rb +0 -87
  61. data/lib/facter/gid.rb +0 -25
  62. data/lib/facter/hardwareisa.rb +0 -20
  63. data/lib/facter/hardwaremodel.rb +0 -67
  64. data/lib/facter/hostname.rb +0 -31
  65. data/lib/facter/id.rb +0 -21
  66. data/lib/facter/interfaces.rb +0 -58
  67. data/lib/facter/ipaddress.rb +0 -169
  68. data/lib/facter/ipaddress6.rb +0 -82
  69. data/lib/facter/iphostnumber.rb +0 -29
  70. data/lib/facter/kernel.rb +0 -22
  71. data/lib/facter/kernelmajversion.rb +0 -23
  72. data/lib/facter/kernelrelease.rb +0 -45
  73. data/lib/facter/kernelversion.rb +0 -22
  74. data/lib/facter/ldom.rb +0 -51
  75. data/lib/facter/lsbdistcodename.rb +0 -20
  76. data/lib/facter/lsbdistdescription.rb +0 -21
  77. data/lib/facter/lsbdistid.rb +0 -20
  78. data/lib/facter/lsbdistrelease.rb +0 -20
  79. data/lib/facter/lsbmajdistrelease.rb +0 -22
  80. data/lib/facter/lsbminordistrelease.rb +0 -22
  81. data/lib/facter/lsbrelease.rb +0 -20
  82. data/lib/facter/macaddress.rb +0 -99
  83. data/lib/facter/macosx.rb +0 -56
  84. data/lib/facter/manufacturer.rb +0 -68
  85. data/lib/facter/memory.rb +0 -168
  86. data/lib/facter/netmask.rb +0 -43
  87. data/lib/facter/network.rb +0 -20
  88. data/lib/facter/operatingsystem.rb +0 -24
  89. data/lib/facter/operatingsystem/base.rb +0 -61
  90. data/lib/facter/operatingsystem/cumuluslinux.rb +0 -27
  91. data/lib/facter/operatingsystem/implementation.rb +0 -33
  92. data/lib/facter/operatingsystem/linux.rb +0 -511
  93. data/lib/facter/operatingsystem/osreleaselinux.rb +0 -28
  94. data/lib/facter/operatingsystem/sunos.rb +0 -54
  95. data/lib/facter/operatingsystem/vmkernel.rb +0 -11
  96. data/lib/facter/operatingsystem/windows.rb +0 -43
  97. data/lib/facter/operatingsystemmajrelease.rb +0 -31
  98. data/lib/facter/operatingsystemrelease.rb +0 -29
  99. data/lib/facter/os.rb +0 -98
  100. data/lib/facter/osfamily.rb +0 -18
  101. data/lib/facter/partitions.rb +0 -39
  102. data/lib/facter/path.rb +0 -14
  103. data/lib/facter/physicalprocessorcount.rb +0 -27
  104. data/lib/facter/processor.rb +0 -52
  105. data/lib/facter/processors.rb +0 -66
  106. data/lib/facter/processors/os.rb +0 -244
  107. data/lib/facter/ps.rb +0 -31
  108. data/lib/facter/puppetversion.rb +0 -20
  109. data/lib/facter/rackspace.rb +0 -37
  110. data/lib/facter/rubyplatform.rb +0 -12
  111. data/lib/facter/rubysitedir.rb +0 -15
  112. data/lib/facter/rubyversion.rb +0 -12
  113. data/lib/facter/selinux.rb +0 -154
  114. data/lib/facter/ssh.rb +0 -73
  115. data/lib/facter/system32.rb +0 -21
  116. data/lib/facter/system_uptime.rb +0 -44
  117. data/lib/facter/timezone.rb +0 -14
  118. data/lib/facter/uniqueid.rb +0 -4
  119. data/lib/facter/uptime.rb +0 -16
  120. data/lib/facter/uptime_days.rb +0 -13
  121. data/lib/facter/uptime_hours.rb +0 -13
  122. data/lib/facter/uptime_seconds.rb +0 -20
  123. data/lib/facter/util/architecture.rb +0 -19
  124. data/lib/facter/util/collection.rb +0 -161
  125. data/lib/facter/util/composite_loader.rb +0 -12
  126. data/lib/facter/util/config.rb +0 -88
  127. data/lib/facter/util/confine.rb +0 -66
  128. data/lib/facter/util/dhcp_servers.rb +0 -58
  129. data/lib/facter/util/directory_loader.rb +0 -88
  130. data/lib/facter/util/ec2.rb +0 -106
  131. data/lib/facter/util/fact.rb +0 -204
  132. data/lib/facter/util/file_read.rb +0 -37
  133. data/lib/facter/util/formatter.rb +0 -39
  134. data/lib/facter/util/ip.rb +0 -340
  135. data/lib/facter/util/ip/windows.rb +0 -215
  136. data/lib/facter/util/loader.rb +0 -155
  137. data/lib/facter/util/macaddress.rb +0 -43
  138. data/lib/facter/util/macosx.rb +0 -73
  139. data/lib/facter/util/manufacturer.rb +0 -99
  140. data/lib/facter/util/memory.rb +0 -228
  141. data/lib/facter/util/netmask.rb +0 -40
  142. data/lib/facter/util/normalization.rb +0 -94
  143. data/lib/facter/util/nothing_loader.rb +0 -12
  144. data/lib/facter/util/operatingsystem.rb +0 -21
  145. data/lib/facter/util/parser.rb +0 -168
  146. data/lib/facter/util/partitions.rb +0 -47
  147. data/lib/facter/util/partitions/linux.rb +0 -71
  148. data/lib/facter/util/partitions/openbsd.rb +0 -40
  149. data/lib/facter/util/plist.rb +0 -24
  150. data/lib/facter/util/plist/generator.rb +0 -228
  151. data/lib/facter/util/plist/parser.rb +0 -226
  152. data/lib/facter/util/posix.rb +0 -16
  153. data/lib/facter/util/processor.rb +0 -289
  154. data/lib/facter/util/registry.rb +0 -11
  155. data/lib/facter/util/resolution.rb +0 -160
  156. data/lib/facter/util/solaris_zones.rb +0 -158
  157. data/lib/facter/util/unix_root.rb +0 -5
  158. data/lib/facter/util/uptime.rb +0 -83
  159. data/lib/facter/util/values.rb +0 -109
  160. data/lib/facter/util/virtual.rb +0 -220
  161. data/lib/facter/util/vlans.rb +0 -21
  162. data/lib/facter/util/windows.rb +0 -10
  163. data/lib/facter/util/windows/api_types.rb +0 -135
  164. data/lib/facter/util/windows/dir.rb +0 -43
  165. data/lib/facter/util/windows/error.rb +0 -87
  166. data/lib/facter/util/windows/process.rb +0 -294
  167. data/lib/facter/util/windows/user.rb +0 -186
  168. data/lib/facter/util/windows_root.rb +0 -7
  169. data/lib/facter/util/wmi.rb +0 -49
  170. data/lib/facter/util/xendomains.rb +0 -28
  171. data/lib/facter/version.rb +0 -86
  172. data/lib/facter/virtual.rb +0 -339
  173. data/lib/facter/vlans.rb +0 -17
  174. data/lib/facter/xendomains.rb +0 -20
  175. data/lib/facter/zfs_version.rb +0 -14
  176. data/lib/facter/zonename.rb +0 -6
  177. data/lib/facter/zones.rb +0 -18
  178. data/lib/facter/zpool_version.rb +0 -10
  179. data/spec/fixtures/cpuinfo/amd64dual +0 -57
  180. data/spec/fixtures/cpuinfo/amd64dual-grep +0 -2
  181. data/spec/fixtures/cpuinfo/amd64quad +0 -79
  182. data/spec/fixtures/cpuinfo/amd64solo +0 -23
  183. data/spec/fixtures/cpuinfo/amd64tri +0 -86
  184. data/spec/fixtures/cpuinfo/amd64twentyfour +0 -600
  185. data/spec/fixtures/cpuinfo/amd64twentyfour-grep +0 -24
  186. data/spec/fixtures/cpuinfo/bbg3-armel +0 -12
  187. data/spec/fixtures/cpuinfo/beaglexm-armel +0 -12
  188. data/spec/fixtures/cpuinfo/panda-armel +0 -17
  189. data/spec/fixtures/cpuinfo/ppc64 +0 -19
  190. data/spec/fixtures/cpuinfo/ppc64le +0 -15
  191. data/spec/fixtures/cpuinfo/sparc +0 -10
  192. data/spec/fixtures/cpuinfo/two_multicore-grep +0 -4
  193. data/spec/fixtures/cpuinfo/two_singlecore-grep +0 -2
  194. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +0 -26
  195. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +0 -49
  196. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +0 -26
  197. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +0 -53
  198. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +0 -53
  199. data/spec/fixtures/hpux/machinfo/superdome2-16s +0 -31
  200. data/spec/fixtures/hpux/sched.models +0 -174
  201. data/spec/fixtures/hpux/unistd.h +0 -1534
  202. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +0 -18
  203. data/spec/fixtures/ifconfig/centos_5_5 +0 -17
  204. data/spec/fixtures/ifconfig/centos_5_5_eth0 +0 -8
  205. data/spec/fixtures/ifconfig/darwin_10_3_0 +0 -26
  206. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +0 -6
  207. data/spec/fixtures/ifconfig/darwin_10_6_4 +0 -28
  208. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +0 -6
  209. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +0 -8
  210. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +0 -7
  211. data/spec/fixtures/ifconfig/darwin_9_8_0 +0 -26
  212. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +0 -6
  213. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +0 -23
  214. data/spec/fixtures/ifconfig/fedora_10 +0 -36
  215. data/spec/fixtures/ifconfig/fedora_10_eth0 +0 -9
  216. data/spec/fixtures/ifconfig/fedora_13 +0 -18
  217. data/spec/fixtures/ifconfig/fedora_13_eth0 +0 -9
  218. data/spec/fixtures/ifconfig/fedora_8 +0 -38
  219. data/spec/fixtures/ifconfig/fedora_8_eth0 +0 -9
  220. data/spec/fixtures/ifconfig/freebsd_6_0 +0 -12
  221. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +0 -19
  222. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +0 -16
  223. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +0 -19
  224. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_fe80 +0 -19
  225. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_no_public_ipv6 +0 -18
  226. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +0 -19
  227. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +0 -8
  228. data/spec/fixtures/ifconfig/linux_ifconfig_venet +0 -24
  229. data/spec/fixtures/ifconfig/open_solaris_10 +0 -12
  230. data/spec/fixtures/ifconfig/open_solaris_b132 +0 -20
  231. data/spec/fixtures/ifconfig/openbsd_bridge_rules +0 -11
  232. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +0 -10
  233. data/spec/fixtures/ifconfig/ubuntu_7_04 +0 -38
  234. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +0 -9
  235. data/spec/fixtures/ldom/ldom_v1 +0 -6
  236. data/spec/fixtures/netstat/centos_5_5 +0 -5
  237. data/spec/fixtures/netstat/darwin_10_3_0 +0 -35
  238. data/spec/fixtures/netstat/darwin_10_6_4 +0 -29
  239. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +0 -34
  240. data/spec/fixtures/netstat/darwin_9_8_0 +0 -28
  241. data/spec/fixtures/netstat/fedora_10 +0 -7
  242. data/spec/fixtures/netstat/open_solaris_10 +0 -16
  243. data/spec/fixtures/netstat/open_solaris_b132 +0 -17
  244. data/spec/fixtures/netstat/ubuntu_7_04 +0 -7
  245. data/spec/fixtures/processorcount/solaris-psrinfo +0 -24
  246. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +0 -1216
  247. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +0 -225
  248. data/spec/fixtures/unit/dhcp_servers/nmcli_devices +0 -4
  249. data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +0 -4
  250. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +0 -36
  251. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +0 -24
  252. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +0 -49
  253. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +0 -37
  254. data/spec/fixtures/unit/dhcp_servers/route +0 -3
  255. data/spec/fixtures/unit/dhcp_servers/route_nogw +0 -1
  256. data/spec/fixtures/unit/ec2/rest/meta-data/root +0 -20
  257. data/spec/fixtures/unit/filesystems/linux +0 -28
  258. data/spec/fixtures/unit/gce/metadata/metadata.json +0 -69
  259. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +0 -19
  260. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +0 -10
  261. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +0 -8
  262. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60_v6.txt +0 -9
  263. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +0 -20
  264. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +0 -19
  265. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +0 -18
  266. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +0 -16
  267. data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +0 -2
  268. data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +0 -3
  269. data/spec/fixtures/unit/memory/aix-svmon +0 -9
  270. data/spec/fixtures/unit/memory/aix-swap_l +0 -2
  271. data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +0 -3
  272. data/spec/fixtures/unit/memory/darwin-swapinfo-single +0 -2
  273. data/spec/fixtures/unit/memory/darwin-vm_stat +0 -13
  274. data/spec/fixtures/unit/memory/dragonfly-vmstat +0 -3
  275. data/spec/fixtures/unit/memory/freebsd-vmstat +0 -3
  276. data/spec/fixtures/unit/memory/linux-proc_meminfo +0 -10
  277. data/spec/fixtures/unit/memory/openbsd-vmstat +0 -3
  278. data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +0 -2
  279. data/spec/fixtures/unit/memory/solaris-prtconf +0 -4
  280. data/spec/fixtures/unit/memory/solaris-swap_l-multiple +0 -3
  281. data/spec/fixtures/unit/memory/solaris-swap_l-single +0 -2
  282. data/spec/fixtures/unit/memory/solaris-vmstat +0 -3
  283. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +0 -30
  284. data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +0 -3
  285. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +0 -19
  286. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +0 -16
  287. data/spec/fixtures/unit/processors/os/darwin-system-profiler +0 -287
  288. data/spec/fixtures/unit/selinux/selinux_sestatus +0 -6
  289. data/spec/fixtures/unit/selinux/selinux_sestatus2 +0 -9
  290. data/spec/fixtures/unit/util/dhcp_servers/route +0 -3
  291. data/spec/fixtures/unit/util/dhcp_servers/route_nogw +0 -1
  292. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +0 -1
  293. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +0 -1
  294. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +0 -5
  295. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +0 -7
  296. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +0 -6
  297. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +0 -10
  298. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +0 -12
  299. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +0 -26
  300. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +0 -10
  301. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +0 -6
  302. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +0 -40
  303. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +0 -2
  304. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +0 -2
  305. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +0 -2
  306. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +0 -5
  307. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +0 -4
  308. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +0 -2
  309. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +0 -2
  310. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +0 -2
  311. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +0 -5
  312. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +0 -4
  313. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +0 -2
  314. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +0 -2
  315. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +0 -2
  316. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +0 -4
  317. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +0 -4
  318. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +0 -2
  319. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +0 -2
  320. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +0 -2
  321. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +0 -2
  322. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +0 -9
  323. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +0 -6
  324. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +0 -19
  325. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +0 -10
  326. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +0 -8
  327. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0_centos7 +0 -8
  328. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +0 -9
  329. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +0 -18
  330. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +0 -8
  331. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0_centos7 +0 -8
  332. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +0 -8
  333. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +0 -3
  334. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +0 -12
  335. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +0 -7
  336. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +0 -18
  337. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +0 -42
  338. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +0 -549
  339. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +0 -60
  340. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +0 -33
  341. data/spec/fixtures/unit/util/manufacturer/smartos_smbios +0 -533
  342. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +0 -33
  343. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +0 -136
  344. data/spec/fixtures/unit/util/operatingsystem/coreos.txt +0 -9
  345. data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +0 -8
  346. data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +0 -12
  347. data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +0 -7
  348. data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +0 -9
  349. data/spec/fixtures/unit/util/partitions/partitions/mount +0 -9
  350. data/spec/fixtures/unit/util/processor/solaris-i86pc +0 -28
  351. data/spec/fixtures/unit/util/processor/solaris-sun4u +0 -151
  352. data/spec/fixtures/unit/util/processor/x86-pentium2 +0 -41
  353. data/spec/fixtures/unit/util/uptime/kstat_boot_time +0 -1
  354. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +0 -1
  355. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +0 -1
  356. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +0 -1
  357. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  358. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  359. data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +0 -2
  360. data/spec/fixtures/unit/util/vlans/linux_vlan_config +0 -6
  361. data/spec/fixtures/unit/util/xendomains/xendomains +0 -4
  362. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  363. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +0 -14
  364. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +0 -13
  365. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +0 -14
  366. data/spec/fixtures/unit/zfs_version/solaris_10 +0 -10
  367. data/spec/fixtures/unit/zfs_version/solaris_11 +0 -12
  368. data/spec/fixtures/unit/zfs_version/zfs_new +0 -61
  369. data/spec/fixtures/unit/zfs_version/zfs_old +0 -43
  370. data/spec/fixtures/unit/zfs_version/zfsonlinux_0.6.1 +0 -13
  371. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +0 -26
  372. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +0 -38
  373. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +0 -35
  374. data/spec/fixtures/unit/zpool_version/solaris_10 +0 -31
  375. data/spec/fixtures/unit/zpool_version/solaris_11 +0 -43
  376. data/spec/fixtures/unit/zpool_version/zfsonlinux_0.6.1 +0 -48
  377. data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +0 -9
  378. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +0 -8
  379. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices +0 -10
  380. data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +0 -9
  381. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +0 -37
  382. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +0 -36
  383. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +0 -39
  384. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +0 -39
  385. data/spec/integration/facter_spec.rb +0 -39
  386. data/spec/integration/util/windows/user_spec.rb +0 -59
  387. data/spec/lib/facter_spec/cpuinfo.rb +0 -15
  388. data/spec/lib/facter_spec/windows_network.rb +0 -64
  389. data/spec/puppetlabs_spec/files.rb +0 -57
  390. data/spec/puppetlabs_spec/fixtures.rb +0 -49
  391. data/spec/puppetlabs_spec/matchers.rb +0 -87
  392. data/spec/puppetlabs_spec/verbose.rb +0 -9
  393. data/spec/puppetlabs_spec_helper.rb +0 -26
  394. data/spec/schema/validate_facter_schema.rb +0 -18
  395. data/spec/shared_contexts/platform.rb +0 -55
  396. data/spec/shared_formats/parses.rb +0 -3
  397. data/spec/spec_helper.rb +0 -68
  398. data/spec/unit/application_spec.rb +0 -110
  399. data/spec/unit/architecture_spec.rb +0 -63
  400. data/spec/unit/blockdevices_spec.rb +0 -109
  401. data/spec/unit/core/aggregate_spec.rb +0 -125
  402. data/spec/unit/core/directed_graph_spec.rb +0 -79
  403. data/spec/unit/core/execution/base_spec.rb +0 -130
  404. data/spec/unit/core/execution/posix_spec.rb +0 -96
  405. data/spec/unit/core/execution/windows_spec.rb +0 -106
  406. data/spec/unit/core/execution_spec.rb +0 -42
  407. data/spec/unit/core/logging_spec.rb +0 -223
  408. data/spec/unit/core/resolvable_spec.rb +0 -81
  409. data/spec/unit/core/suitable_spec.rb +0 -106
  410. data/spec/unit/dhcp_servers_spec.rb +0 -212
  411. data/spec/unit/domain_spec.rb +0 -310
  412. data/spec/unit/ec2/rest_spec.rb +0 -168
  413. data/spec/unit/ec2_spec.rb +0 -139
  414. data/spec/unit/facter_spec.rb +0 -108
  415. data/spec/unit/filesystems_spec.rb +0 -50
  416. data/spec/unit/fqdn_spec.rb +0 -16
  417. data/spec/unit/gce/metadata_spec.rb +0 -49
  418. data/spec/unit/gce_spec.rb +0 -34
  419. data/spec/unit/gid_spec.rb +0 -51
  420. data/spec/unit/hardwareisa_spec.rb +0 -41
  421. data/spec/unit/hardwaremodel_spec.rb +0 -58
  422. data/spec/unit/hostname_spec.rb +0 -40
  423. data/spec/unit/id_spec.rb +0 -29
  424. data/spec/unit/interfaces_spec.rb +0 -67
  425. data/spec/unit/ipaddress6_spec.rb +0 -180
  426. data/spec/unit/ipaddress_spec.rb +0 -114
  427. data/spec/unit/kernel_spec.rb +0 -24
  428. data/spec/unit/kernelmajversion_spec.rb +0 -22
  429. data/spec/unit/kernelrelease_spec.rb +0 -66
  430. data/spec/unit/kernelversion_spec.rb +0 -32
  431. data/spec/unit/ldom_spec.rb +0 -84
  432. data/spec/unit/lsbdistcodename_spec.rb +0 -30
  433. data/spec/unit/lsbdistdescription_spec.rb +0 -30
  434. data/spec/unit/lsbdistid_spec.rb +0 -30
  435. data/spec/unit/lsbdistrelease_spec.rb +0 -30
  436. data/spec/unit/lsbmajdistrelease_spec.rb +0 -30
  437. data/spec/unit/lsbminordistrelease_spec.rb +0 -31
  438. data/spec/unit/lsbrelease_spec.rb +0 -30
  439. data/spec/unit/macaddress_spec.rb +0 -76
  440. data/spec/unit/manufacturer_spec.rb +0 -115
  441. data/spec/unit/memory_spec.rb +0 -470
  442. data/spec/unit/netmask_spec.rb +0 -106
  443. data/spec/unit/operatingsystem/base_spec.rb +0 -76
  444. data/spec/unit/operatingsystem/cumuluslinux_spec.rb +0 -40
  445. data/spec/unit/operatingsystem/implementation_spec.rb +0 -50
  446. data/spec/unit/operatingsystem/linux_spec.rb +0 -559
  447. data/spec/unit/operatingsystem/sunos_spec.rb +0 -143
  448. data/spec/unit/operatingsystem/vmkernel_spec.rb +0 -13
  449. data/spec/unit/operatingsystem/windows_spec.rb +0 -77
  450. data/spec/unit/operatingsystem_spec.rb +0 -17
  451. data/spec/unit/operatingsystemmajrelease_spec.rb +0 -21
  452. data/spec/unit/operatingsystemrelease_spec.rb +0 -20
  453. data/spec/unit/os_spec.rb +0 -131
  454. data/spec/unit/osfamily_spec.rb +0 -17
  455. data/spec/unit/partitions_spec.rb +0 -88
  456. data/spec/unit/physicalprocessorcount_spec.rb +0 -13
  457. data/spec/unit/processor_spec.rb +0 -38
  458. data/spec/unit/processors/os_spec.rb +0 -469
  459. data/spec/unit/processors_spec.rb +0 -203
  460. data/spec/unit/ps_spec.rb +0 -42
  461. data/spec/unit/rackspace_spec.rb +0 -40
  462. data/spec/unit/rubyplatform_spec.rb +0 -7
  463. data/spec/unit/selinux_spec.rb +0 -119
  464. data/spec/unit/ssh_spec.rb +0 -77
  465. data/spec/unit/system32_spec.rb +0 -28
  466. data/spec/unit/system_uptime_spec.rb +0 -80
  467. data/spec/unit/uniqueid_spec.rb +0 -27
  468. data/spec/unit/uptime_spec.rb +0 -110
  469. data/spec/unit/util/collection_spec.rb +0 -258
  470. data/spec/unit/util/config_spec.rb +0 -120
  471. data/spec/unit/util/confine_spec.rb +0 -148
  472. data/spec/unit/util/dhcp_servers_spec.rb +0 -63
  473. data/spec/unit/util/directory_loader_spec.rb +0 -102
  474. data/spec/unit/util/ec2_spec.rb +0 -184
  475. data/spec/unit/util/fact_spec.rb +0 -142
  476. data/spec/unit/util/file_read_spec.rb +0 -29
  477. data/spec/unit/util/formatter_spec.rb +0 -55
  478. data/spec/unit/util/ip/windows_spec.rb +0 -80
  479. data/spec/unit/util/ip_spec.rb +0 -487
  480. data/spec/unit/util/loader_spec.rb +0 -286
  481. data/spec/unit/util/macaddress_spec.rb +0 -143
  482. data/spec/unit/util/macosx_spec.rb +0 -114
  483. data/spec/unit/util/manufacturer_spec.rb +0 -223
  484. data/spec/unit/util/normalization_spec.rb +0 -113
  485. data/spec/unit/util/operatingsystem_spec.rb +0 -107
  486. data/spec/unit/util/parser_spec.rb +0 -233
  487. data/spec/unit/util/partitions/partitions_spec.rb +0 -67
  488. data/spec/unit/util/partitions_spec.rb +0 -19
  489. data/spec/unit/util/posix_spec.rb +0 -11
  490. data/spec/unit/util/processor_spec.rb +0 -212
  491. data/spec/unit/util/registry_spec.rb +0 -76
  492. data/spec/unit/util/resolution_spec.rb +0 -129
  493. data/spec/unit/util/solaris_zones_spec.rb +0 -127
  494. data/spec/unit/util/uptime_spec.rb +0 -131
  495. data/spec/unit/util/values_spec.rb +0 -171
  496. data/spec/unit/util/virtual_spec.rb +0 -393
  497. data/spec/unit/util/vlans_spec.rb +0 -42
  498. data/spec/unit/util/wmi_spec.rb +0 -19
  499. data/spec/unit/util/xendomains_spec.rb +0 -114
  500. data/spec/unit/version_spec.rb +0 -42
  501. data/spec/unit/virtual_spec.rb +0 -585
  502. data/spec/unit/zfs_version_spec.rb +0 -87
  503. data/spec/unit/zonename_spec.rb +0 -14
  504. data/spec/unit/zones_spec.rb +0 -55
  505. data/spec/unit/zpool_version_spec.rb +0 -80
  506. data/spec/watchr.rb +0 -125
@@ -1,223 +0,0 @@
1
- #! /usr/bin/env ruby
2
-
3
- require 'spec_helper'
4
- require 'facter/util/manufacturer'
5
-
6
- describe Facter::Manufacturer do
7
- before :each do
8
- Facter.clear
9
- end
10
-
11
- it "should return the system DMI table" do
12
- Facter::Manufacturer.should respond_to(:get_dmi_table)
13
- end
14
-
15
- it "should return nil on non-supported operating systems" do
16
- Facter.stubs(:value).with(:kernel).returns("SomeThing")
17
- Facter::Manufacturer.get_dmi_table().should be_nil
18
- end
19
-
20
- it "should parse prtdiag output on a sunfire v120" do
21
- Facter::Core::Execution.stubs(:exec).returns(my_fixture_read("solaris_sunfire_v120_prtdiag"))
22
- Facter::Manufacturer.prtdiag_sparc_find_system_info()
23
- Facter.value(:manufacturer).should == "Sun Microsystems"
24
- Facter.value(:productname).should == "Sun Fire V120 (UltraSPARC-IIe 648MHz)"
25
- end
26
-
27
- it "should parse prtdiag output on a t5220" do
28
- Facter::Core::Execution.stubs(:exec).returns(my_fixture_read("solaris_t5220_prtdiag"))
29
- Facter::Manufacturer.prtdiag_sparc_find_system_info()
30
- Facter.value(:manufacturer).should == "Sun Microsystems"
31
- Facter.value(:productname).should == "SPARC Enterprise T5220"
32
- end
33
-
34
- it "should not set manufacturer if prtdiag output is nil" do
35
- # Stub kernel so we don't have windows fall through to its own mechanism
36
- Facter.fact(:kernel).stubs(:value).returns("SunOS")
37
- Facter.fact(:hardwareisa).stubs(:value).returns("sparc")
38
-
39
- Facter::Core::Execution.stubs(:exec).with(regexp_matches(/prtdiag/)).returns(nil)
40
- Facter::Manufacturer.prtdiag_sparc_find_system_info()
41
- Facter.value(:manufacturer).should_not == "Sun Microsystems"
42
- end
43
-
44
- it "should strip white space on dmi output with spaces" do
45
- dmidecode_output = my_fixture_read("linux_dmidecode_with_spaces")
46
- Facter::Manufacturer.expects(:get_dmi_table).returns(dmidecode_output)
47
- Facter.fact(:kernel).stubs(:value).returns("Linux")
48
-
49
- query = { '[Ss]ystem [Ii]nformation' => [ { 'Product(?: Name)?:' => 'productname' } ] }
50
-
51
- Facter::Manufacturer.dmi_find_system_info(query)
52
- Facter.value(:productname).should == "MS-6754"
53
- end
54
-
55
- it "should handle output from smbios when run under sunos" do
56
- smbios_output = my_fixture_read("opensolaris_smbios")
57
- Facter::Manufacturer.expects(:get_dmi_table).returns(smbios_output)
58
- Facter.fact(:kernel).stubs(:value).returns("SunOS")
59
-
60
- query = { 'BIOS information' => [ { 'Release Date:' => 'reldate' } ] }
61
-
62
- Facter::Manufacturer.dmi_find_system_info(query)
63
- Facter.value(:reldate).should == "12/01/2006"
64
- end
65
-
66
- it "can parse smbios output that contains non-UTF8 characters" do
67
- smbios_output = my_fixture_read("smartos_smbios")
68
- Facter::Core::Execution.stubs(:exec).with('/usr/sbin/smbios 2>/dev/null').returns(smbios_output)
69
- Facter.fact(:kernel).stubs(:value).returns("SunOS")
70
-
71
- query = { 'BIOS information' => [ { 'Release Date:' => 'reldate' } ] }
72
-
73
- Facter::Manufacturer.dmi_find_system_info(query)
74
- Facter.value(:reldate).should == "06/11/2007"
75
- end
76
-
77
- it "should not split on dmi keys containing the string Handle" do
78
- dmidecode_output = <<-eos
79
- Handle 0x1000, DMI type 16, 15 bytes
80
- Physical Memory Array
81
- Location: System Board Or Motherboard
82
- Use: System Memory
83
- Error Correction Type: None
84
- Maximum Capacity: 4 GB
85
- Error Information Handle: Not Provided
86
- Number Of Devices: 123
87
-
88
- Handle 0x001F
89
- DMI type 127, 4 bytes.
90
- End Of Table
91
- eos
92
- Facter::Manufacturer.expects(:get_dmi_table).returns(dmidecode_output)
93
- Facter.fact(:kernel).stubs(:value).returns("Linux")
94
- query = { 'Physical Memory Array' => [ { 'Number Of Devices:' => 'ramslots'}]}
95
- Facter::Manufacturer.dmi_find_system_info(query)
96
- Facter.value(:ramslots).should == "123"
97
- end
98
-
99
- it "should match the key in the defined section and not the first one found" do
100
- dmidecode_output = <<-eos
101
- Handle 0x000C, DMI type 7, 19 bytes
102
- Cache Information
103
- Socket Designation: Internal L2 Cache
104
- Configuration: Enabled, Socketed, Level 2
105
- Operational Mode: Write Back
106
- Location: Internal
107
- Installed Size: 4096 KB
108
- Maximum Size: 4096 KB
109
- Supported SRAM Types:
110
- Burst
111
- Installed SRAM Type: Burst
112
- Speed: Unknown
113
- Error Correction Type: Single-bit ECC
114
- System Type: Unified
115
- Associativity: 8-way Set-associative
116
-
117
- Handle 0x1000, DMI type 16, 15 bytes
118
- Physical Memory Array
119
- Location: System Board Or Motherboard
120
- Use: System Memory
121
- Error Correction Type: None
122
- Maximum Capacity: 4 GB
123
- Error Information Handle: Not Provided
124
- Number Of Devices: 2
125
-
126
- Handle 0x001F
127
- DMI type 127, 4 bytes.
128
- End Of Table
129
- eos
130
- Facter::Manufacturer.expects(:get_dmi_table).returns(dmidecode_output)
131
- Facter.fact(:kernel).stubs(:value).returns("Linux")
132
- query = { 'Physical Memory Array' => [ { 'Location:' => 'ramlocation'}]}
133
- Facter::Manufacturer.dmi_find_system_info(query)
134
- Facter.value(:ramlocation).should == "System Board Or Motherboard"
135
- end
136
-
137
- it "should return an appropriate uuid on linux" do
138
- Facter.fact(:kernel).stubs(:value).returns("Linux")
139
- dmidecode = my_fixture_read("intel_linux_dmidecode")
140
- Facter::Manufacturer.expects(:get_dmi_table).returns(dmidecode)
141
-
142
- query = { '[Ss]ystem [Ii]nformation' => [ { 'UUID:' => 'uuid' } ] }
143
- Facter::Manufacturer.dmi_find_system_info(query)
144
- Facter.value(:uuid).should == "60A98BB3-95B6-E111-AF74-4C72B9247D28"
145
- end
146
-
147
- def find_product_name(os)
148
- output_file = case os
149
- when "FreeBSD" then my_fixture("freebsd_dmidecode")
150
- when "SunOS" then my_fixture("opensolaris_smbios")
151
- end
152
-
153
- output = File.new(output_file).read()
154
- query = { '[Ss]ystem [Ii]nformation' => [ { 'Product(?: Name)?:' => "product_name_#{os}" } ] }
155
-
156
- Facter.fact(:kernel).stubs(:value).returns(os)
157
- Facter::Manufacturer.expects(:get_dmi_table).returns(output)
158
-
159
- Facter::Manufacturer.dmi_find_system_info(query)
160
-
161
- return Facter.value("product_name_#{os}")
162
- end
163
-
164
- it "should return the same result with smbios than with dmidecode" do
165
- find_product_name("FreeBSD").should_not == nil
166
- find_product_name("FreeBSD").should == find_product_name("SunOS")
167
- end
168
-
169
- it "should find information on Windows" do
170
- Facter.fact(:kernel).stubs(:value).returns("windows")
171
- require 'facter/util/wmi'
172
-
173
- bios = stubs 'bios'
174
- bios.stubs(:Manufacturer).returns("Phoenix Technologies LTD")
175
- bios.stubs(:Serialnumber).returns("56 4d 40 2b 4d 81 94 d6-e6 c5 56 a4 56 0c 9e 9f")
176
-
177
- product = stubs 'product'
178
- product.stubs(:Name).returns("VMware Virtual Platform")
179
-
180
- wmi = stubs 'wmi'
181
- wmi.stubs(:ExecQuery).with("select * from Win32_Bios").returns([bios])
182
- wmi.stubs(:ExecQuery).with("select * from Win32_Bios").returns([bios])
183
- wmi.stubs(:ExecQuery).with("select * from Win32_ComputerSystemProduct").returns([product])
184
-
185
- Facter::Util::WMI.stubs(:connect).returns(wmi)
186
- Facter.value(:manufacturer).should == "Phoenix Technologies LTD"
187
- Facter.value(:serialnumber).should == "56 4d 40 2b 4d 81 94 d6-e6 c5 56 a4 56 0c 9e 9f"
188
- Facter.value(:productname).should == "VMware Virtual Platform"
189
- end
190
-
191
- describe "using sysctl to look up manufacturer information" do
192
- before do
193
- Facter.fact(:kernel).stubs(:value).returns 'OpenBSD'
194
- end
195
-
196
- let(:mfg_keys) do
197
- {
198
- 'hw.vendor' => 'manufacturer',
199
- 'hw.product' => 'productname',
200
- 'hw.serialno' => 'serialnumber'
201
- }
202
- end
203
-
204
- it "creates a new fact for the each hash key" do
205
- mfg_keys.values.each do |value|
206
- Facter.expects(:add).with(value)
207
- end
208
- described_class.sysctl_find_system_info(mfg_keys)
209
- end
210
-
211
- it "uses sysctl to determine the value for that fact" do
212
- mfg_keys.keys.each do |sysctl|
213
- Facter::Util::POSIX.expects(:sysctl).with(sysctl).returns "sysctl #{sysctl}"
214
- end
215
-
216
- described_class.sysctl_find_system_info(mfg_keys)
217
-
218
- mfg_keys.invert.each_pair do |factname, value|
219
- expect(Facter.value(factname)).to eq "sysctl #{value}"
220
- end
221
- end
222
- end
223
- end
@@ -1,113 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'facter/util/normalization'
5
-
6
- describe Facter::Util::Normalization do
7
-
8
- subject { described_class }
9
-
10
- def utf16(str)
11
- if String.method_defined?(:encode) && defined?(::Encoding)
12
- str.encode(Encoding::UTF_16LE)
13
- else
14
- str
15
- end
16
- end
17
-
18
- def utf8(str)
19
- if String.method_defined?(:encode) && defined?(::Encoding)
20
- str.encode(Encoding::UTF_8)
21
- else
22
- str
23
- end
24
- end
25
-
26
- describe "validating strings" do
27
- describe "and string encoding is supported", :if => String.instance_methods.include?(:encoding) do
28
- it "accepts strings that are ASCII and match their encoding and converts them to UTF-8" do
29
- str = "ASCII".encode(Encoding::ASCII)
30
- normalized_str = subject.normalize(str)
31
- expect(normalized_str.encoding).to eq(Encoding::UTF_8)
32
- end
33
-
34
- it "accepts strings that are UTF-8 and match their encoding" do
35
- str = "let's make a ☃!".encode(Encoding::UTF_8)
36
- expect(subject.normalize(str)).to eq(str)
37
- end
38
-
39
- it "converts valid non UTF-8 strings to UTF-8" do
40
- str = "let's make a ☃!".encode(Encoding::UTF_16LE)
41
- enc = subject.normalize(str).encoding
42
- expect(enc).to eq(Encoding::UTF_8)
43
- end
44
-
45
- it "normalizes a frozen string returning a non-frozen string" do
46
- str = "factvalue".encode(Encoding::UTF_16LE).freeze
47
- normalized_str = subject.normalize(str)
48
- expect(normalized_str.encoding).to eq(Encoding::UTF_8)
49
- expect(normalized_str).to_not be_frozen
50
- end
51
-
52
- it "rejects strings that are not UTF-8 and do not match their claimed encoding" do
53
- invalid_shift_jis = "\xFF\x5C!".force_encoding(Encoding::SHIFT_JIS)
54
- expect {
55
- subject.normalize(invalid_shift_jis)
56
- }.to raise_error(Facter::Util::Normalization::NormalizationError, /String encoding Shift_JIS is not UTF-8 and could not be converted to UTF-8/)
57
- end
58
-
59
- it "rejects strings that claim to be UTF-8 encoded but aren't" do
60
- str = "\255ay!".force_encoding(Encoding::UTF_8)
61
- expect {
62
- subject.normalize(str)
63
- }.to raise_error(Facter::Util::Normalization::NormalizationError, /String.*doesn't match the reported encoding UTF-8/)
64
- end
65
- end
66
-
67
- describe "and string encoding is not supported", :unless => String.instance_methods.include?(:encoding) do
68
- it "accepts strings that are UTF-8 and match their encoding" do
69
- str = "let's make a ☃!"
70
- expect(subject.normalize(str)).to eq(str)
71
- end
72
-
73
- it "rejects strings that are not UTF-8" do
74
- str = "let's make a \255\255\255!"
75
- expect {
76
- subject.normalize(str)
77
- }.to raise_error(Facter::Util::Normalization::NormalizationError, /String .* is not valid UTF-8/)
78
- end
79
- end
80
- end
81
-
82
- describe "normalizing arrays" do
83
- it "normalizes each element in the array" do
84
- arr = [utf16('first'), utf16('second'), [utf16('third'), utf16('fourth')]]
85
- expected_arr = [utf8('first'), utf8('second'), [utf8('third'), utf8('fourth')]]
86
-
87
- expect(subject.normalize_array(arr)).to eq(expected_arr)
88
- end
89
- end
90
-
91
- describe "normalizing hashes" do
92
- it "normalizes each element in the array" do
93
- hsh = {utf16('first') => utf16('second'), utf16('third') => [utf16('fourth'), utf16('fifth')]}
94
- expected_hsh = {utf8('first') => utf8('second'), utf8('third') => [utf8('fourth'), utf8('fifth')]}
95
-
96
- expect(subject.normalize_hash(hsh)).to eq(expected_hsh)
97
- end
98
- end
99
-
100
- [1, 1.0, true, false, nil].each do |val|
101
- it "accepts #{val.inspect}:#{val.class}" do
102
- expect(subject.normalize(val)).to eq(val)
103
- end
104
- end
105
-
106
- [:sym, Object.new, Set.new].each do |val|
107
- it "rejects #{val.inspect}:#{val.class}" do
108
- expect {
109
- subject.normalize(val)
110
- }.to raise_error(Facter::Util::Normalization::NormalizationError, /Expected .*but was #{val.class}/ )
111
- end
112
- end
113
- end
@@ -1,107 +0,0 @@
1
- require 'spec_helper'
2
- require 'facter/util/operatingsystem'
3
-
4
- describe Facter::Util::Operatingsystem do
5
- describe "reading the os-release file" do
6
-
7
- it "correctly parses the file on Cumulus Linux" do
8
- values = described_class.os_release(my_fixture('cumuluslinux.txt'))
9
-
10
- expect(values).to eq({
11
- 'NAME' => "Cumulus Linux",
12
- 'VERSION_ID' => "1.5.2",
13
- 'VERSION' => "1.5.2-28283a7-201311181623-final",
14
- 'PRETTY_NAME' => "Cumulus Linux",
15
- 'ID' => "cumulus-linux",
16
- 'ID_LIKE' => "debian",
17
- 'CPE_NAME' => "cpe:/o:cumulusnetworks:cumulus_linux:1.5.2-28283a7-201311181623-final",
18
- 'HOME_URL' => "http://www.cumulusnetworks.com/",
19
- })
20
- end
21
-
22
- it "correctly parses the file on CoreOS Linux" do
23
- values = described_class.os_release(my_fixture('coreos.txt'))
24
-
25
- expect(values).to eq({
26
- 'NAME' => "CoreOS",
27
- 'VERSION_ID' => "575.0.0",
28
- 'VERSION' => "575.0.0",
29
- 'PRETTY_NAME' => "CoreOS 575.0.0",
30
- 'ID' => "coreos",
31
- 'HOME_URL' => "https://coreos.com/",
32
- 'BUG_REPORT_URL' => "https://github.com/coreos/bugs/issues",
33
- 'ANSI_COLOR' => "1;32",
34
- })
35
- end
36
-
37
- it "correctly parses the file on Sabayon" do
38
- values = described_class.os_release(my_fixture('sabayon.txt'))
39
-
40
- expect(values).to eq({
41
- "NAME" => "Sabayon",
42
- "ID" => "sabayon",
43
- "PRETTY_NAME" => "Sabayon/Linux",
44
- "ANSI_COLOR" => "1;32",
45
- "HOME_URL" => "http://www.sabayon.org/",
46
- "SUPPORT_URL" => "http://forum.sabayon.org/",
47
- "BUG_REPORT_URL" => "https://bugs.sabayon.org/",
48
- })
49
- end
50
-
51
- it "correctly parses the file on Debian Wheezy" do
52
- values = described_class.os_release(my_fixture('wheezy.txt'))
53
-
54
- expect(values).to eq({
55
- "PRETTY_NAME" => "Debian GNU/Linux 7 (wheezy)",
56
- "NAME" => "Debian GNU/Linux",
57
- "VERSION_ID" => "7",
58
- "VERSION" => "7 (wheezy)",
59
- "ID" => "debian",
60
- "ANSI_COLOR" => "1;31",
61
- "HOME_URL" => "http://www.debian.org/",
62
- "SUPPORT_URL" => "http://www.debian.org/support/",
63
- "BUG_REPORT_URL" => "http://bugs.debian.org/",
64
- })
65
- end
66
-
67
- it "correctly parses the file on Debian Wheezy" do
68
- values = described_class.os_release(my_fixture('wheezy.txt'))
69
-
70
- expect(values).to eq({
71
- "PRETTY_NAME" => "Debian GNU/Linux 7 (wheezy)",
72
- "NAME" => "Debian GNU/Linux",
73
- "VERSION_ID" => "7",
74
- "VERSION" => "7 (wheezy)",
75
- "ID" => "debian",
76
- "ANSI_COLOR" => "1;31",
77
- "HOME_URL" => "http://www.debian.org/",
78
- "SUPPORT_URL" => "http://www.debian.org/support/",
79
- "BUG_REPORT_URL" => "http://bugs.debian.org/",
80
- })
81
- end
82
-
83
-
84
- it "correctly parses the file on RedHat 7" do
85
- values = described_class.os_release(my_fixture('redhat-7.txt'))
86
- expect(values).to eq({
87
- "NAME" => "Red Hat Enterprise Linux Everything",
88
- "VERSION" => "7.0 (Maipo)",
89
- "ID" => "rhel",
90
- "VERSION_ID" => "7.0",
91
- "PRETTY_NAME" => "Red Hat Enterprise Linux Everything 7.0 (Maipo)",
92
- "ANSI_COLOR" => "0;31",
93
- "CPE_NAME" => "cpe:/o:redhat:enterprise_linux:7.0:beta:everything",
94
- "REDHAT_BUGZILLA_PRODUCT" => "Red Hat Enterprise Linux 7",
95
- "REDHAT_BUGZILLA_PRODUCT_VERSION" => "7.0",
96
- "REDHAT_SUPPORT_PRODUCT" => "Red Hat Enterprise Linux",
97
- "REDHAT_SUPPORT_PRODUCT_VERSION" => "7.0",
98
- })
99
- end
100
-
101
- it "does not try to read an unreadable '/etc/os-release' file" do
102
- File.expects(:readable?).with('/some/nonexistent/file').returns false
103
-
104
- expect(described_class.os_release('/some/nonexistent/file')).to be_empty
105
- end
106
- end
107
- end
@@ -1,233 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'spec_helper'
4
- require 'facter/util/parser'
5
- require 'tempfile'
6
- require 'tmpdir.rb'
7
-
8
- describe Facter::Util::Parser do
9
- include PuppetlabsSpec::Files
10
-
11
- describe "extension_matches? function" do
12
- it "should match extensions when subclass uses match_extension" do
13
- Facter::Util::Parser.extension_matches?("myfile.foobar", "foobar").should == true
14
- end
15
-
16
- it "should match extensions when subclass uses match_extension with an array" do
17
- Facter::Util::Parser.extension_matches?("myfile.ext1", ["ext1","ext2","ext3"]).should == true
18
- Facter::Util::Parser.extension_matches?("myfile.ext2", ["ext1","ext2","ext3"]).should == true
19
- Facter::Util::Parser.extension_matches?("myfile.ext3", ["ext1","ext2","ext3"]).should == true
20
- end
21
-
22
- it "should match extension ignoring case on file" do
23
- Facter::Util::Parser.extension_matches?("myfile.EXT1", "ext1").should == true
24
- Facter::Util::Parser.extension_matches?("myfile.ExT1", "ext1").should == true
25
- Facter::Util::Parser.extension_matches?("myfile.exT1", "ext1").should == true
26
- end
27
-
28
- it "should match extension ignoring case for match_extension" do
29
- Facter::Util::Parser.extension_matches?("myfile.EXT1", "EXT1").should == true
30
- Facter::Util::Parser.extension_matches?("myfile.ExT1", "EXT1").should == true
31
- Facter::Util::Parser.extension_matches?("myfile.exT1", "EXT1").should == true
32
- end
33
- end
34
-
35
- let(:data) do {"one" => "two", "three" => "four"} end
36
-
37
- describe "yaml" do
38
- let(:data_in_yaml) { YAML.dump(data) }
39
- let(:data_file) { "/tmp/foo.yaml" }
40
-
41
- it "should return a hash of whatever is stored on disk" do
42
- File.stubs(:read).with(data_file).returns(data_in_yaml)
43
- described_class.parser_for(data_file).results.should == data
44
- end
45
-
46
- it "should handle exceptions and warn" do
47
- # YAML data with an error
48
- File.stubs(:read).with(data_file).returns(data_in_yaml + "}")
49
- Facter.expects(:warn).at_least_once
50
- lambda { Facter::Util::Parser.parser_for(data_file).results }.should_not raise_error
51
- end
52
- end
53
-
54
- describe "json" do
55
- let(:data_in_json) { JSON.dump(data) }
56
- let(:data_file) { "/tmp/foo.json" }
57
-
58
- it "should return a hash of whatever is stored on disk" do
59
- pending("this test requires the json library") unless Facter.json?
60
- File.stubs(:read).with(data_file).returns(data_in_json)
61
- Facter::Util::Parser.parser_for(data_file).results.should == data
62
- end
63
- end
64
-
65
- describe "txt" do
66
- let(:data_file) { "/tmp/foo.txt" }
67
-
68
- shared_examples_for "txt parser" do
69
- it "should return a hash of whatever is stored on disk" do
70
- File.stubs(:read).with(data_file).returns(data_in_txt)
71
- Facter::Util::Parser.parser_for(data_file).results.should == data
72
- end
73
- end
74
-
75
- context "well formed data" do
76
- let(:data_in_txt) { "one=two\nthree=four\n" }
77
- it_behaves_like "txt parser"
78
- end
79
-
80
- context "extra equal sign" do
81
- let(:data_in_txt) { "one=two\nthree=four=five\n" }
82
- let(:data) do {"one" => "two", "three" => "four=five"} end
83
- it_behaves_like "txt parser"
84
- end
85
-
86
- context "extra data" do
87
- let(:data_in_txt) { "one=two\nfive\nthree=four\n" }
88
- it_behaves_like "txt parser"
89
- end
90
- end
91
-
92
- describe "scripts" do
93
- let(:ext) { Facter::Util::Config.is_windows? ? '.bat' : '.sh' }
94
- let(:cmd) { "/tmp/foo#{ext}" }
95
- let(:data_in_txt) { "one=two\nthree=four\n" }
96
-
97
- def expects_script_to_return(path, content, result)
98
- Facter::Core::Execution.stubs(:exec).with(path).returns(content)
99
- File.stubs(:executable?).with(path).returns(true)
100
- File.stubs(:file?).with(path).returns(true)
101
-
102
- Facter::Util::Parser.parser_for(path).results.should == result
103
- end
104
-
105
- def expects_parser_to_return_nil_for_directory(path)
106
- File.stubs(:file?).with(path).returns(false)
107
-
108
- Facter::Util::Parser.parser_for(path).results.should be_nil
109
- end
110
-
111
- it "returns a hash of whatever is returned by the executable" do
112
- expects_script_to_return(cmd, data_in_txt, data)
113
- end
114
-
115
- it "should not parse a directory" do
116
- expects_parser_to_return_nil_for_directory(cmd)
117
- end
118
-
119
- it "returns an empty hash when the script returns nil" do
120
- expects_script_to_return(cmd, nil, {})
121
- end
122
-
123
- it "quotes scripts with spaces" do
124
- path = "/h a s s p a c e s#{ext}"
125
-
126
- Facter::Core::Execution.expects(:exec).with("\"#{path}\"").returns(data_in_txt)
127
-
128
- expects_script_to_return(path, data_in_txt, data)
129
- end
130
-
131
- context "exe, bat, cmd, and com files" do
132
- let :cmds do ["/tmp/foo.bat", "/tmp/foo.cmd", "/tmp/foo.exe", "/tmp/foo.com"] end
133
-
134
- before :each do
135
- cmds.each {|cmd|
136
- File.stubs(:executable?).with(cmd).returns(true)
137
- File.stubs(:file?).with(cmd).returns(true)
138
- }
139
- end
140
-
141
- it "should return nothing parser if not on windows" do
142
- Facter::Util::Config.stubs(:is_windows?).returns(false)
143
- cmds.each {|cmd| Facter::Util::Parser.parser_for(cmd).should be_an_instance_of(Facter::Util::Parser::NothingParser) }
144
- end
145
-
146
- it "should return script parser if on windows" do
147
- Facter::Util::Config.stubs(:is_windows?).returns(true)
148
- cmds.each {|cmd| Facter::Util::Parser.parser_for(cmd).should be_an_instance_of(Facter::Util::Parser::ScriptParser) }
149
- end
150
- end
151
-
152
- context "exe, bat, cmd, and com files" do
153
- let :cmds do ["/tmp/foo.bat", "/tmp/foo.cmd", "/tmp/foo.exe", "/tmp/foo.com"] end
154
-
155
- before :each do
156
- cmds.each {|cmd|
157
- File.stubs(:executable?).with(cmd).returns(true)
158
- File.stubs(:file?).with(cmd).returns(true)
159
- }
160
- end
161
-
162
- it "should return nothing parser if not on windows" do
163
- Facter::Util::Config.stubs(:is_windows?).returns(false)
164
- cmds.each {|cmd| Facter::Util::Parser.parser_for(cmd).should be_an_instance_of(Facter::Util::Parser::NothingParser) }
165
- end
166
-
167
- it "should return script parser if on windows" do
168
- Facter::Util::Config.stubs(:is_windows?).returns(true)
169
- cmds.each {|cmd| Facter::Util::Parser.parser_for(cmd).should be_an_instance_of(Facter::Util::Parser::ScriptParser) }
170
- end
171
-
172
- end
173
-
174
- describe "powershell parser" do
175
- let(:ps1) { "/tmp/foo.ps1" }
176
-
177
- def expects_to_parse_powershell(cmd, result)
178
- Facter::Util::Config.stubs(:is_windows?).returns(true)
179
-
180
- File.stubs(:file?).with(ps1).returns(true)
181
-
182
- Facter::Util::Parser.parser_for(cmd).results.should == result
183
- end
184
-
185
- it "should not parse a directory" do
186
- expects_parser_to_return_nil_for_directory(ps1)
187
- end
188
-
189
- it "should parse output from powershell" do
190
- Facter::Core::Execution.stubs(:exec).returns(data_in_txt)
191
- expects_to_parse_powershell(ps1, data)
192
- end
193
-
194
- describe "when executing powershell", :if => Facter::Util::Config.is_windows? do
195
- let(:sysnative_powershell) { "#{ENV['SYSTEMROOT']}\\sysnative\\WindowsPowershell\\v1.0\\powershell.exe" }
196
- let(:system32_powershell) { "#{ENV['SYSTEMROOT']}\\system32\\WindowsPowershell\\v1.0\\powershell.exe" }
197
-
198
- let(:sysnative_regexp) { /^\"#{Regexp.escape(sysnative_powershell)}\"/ }
199
- let(:system32_regexp) { /^\"#{Regexp.escape(system32_powershell)}\"/ }
200
- let(:powershell_regexp) { /^\"#{Regexp.escape("powershell.exe")}\"/ }
201
-
202
- it "prefers the sysnative alias to resolve 64-bit powershell on 32-bit ruby" do
203
- File.expects(:exists?).with(sysnative_powershell).returns(true)
204
- Facter::Core::Execution.expects(:exec).with(regexp_matches(sysnative_regexp)).returns(data_in_txt)
205
-
206
- expects_to_parse_powershell(ps1, data)
207
- end
208
-
209
- it "uses system32 if sysnative alias doesn't exist on 64-bit ruby" do
210
- File.expects(:exists?).with(sysnative_powershell).returns(false)
211
- File.expects(:exists?).with(system32_powershell).returns(true)
212
- Facter::Core::Execution.expects(:exec).with(regexp_matches(system32_regexp)).returns(data_in_txt)
213
-
214
- expects_to_parse_powershell(ps1, data)
215
- end
216
-
217
- it "uses 'powershell' as a last resort" do
218
- File.expects(:exists?).with(sysnative_powershell).returns(false)
219
- File.expects(:exists?).with(system32_powershell).returns(false)
220
- Facter::Core::Execution.expects(:exec).with(regexp_matches(powershell_regexp)).returns(data_in_txt)
221
-
222
- expects_to_parse_powershell(ps1, data)
223
- end
224
- end
225
- end
226
- end
227
-
228
- describe "nothing parser" do
229
- it "uses the nothing parser when there is no other parser" do
230
- Facter::Util::Parser.parser_for("this.is.not.valid").results.should be_nil
231
- end
232
- end
233
- end