puppet 6.0.10-universal-darwin → 6.1.0-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 puppet might be problematic. Click here for more details.

Files changed (748) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +31 -27
  4. data/Guardfile.example +76 -0
  5. data/LICENSE +189 -4
  6. data/MAINTAINERS +47 -0
  7. data/README.md +3 -3
  8. data/lib/hiera/scope.rb +0 -7
  9. data/lib/puppet.rb +6 -5
  10. data/lib/puppet/application.rb +3 -3
  11. data/lib/puppet/application/cert.rb +2 -2
  12. data/lib/puppet/application/device.rb +83 -109
  13. data/lib/puppet/application/filebucket.rb +1 -10
  14. data/lib/puppet/application/ssl.rb +0 -2
  15. data/lib/puppet/configurer.rb +9 -10
  16. data/lib/puppet/confine/false.rb +1 -7
  17. data/lib/puppet/confine/true.rb +1 -7
  18. data/lib/puppet/defaults.rb +39 -51
  19. data/lib/puppet/forge.rb +1 -4
  20. data/lib/puppet/functions/abs.rb +1 -1
  21. data/lib/puppet/functions/call.rb +1 -2
  22. data/lib/puppet/functions/new.rb +1 -1
  23. data/lib/puppet/indirector/request.rb +15 -26
  24. data/lib/puppet/network/http/connection.rb +12 -32
  25. data/lib/puppet/network/http/factory.rb +0 -5
  26. data/lib/puppet/pal/catalog_compiler.rb +96 -0
  27. data/lib/puppet/pal/compiler.rb +221 -0
  28. data/lib/puppet/pal/function_signature.rb +52 -0
  29. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  30. data/lib/puppet/pal/pal_api.rb +15 -0
  31. data/lib/puppet/pal/pal_impl.rb +523 -0
  32. data/lib/puppet/pal/plan_signature.rb +71 -0
  33. data/lib/puppet/pal/script_compiler.rb +71 -0
  34. data/lib/puppet/pal/task_signature.rb +58 -0
  35. data/lib/puppet/parser/functions/generate.rb +7 -6
  36. data/lib/puppet/plugins/configuration.rb +5 -1
  37. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
  38. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
  39. data/lib/puppet/pops/issues.rb +0 -4
  40. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
  41. data/lib/puppet/pops/model/factory.rb +4 -38
  42. data/lib/puppet/pops/model/pn_transformer.rb +0 -5
  43. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  44. data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
  45. data/lib/puppet/pops/parser/lexer2.rb +1 -6
  46. data/lib/puppet/pops/parser/locator.rb +86 -106
  47. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  48. data/lib/puppet/pops/types/string_converter.rb +7 -2
  49. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  50. data/lib/puppet/pops/types/types.rb +3 -5
  51. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  52. data/lib/puppet/provider.rb +2 -1
  53. data/lib/puppet/provider/exec.rb +6 -1
  54. data/lib/puppet/provider/file/windows.rb +1 -49
  55. data/lib/puppet/provider/group/windows_adsi.rb +1 -4
  56. data/lib/puppet/provider/package.rb +0 -2
  57. data/lib/puppet/provider/package/dpkg.rb +2 -15
  58. data/lib/puppet/provider/package/gem.rb +42 -102
  59. data/lib/puppet/provider/package/pip.rb +111 -135
  60. data/lib/puppet/provider/package/pip3.rb +1 -1
  61. data/lib/puppet/provider/package/pkgng.rb +37 -21
  62. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  63. data/lib/puppet/provider/package/rpm.rb +16 -27
  64. data/lib/puppet/provider/package/windows.rb +1 -5
  65. data/lib/puppet/provider/package/yum.rb +1 -2
  66. data/lib/puppet/provider/service/systemd.rb +17 -0
  67. data/lib/puppet/provider/service/upstart.rb +5 -17
  68. data/lib/puppet/provider/service/windows.rb +8 -3
  69. data/lib/puppet/provider/user/directoryservice.rb +4 -16
  70. data/lib/puppet/provider/user/useradd.rb +13 -16
  71. data/lib/puppet/resource.rb +3 -1
  72. data/lib/puppet/rest/client.rb +83 -0
  73. data/lib/puppet/rest/route.rb +1 -1
  74. data/lib/puppet/settings.rb +5 -10
  75. data/lib/puppet/settings/server_list_setting.rb +0 -9
  76. data/lib/puppet/ssl/host.rb +11 -0
  77. data/lib/puppet/ssl/validator/default_validator.rb +0 -31
  78. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  79. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  80. data/lib/puppet/transaction.rb +7 -12
  81. data/lib/puppet/transaction/event_manager.rb +5 -1
  82. data/lib/puppet/transaction/resource_harness.rb +0 -1
  83. data/lib/puppet/type.rb +6 -0
  84. data/lib/puppet/type/exec.rb +5 -27
  85. data/lib/puppet/type/file/mode.rb +1 -6
  86. data/lib/puppet/type/file/source.rb +1 -0
  87. data/lib/puppet/type/filebucket.rb +8 -12
  88. data/lib/puppet/type/package.rb +11 -44
  89. data/lib/puppet/type/schedule.rb +0 -4
  90. data/lib/puppet/type/service.rb +12 -0
  91. data/lib/puppet/type/user.rb +1 -1
  92. data/lib/puppet/util/command_line.rb +1 -5
  93. data/lib/puppet/util/connection.rb +6 -15
  94. data/lib/puppet/util/http_proxy.rb +2 -3
  95. data/lib/puppet/util/log.rb +2 -7
  96. data/lib/puppet/util/pidlock.rb +1 -15
  97. data/lib/puppet/util/windows/process.rb +5 -73
  98. data/lib/puppet/util/windows/registry.rb +1 -7
  99. data/lib/puppet/util/windows/security.rb +8 -29
  100. data/lib/puppet/util/windows/service.rb +33 -27
  101. data/lib/puppet/util/windows/user.rb +4 -14
  102. data/lib/puppet/version.rb +1 -1
  103. data/lib/puppet_pal.rb +5 -1132
  104. data/locales/ja/puppet.po +297 -363
  105. data/locales/puppet.pot +445 -517
  106. data/man/man5/puppet.conf.5 +12 -20
  107. data/man/man8/puppet-agent.8 +1 -1
  108. data/man/man8/puppet-apply.8 +1 -1
  109. data/man/man8/puppet-catalog.8 +1 -1
  110. data/man/man8/puppet-config.8 +1 -1
  111. data/man/man8/puppet-describe.8 +1 -1
  112. data/man/man8/puppet-device.8 +1 -1
  113. data/man/man8/puppet-doc.8 +1 -1
  114. data/man/man8/puppet-epp.8 +1 -1
  115. data/man/man8/puppet-facts.8 +1 -1
  116. data/man/man8/puppet-filebucket.8 +2 -6
  117. data/man/man8/puppet-generate.8 +1 -1
  118. data/man/man8/puppet-help.8 +1 -1
  119. data/man/man8/puppet-key.8 +1 -1
  120. data/man/man8/puppet-lookup.8 +1 -1
  121. data/man/man8/puppet-man.8 +1 -1
  122. data/man/man8/puppet-module.8 +1 -1
  123. data/man/man8/puppet-node.8 +1 -1
  124. data/man/man8/puppet-parser.8 +1 -1
  125. data/man/man8/puppet-plugin.8 +1 -1
  126. data/man/man8/puppet-report.8 +1 -1
  127. data/man/man8/puppet-resource.8 +1 -1
  128. data/man/man8/puppet-script.8 +1 -1
  129. data/man/man8/puppet-ssl.8 +1 -1
  130. data/man/man8/puppet-status.8 +1 -1
  131. data/man/man8/puppet.8 +2 -2
  132. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  133. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  134. data/spec/integration/agent/logging_spec.rb +7 -5
  135. data/spec/integration/application/apply_spec.rb +16 -18
  136. data/spec/integration/application/doc_spec.rb +2 -1
  137. data/spec/integration/application/lookup_spec.rb +5 -5
  138. data/spec/integration/configurer_spec.rb +6 -5
  139. data/spec/integration/defaults_spec.rb +6 -5
  140. data/spec/integration/directory_environments_spec.rb +1 -1
  141. data/spec/integration/faces/config_spec.rb +4 -3
  142. data/spec/integration/faces/documentation_spec.rb +1 -0
  143. data/spec/integration/faces/plugin_spec.rb +1 -1
  144. data/spec/integration/file_bucket/file_spec.rb +4 -2
  145. data/spec/integration/file_serving/content_spec.rb +1 -0
  146. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  147. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  148. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  149. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  150. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  151. data/spec/integration/indirector/facts/facter_spec.rb +5 -4
  152. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  153. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  154. data/spec/integration/network/authconfig_spec.rb +24 -23
  155. data/spec/integration/network/formats_spec.rb +1 -0
  156. data/spec/integration/node/environment_spec.rb +1 -0
  157. data/spec/integration/node/facts_spec.rb +10 -9
  158. data/spec/integration/node_spec.rb +7 -6
  159. data/spec/integration/parser/catalog_spec.rb +5 -1
  160. data/spec/integration/parser/collection_spec.rb +2 -1
  161. data/spec/integration/parser/compiler_spec.rb +6 -6
  162. data/spec/integration/parser/scope_spec.rb +1 -1
  163. data/spec/integration/parser/undef_param_spec.rb +1 -1
  164. data/spec/integration/provider/service/init_spec.rb +5 -4
  165. data/spec/integration/provider/service/systemd_spec.rb +2 -0
  166. data/spec/integration/provider/service/windows_spec.rb +2 -1
  167. data/spec/integration/reference/providers_spec.rb +2 -1
  168. data/spec/integration/reports_spec.rb +2 -1
  169. data/spec/integration/resource/catalog_spec.rb +17 -14
  170. data/spec/integration/resource/type_collection_spec.rb +5 -4
  171. data/spec/integration/ssl/certificate_request_spec.rb +1 -0
  172. data/spec/integration/ssl/host_spec.rb +2 -1
  173. data/spec/integration/ssl/key_spec.rb +1 -0
  174. data/spec/integration/test/test_helper_spec.rb +1 -0
  175. data/spec/integration/transaction/report_spec.rb +11 -6
  176. data/spec/integration/transaction_spec.rb +19 -18
  177. data/spec/integration/type/exec_spec.rb +1 -0
  178. data/spec/integration/type/file_spec.rb +33 -13
  179. data/spec/integration/type/package_spec.rb +24 -20
  180. data/spec/integration/type/tidy_spec.rb +2 -1
  181. data/spec/integration/type_spec.rb +1 -0
  182. data/spec/integration/util/autoload_spec.rb +2 -1
  183. data/spec/integration/util/rdoc/parser_spec.rb +1 -0
  184. data/spec/integration/util/settings_spec.rb +1 -0
  185. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  186. data/spec/integration/util/windows/principal_spec.rb +1 -0
  187. data/spec/integration/util/windows/process_spec.rb +6 -4
  188. data/spec/integration/util/windows/registry_spec.rb +51 -93
  189. data/spec/integration/util/windows/security_spec.rb +4 -2
  190. data/spec/integration/util/windows/user_spec.rb +20 -37
  191. data/spec/integration/util_spec.rb +7 -4
  192. data/spec/lib/puppet_spec/compiler.rb +1 -1
  193. data/spec/lib/puppet_spec/files.rb +1 -0
  194. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  195. data/spec/lib/puppet_spec/scope.rb +2 -1
  196. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  197. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  198. data/spec/shared_behaviours/file_serving.rb +8 -6
  199. data/spec/shared_behaviours/file_serving_model.rb +5 -3
  200. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  201. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  202. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  203. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  204. data/spec/spec_helper.rb +2 -11
  205. data/spec/unit/agent/disabler_spec.rb +5 -4
  206. data/spec/unit/agent/locker_spec.rb +13 -12
  207. data/spec/unit/agent_spec.rb +85 -80
  208. data/spec/unit/application/agent_spec.rb +93 -88
  209. data/spec/unit/application/apply_spec.rb +83 -82
  210. data/spec/unit/application/config_spec.rb +1 -0
  211. data/spec/unit/application/describe_spec.rb +7 -6
  212. data/spec/unit/application/device_spec.rb +419 -395
  213. data/spec/unit/application/doc_spec.rb +46 -44
  214. data/spec/unit/application/face_base_spec.rb +62 -61
  215. data/spec/unit/application/facts_spec.rb +4 -3
  216. data/spec/unit/application/filebucket_spec.rb +74 -66
  217. data/spec/unit/application/indirection_base_spec.rb +6 -8
  218. data/spec/unit/application/lookup_spec.rb +26 -26
  219. data/spec/unit/application/resource_spec.rb +48 -42
  220. data/spec/unit/application/ssl_spec.rb +3 -8
  221. data/spec/unit/application_spec.rb +98 -86
  222. data/spec/unit/capability_spec.rb +6 -6
  223. data/spec/unit/certificate_factory_spec.rb +5 -3
  224. data/spec/unit/configurer/downloader_spec.rb +21 -20
  225. data/spec/unit/configurer/fact_handler_spec.rb +3 -2
  226. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  227. data/spec/unit/configurer_spec.rb +198 -194
  228. data/spec/unit/confine/exists_spec.rb +15 -17
  229. data/spec/unit/confine/false_spec.rb +6 -32
  230. data/spec/unit/confine/feature_spec.rb +5 -7
  231. data/spec/unit/confine/true_spec.rb +6 -32
  232. data/spec/unit/confine/variable_spec.rb +15 -14
  233. data/spec/unit/confine_collection_spec.rb +29 -28
  234. data/spec/unit/confine_spec.rb +14 -13
  235. data/spec/unit/confiner_spec.rb +11 -10
  236. data/spec/unit/context/trusted_information_spec.rb +1 -1
  237. data/spec/unit/daemon_spec.rb +36 -35
  238. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  239. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  240. data/spec/unit/datatypes_spec.rb +4 -3
  241. data/spec/unit/defaults_spec.rb +27 -18
  242. data/spec/unit/environments_spec.rb +7 -7
  243. data/spec/unit/etc_spec.rb +32 -30
  244. data/spec/unit/external/pson_spec.rb +1 -0
  245. data/spec/unit/face/catalog_spec.rb +1 -0
  246. data/spec/unit/face/config_spec.rb +35 -31
  247. data/spec/unit/face/epp_face_spec.rb +4 -3
  248. data/spec/unit/face/facts_spec.rb +6 -5
  249. data/spec/unit/face/generate_spec.rb +5 -4
  250. data/spec/unit/face/help_spec.rb +8 -7
  251. data/spec/unit/face/key_spec.rb +1 -0
  252. data/spec/unit/face/man_spec.rb +2 -1
  253. data/spec/unit/face/module/install_spec.rb +5 -3
  254. data/spec/unit/face/module/list_spec.rb +12 -2
  255. data/spec/unit/face/module/search_spec.rb +9 -11
  256. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  257. data/spec/unit/face/node_spec.rb +24 -23
  258. data/spec/unit/face/parser_spec.rb +18 -3
  259. data/spec/unit/face/plugin_spec.rb +9 -36
  260. data/spec/unit/face/status_spec.rb +1 -0
  261. data/spec/unit/file_bucket/dipper_spec.rb +20 -24
  262. data/spec/unit/file_bucket/file_spec.rb +2 -0
  263. data/spec/unit/file_serving/base_spec.rb +15 -14
  264. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  265. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  266. data/spec/unit/file_serving/content_spec.rb +11 -10
  267. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  268. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  269. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  270. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  271. data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
  272. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  273. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
  274. data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
  275. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  276. data/spec/unit/file_serving/mount_spec.rb +1 -0
  277. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  278. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  279. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  280. data/spec/unit/file_system_spec.rb +2 -2
  281. data/spec/unit/forge/errors_spec.rb +1 -1
  282. data/spec/unit/forge/forge_spec.rb +16 -17
  283. data/spec/unit/forge/module_release_spec.rb +18 -18
  284. data/spec/unit/forge/repository_spec.rb +30 -29
  285. data/spec/unit/forge_spec.rb +11 -15
  286. data/spec/unit/functions/binary_file_spec.rb +3 -3
  287. data/spec/unit/functions/contain_spec.rb +2 -0
  288. data/spec/unit/functions/defined_spec.rb +1 -0
  289. data/spec/unit/functions/epp_spec.rb +2 -2
  290. data/spec/unit/functions/find_file_spec.rb +7 -7
  291. data/spec/unit/functions/include_spec.rb +4 -0
  292. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  293. data/spec/unit/functions/lookup_spec.rb +2 -1
  294. data/spec/unit/functions/module_directory_spec.rb +12 -12
  295. data/spec/unit/functions/new_spec.rb +0 -15
  296. data/spec/unit/functions/require_spec.rb +3 -0
  297. data/spec/unit/functions/shared.rb +8 -5
  298. data/spec/unit/functions/versioncmp_spec.rb +2 -1
  299. data/spec/unit/functions4_spec.rb +10 -9
  300. data/spec/unit/gettext/config_spec.rb +4 -4
  301. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  302. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  303. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  304. data/spec/unit/graph/simple_graph_spec.rb +10 -9
  305. data/spec/unit/hiera/scope_spec.rb +0 -7
  306. data/spec/unit/hiera_puppet_spec.rb +20 -20
  307. data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
  308. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  309. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  310. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  311. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  312. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  313. data/spec/unit/indirector/certificate/file_spec.rb +1 -0
  314. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  315. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  316. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  317. data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
  318. data/spec/unit/indirector/envelope_spec.rb +2 -1
  319. data/spec/unit/indirector/exec_spec.rb +5 -4
  320. data/spec/unit/indirector/face_spec.rb +9 -9
  321. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  322. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  323. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  324. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  325. data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
  326. data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
  327. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  328. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  329. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  330. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  331. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  332. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  333. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  334. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  335. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  336. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  337. data/spec/unit/indirector/file_server_spec.rb +87 -87
  338. data/spec/unit/indirector/indirection_spec.rb +226 -242
  339. data/spec/unit/indirector/json_spec.rb +9 -7
  340. data/spec/unit/indirector/key/file_spec.rb +22 -21
  341. data/spec/unit/indirector/memory_spec.rb +7 -6
  342. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  343. data/spec/unit/indirector/node/exec_spec.rb +3 -2
  344. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  345. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  346. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  347. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  348. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  349. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  350. data/spec/unit/indirector/none_spec.rb +5 -5
  351. data/spec/unit/indirector/plain_spec.rb +8 -7
  352. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  353. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  354. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  355. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  356. data/spec/unit/indirector/request_spec.rb +12 -11
  357. data/spec/unit/indirector/resource/ral_spec.rb +54 -47
  358. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  359. data/spec/unit/indirector/rest_spec.rb +110 -113
  360. data/spec/unit/indirector/ssl_file_spec.rb +65 -64
  361. data/spec/unit/indirector/status/local_spec.rb +1 -0
  362. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  363. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  364. data/spec/unit/indirector/terminus_spec.rb +27 -27
  365. data/spec/unit/indirector/yaml_spec.rb +6 -5
  366. data/spec/unit/indirector_spec.rb +2 -1
  367. data/spec/unit/info_service_spec.rb +1 -1
  368. data/spec/unit/interface/action_builder_spec.rb +1 -0
  369. data/spec/unit/interface/action_manager_spec.rb +1 -0
  370. data/spec/unit/interface/action_spec.rb +3 -2
  371. data/spec/unit/interface/documentation_spec.rb +1 -0
  372. data/spec/unit/interface/face_collection_spec.rb +12 -19
  373. data/spec/unit/interface_spec.rb +3 -3
  374. data/spec/unit/man_spec.rb +4 -3
  375. data/spec/unit/module_spec.rb +51 -46
  376. data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
  377. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  378. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  379. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  380. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  381. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  382. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  383. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  384. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  385. data/spec/unit/module_tool/tar_spec.rb +13 -12
  386. data/spec/unit/module_tool_spec.rb +12 -7
  387. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  388. data/spec/unit/network/authconfig_spec.rb +18 -17
  389. data/spec/unit/network/authorization_spec.rb +5 -4
  390. data/spec/unit/network/authstore_spec.rb +1 -0
  391. data/spec/unit/network/format_handler_spec.rb +1 -0
  392. data/spec/unit/network/format_spec.rb +10 -9
  393. data/spec/unit/network/format_support_spec.rb +29 -28
  394. data/spec/unit/network/formats_spec.rb +5 -4
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
  396. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  397. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  398. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  399. data/spec/unit/network/http/api_spec.rb +2 -0
  400. data/spec/unit/network/http/compression_spec.rb +22 -21
  401. data/spec/unit/network/http/connection_spec.rb +121 -30
  402. data/spec/unit/network/http/factory_spec.rb +6 -11
  403. data/spec/unit/network/http/handler_spec.rb +18 -9
  404. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  405. data/spec/unit/network/http/pool_spec.rb +29 -28
  406. data/spec/unit/network/http/request_spec.rb +2 -0
  407. data/spec/unit/network/http/response_spec.rb +13 -11
  408. data/spec/unit/network/http/route_spec.rb +1 -0
  409. data/spec/unit/network/http/session_spec.rb +2 -1
  410. data/spec/unit/network/http/site_spec.rb +1 -0
  411. data/spec/unit/network/http_pool_spec.rb +9 -18
  412. data/spec/unit/network/http_spec.rb +1 -0
  413. data/spec/unit/network/resolver_spec.rb +26 -25
  414. data/spec/unit/network/rights_spec.rb +53 -52
  415. data/spec/unit/node/environment_spec.rb +15 -14
  416. data/spec/unit/node/facts_spec.rb +7 -5
  417. data/spec/unit/node_spec.rb +10 -4
  418. data/spec/unit/other/selinux_spec.rb +1 -0
  419. data/spec/unit/parameter/boolean_spec.rb +2 -1
  420. data/spec/unit/parameter/package_options_spec.rb +2 -1
  421. data/spec/unit/parameter/path_spec.rb +1 -0
  422. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  423. data/spec/unit/parameter/value_spec.rb +1 -0
  424. data/spec/unit/parameter_spec.rb +9 -9
  425. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  426. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  427. data/spec/unit/parser/compiler_spec.rb +96 -84
  428. data/spec/unit/parser/environment_compiler_spec.rb +8 -7
  429. data/spec/unit/parser/files_spec.rb +1 -0
  430. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  431. data/spec/unit/parser/functions/digest_spec.rb +1 -0
  432. data/spec/unit/parser/functions/fail_spec.rb +2 -1
  433. data/spec/unit/parser/functions/file_spec.rb +14 -13
  434. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  435. data/spec/unit/parser/functions/generate_spec.rb +8 -7
  436. data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
  437. data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
  438. data/spec/unit/parser/functions/scanf_spec.rb +1 -0
  439. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  440. data/spec/unit/parser/functions/split_spec.rb +1 -0
  441. data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
  442. data/spec/unit/parser/functions/tag_spec.rb +2 -1
  443. data/spec/unit/parser/functions/tagged_spec.rb +3 -2
  444. data/spec/unit/parser/functions/template_spec.rb +13 -13
  445. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
  446. data/spec/unit/parser/functions_spec.rb +7 -6
  447. data/spec/unit/parser/relationship_spec.rb +1 -0
  448. data/spec/unit/parser/resource_spec.rb +42 -42
  449. data/spec/unit/parser/scope_spec.rb +35 -39
  450. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  451. data/spec/unit/parser/type_loader_spec.rb +19 -17
  452. data/spec/unit/pops/adaptable_spec.rb +1 -0
  453. data/spec/unit/pops/benchmark_spec.rb +1 -0
  454. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  455. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
  456. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  457. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  458. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  459. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  460. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
  461. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  462. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
  463. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  464. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  465. data/spec/unit/pops/factory_spec.rb +4 -3
  466. data/spec/unit/pops/issues_spec.rb +20 -19
  467. data/spec/unit/pops/loaders/loader_spec.rb +4 -8
  468. data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
  469. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  470. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  471. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  472. data/spec/unit/pops/migration_spec.rb +5 -3
  473. data/spec/unit/pops/model/model_spec.rb +1 -0
  474. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
  475. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  476. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  477. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  478. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  479. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  480. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  481. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  482. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
  483. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  484. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  485. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  486. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  487. data/spec/unit/pops/pn_spec.rb +1 -0
  488. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  489. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  490. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  491. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  492. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  493. data/spec/unit/pops/types/string_converter_spec.rb +5 -1
  494. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  495. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  496. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  497. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  498. data/spec/unit/pops/validator/validator_spec.rb +2 -1
  499. data/spec/unit/pops/visitor_spec.rb +1 -0
  500. data/spec/unit/property/boolean_spec.rb +1 -1
  501. data/spec/unit/property/ensure_spec.rb +1 -0
  502. data/spec/unit/property/keyvalue_spec.rb +34 -32
  503. data/spec/unit/property/list_spec.rb +27 -26
  504. data/spec/unit/property/ordered_list_spec.rb +14 -10
  505. data/spec/unit/property_spec.rb +43 -42
  506. data/spec/unit/provider/aix_object_spec.rb +45 -47
  507. data/spec/unit/provider/command_spec.rb +9 -9
  508. data/spec/unit/provider/exec/posix_spec.rb +31 -6
  509. data/spec/unit/provider/exec/shell_spec.rb +1 -0
  510. data/spec/unit/provider/exec/windows_spec.rb +4 -2
  511. data/spec/unit/provider/exec_spec.rb +1 -0
  512. data/spec/unit/provider/file/posix_spec.rb +24 -22
  513. data/spec/unit/provider/file/windows_spec.rb +17 -15
  514. data/spec/unit/provider/group/aix_spec.rb +2 -3
  515. data/spec/unit/provider/group/groupadd_spec.rb +26 -30
  516. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  517. data/spec/unit/provider/group/pw_spec.rb +11 -11
  518. data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
  519. data/spec/unit/provider/ldap_spec.rb +62 -61
  520. data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
  521. data/spec/unit/provider/nameservice_spec.rb +40 -38
  522. data/spec/unit/provider/package/aix_spec.rb +15 -15
  523. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  524. data/spec/unit/provider/package/apt_spec.rb +27 -44
  525. data/spec/unit/provider/package/aptitude_spec.rb +7 -6
  526. data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
  527. data/spec/unit/provider/package/base_spec.rb +4 -4
  528. data/spec/unit/provider/package/dnf_spec.rb +20 -18
  529. data/spec/unit/provider/package/dpkg_spec.rb +53 -70
  530. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  531. data/spec/unit/provider/package/gem_spec.rb +55 -132
  532. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  533. data/spec/unit/provider/package/macports_spec.rb +42 -46
  534. data/spec/unit/provider/package/nim_spec.rb +39 -30
  535. data/spec/unit/provider/package/openbsd_spec.rb +39 -36
  536. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  537. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  538. data/spec/unit/provider/package/pip3_spec.rb +0 -17
  539. data/spec/unit/provider/package/pip_spec.rb +106 -95
  540. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  541. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  542. data/spec/unit/provider/package/pkgin_spec.rb +8 -10
  543. data/spec/unit/provider/package/pkgng_spec.rb +31 -22
  544. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  545. data/spec/unit/provider/package/portage_spec.rb +74 -70
  546. data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
  547. data/spec/unit/provider/package/rpm_spec.rb +76 -154
  548. data/spec/unit/provider/package/sun_spec.rb +18 -16
  549. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  550. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  551. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  552. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
  553. data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
  554. data/spec/unit/provider/package/windows/package_spec.rb +42 -37
  555. data/spec/unit/provider/package/windows_spec.rb +32 -47
  556. data/spec/unit/provider/package/yum_spec.rb +7 -7
  557. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  558. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  559. data/spec/unit/provider/service/base_spec.rb +5 -4
  560. data/spec/unit/provider/service/bsd_spec.rb +29 -27
  561. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  562. data/spec/unit/provider/service/debian_spec.rb +38 -38
  563. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  564. data/spec/unit/provider/service/gentoo_spec.rb +55 -50
  565. data/spec/unit/provider/service/init_spec.rb +52 -53
  566. data/spec/unit/provider/service/launchd_spec.rb +116 -138
  567. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  568. data/spec/unit/provider/service/openrc_spec.rb +45 -43
  569. data/spec/unit/provider/service/openwrt_spec.rb +31 -26
  570. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  571. data/spec/unit/provider/service/redhat_spec.rb +43 -45
  572. data/spec/unit/provider/service/runit_spec.rb +27 -29
  573. data/spec/unit/provider/service/smf_spec.rb +66 -74
  574. data/spec/unit/provider/service/src_spec.rb +47 -46
  575. data/spec/unit/provider/service/systemd_spec.rb +136 -109
  576. data/spec/unit/provider/service/upstart_spec.rb +93 -77
  577. data/spec/unit/provider/service/windows_spec.rb +41 -33
  578. data/spec/unit/provider/user/aix_spec.rb +31 -31
  579. data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
  580. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  581. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  582. data/spec/unit/provider/user/openbsd_spec.rb +12 -10
  583. data/spec/unit/provider/user/pw_spec.rb +35 -37
  584. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  585. data/spec/unit/provider/user/useradd_spec.rb +92 -93
  586. data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
  587. data/spec/unit/provider_spec.rb +35 -35
  588. data/spec/unit/puppet_pal_2pec.rb +5 -4
  589. data/spec/unit/puppet_pal_spec.rb +1 -0
  590. data/spec/unit/puppet_spec.rb +7 -6
  591. data/spec/unit/relationship_spec.rb +1 -0
  592. data/spec/unit/reports/http_spec.rb +23 -21
  593. data/spec/unit/reports/store_spec.rb +4 -3
  594. data/spec/unit/reports_spec.rb +14 -12
  595. data/spec/unit/resource/capability_finder_spec.rb +17 -15
  596. data/spec/unit/resource/catalog_spec.rb +68 -72
  597. data/spec/unit/resource/status_spec.rb +8 -6
  598. data/spec/unit/resource/type_collection_spec.rb +18 -17
  599. data/spec/unit/resource/type_spec.rb +35 -34
  600. data/spec/unit/resource_spec.rb +63 -36
  601. data/spec/unit/rest/client_spec.rb +135 -0
  602. data/spec/unit/rest/route_spec.rb +6 -6
  603. data/spec/unit/scheduler/job_spec.rb +1 -0
  604. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  605. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  606. data/spec/unit/settings/array_setting_spec.rb +1 -1
  607. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  608. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  609. data/spec/unit/settings/config_file_spec.rb +1 -0
  610. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  611. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  612. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  613. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  614. data/spec/unit/settings/file_setting_spec.rb +46 -44
  615. data/spec/unit/settings/path_setting_spec.rb +2 -1
  616. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  617. data/spec/unit/settings/string_setting_spec.rb +15 -14
  618. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  619. data/spec/unit/settings/value_translator_spec.rb +1 -0
  620. data/spec/unit/settings_spec.rb +224 -253
  621. data/spec/unit/ssl/base_spec.rb +15 -14
  622. data/spec/unit/ssl/certificate_request_spec.rb +58 -62
  623. data/spec/unit/ssl/certificate_spec.rb +25 -23
  624. data/spec/unit/ssl/digest_spec.rb +1 -0
  625. data/spec/unit/ssl/host_spec.rb +149 -166
  626. data/spec/unit/ssl/key_spec.rb +31 -30
  627. data/spec/unit/ssl/validator_spec.rb +39 -40
  628. data/spec/unit/task_spec.rb +45 -44
  629. data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
  630. data/spec/unit/transaction/event_manager_spec.rb +88 -87
  631. data/spec/unit/transaction/event_spec.rb +15 -16
  632. data/spec/unit/transaction/persistence_spec.rb +17 -16
  633. data/spec/unit/transaction/report_spec.rb +12 -11
  634. data/spec/unit/transaction/resource_harness_spec.rb +31 -52
  635. data/spec/unit/transaction_spec.rb +87 -140
  636. data/spec/unit/type/component_spec.rb +1 -0
  637. data/spec/unit/type/exec_spec.rb +50 -101
  638. data/spec/unit/type/file/checksum_spec.rb +10 -9
  639. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  640. data/spec/unit/type/file/content_spec.rb +61 -58
  641. data/spec/unit/type/file/ctime_spec.rb +1 -0
  642. data/spec/unit/type/file/ensure_spec.rb +13 -12
  643. data/spec/unit/type/file/group_spec.rb +7 -5
  644. data/spec/unit/type/file/mode_spec.rb +6 -4
  645. data/spec/unit/type/file/mtime_spec.rb +1 -0
  646. data/spec/unit/type/file/owner_spec.rb +8 -6
  647. data/spec/unit/type/file/selinux_spec.rb +19 -17
  648. data/spec/unit/type/file/source_spec.rb +101 -104
  649. data/spec/unit/type/file/type_spec.rb +1 -0
  650. data/spec/unit/type/file_spec.rb +185 -195
  651. data/spec/unit/type/filebucket_spec.rb +10 -11
  652. data/spec/unit/type/group_spec.rb +8 -6
  653. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  654. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  655. data/spec/unit/type/package_spec.rb +57 -56
  656. data/spec/unit/type/resources_spec.rb +74 -72
  657. data/spec/unit/type/schedule_spec.rb +26 -24
  658. data/spec/unit/type/service_spec.rb +75 -49
  659. data/spec/unit/type/stage_spec.rb +1 -0
  660. data/spec/unit/type/tidy_spec.rb +62 -61
  661. data/spec/unit/type/user_spec.rb +25 -24
  662. data/spec/unit/type/whit_spec.rb +1 -0
  663. data/spec/unit/type_spec.rb +54 -55
  664. data/spec/unit/util/at_fork_spec.rb +19 -18
  665. data/spec/unit/util/autoload_spec.rb +56 -55
  666. data/spec/unit/util/backups_spec.rb +35 -34
  667. data/spec/unit/util/character_encoding_spec.rb +5 -5
  668. data/spec/unit/util/checksums_spec.rb +39 -38
  669. data/spec/unit/util/colors_spec.rb +2 -1
  670. data/spec/unit/util/command_line_spec.rb +20 -40
  671. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  672. data/spec/unit/util/diff_spec.rb +8 -7
  673. data/spec/unit/util/errors_spec.rb +1 -0
  674. data/spec/unit/util/execution_spec.rb +163 -187
  675. data/spec/unit/util/execution_stub_spec.rb +1 -0
  676. data/spec/unit/util/feature_spec.rb +14 -21
  677. data/spec/unit/util/filetype_spec.rb +49 -49
  678. data/spec/unit/util/http_proxy_spec.rb +12 -12
  679. data/spec/unit/util/inifile_spec.rb +31 -26
  680. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  681. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  682. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  683. data/spec/unit/util/ldap/manager_spec.rb +101 -102
  684. data/spec/unit/util/lockfile_spec.rb +1 -0
  685. data/spec/unit/util/log/destinations_spec.rb +33 -30
  686. data/spec/unit/util/log_spec.rb +34 -48
  687. data/spec/unit/util/logging_spec.rb +72 -58
  688. data/spec/unit/util/metric_spec.rb +1 -0
  689. data/spec/unit/util/monkey_patches_spec.rb +9 -7
  690. data/spec/unit/util/multi_match_spec.rb +1 -0
  691. data/spec/unit/util/network_device/config_spec.rb +1 -0
  692. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  693. data/spec/unit/util/network_device_spec.rb +9 -7
  694. data/spec/unit/util/package_spec.rb +1 -0
  695. data/spec/unit/util/pidlock_spec.rb +15 -60
  696. data/spec/unit/util/plist_spec.rb +33 -40
  697. data/spec/unit/util/posix_spec.rb +51 -54
  698. data/spec/unit/util/rdoc_spec.rb +10 -9
  699. data/spec/unit/util/reference_spec.rb +1 -0
  700. data/spec/unit/util/resource_template_spec.rb +20 -20
  701. data/spec/unit/util/retry_action_spec.rb +8 -7
  702. data/spec/unit/util/rubygems_spec.rb +8 -7
  703. data/spec/unit/util/run_mode_spec.rb +4 -3
  704. data/spec/unit/util/selinux_spec.rb +72 -79
  705. data/spec/unit/util/splayer_spec.rb +9 -8
  706. data/spec/unit/util/ssl_spec.rb +1 -0
  707. data/spec/unit/util/storage_spec.rb +23 -22
  708. data/spec/unit/util/suidmanager_spec.rb +54 -45
  709. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  710. data/spec/unit/util/tag_set_spec.rb +1 -0
  711. data/spec/unit/util/tagging_spec.rb +1 -0
  712. data/spec/unit/util/terminal_spec.rb +10 -9
  713. data/spec/unit/util/user_attr_spec.rb +2 -1
  714. data/spec/unit/util/warnings_spec.rb +4 -3
  715. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  716. data/spec/unit/util/watcher_spec.rb +21 -51
  717. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
  718. data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
  719. data/spec/unit/util/windows/adsi_spec.rb +138 -136
  720. data/spec/unit/util/windows/api_types_spec.rb +1 -0
  721. data/spec/unit/util/windows/eventlog_spec.rb +12 -9
  722. data/spec/unit/util/windows/file_spec.rb +1 -0
  723. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  724. data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
  725. data/spec/unit/util/windows/service_spec.rb +103 -100
  726. data/spec/unit/util/windows/sid_spec.rb +13 -11
  727. data/spec/unit/util/windows/string_spec.rb +1 -0
  728. data/spec/unit/util_spec.rb +57 -55
  729. data/spec/unit/version_spec.rb +6 -6
  730. metadata +20 -32
  731. data/CODEOWNERS +0 -30
  732. data/ext/autotest/Rakefile +0 -8
  733. data/ext/autotest/config +0 -43
  734. data/ext/autotest/readme.rst +0 -16
  735. data/lib/puppet/confine/boolean.rb +0 -45
  736. data/lib/puppet/provider/package_targetable.rb +0 -68
  737. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  738. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  739. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  740. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  741. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  742. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  743. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  744. data/spec/integration/network/http_pool_spec.rb +0 -120
  745. data/spec/integration/provider/file/windows_spec.rb +0 -162
  746. data/spec/lib/puppet_spec/https.rb +0 -166
  747. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  748. data/spec/watchr.rb +0 -137
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ #!/usr/bin/env ruby
2
3
 
3
4
  require 'spec_helper'
4
5
 
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  require 'puppet/util/windows'
@@ -21,7 +23,7 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
21
23
  it "sets a handle to the event log" do
22
24
  default_name = Puppet::Util::Windows::String.wide_string('Puppet')
23
25
  # return nil explicitly just to reinforce that we're not leaking eventlog handle
24
- expect_any_instance_of(Puppet::Util::Windows::EventLog).to receive(:RegisterEventSourceW).with(anything, default_name).and_return(nil)
26
+ Puppet::Util::Windows::EventLog.any_instance.expects(:RegisterEventSourceW).with(nil, default_name).returns(nil)
25
27
  Puppet::Util::Windows::EventLog.new
26
28
  end
27
29
 
@@ -29,7 +31,7 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
29
31
  before do
30
32
  # RegisterEventSourceW will return NULL on failure
31
33
  # Stubbing prevents leaking eventlog handle
32
- allow_any_instance_of(Puppet::Util::Windows::EventLog).to receive(:RegisterEventSourceW).and_return(Puppet::Util::Windows::EventLog::NULL_HANDLE)
34
+ Puppet::Util::Windows::EventLog.any_instance.stubs(:RegisterEventSourceW).returns(Puppet::Util::Windows::EventLog::NULL_HANDLE)
33
35
  end
34
36
 
35
37
  it "raises an exception warning that the event log failed to open" do
@@ -38,11 +40,11 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
38
40
 
39
41
  it "passes the exit code to the exception constructor" do
40
42
  fake_error = Puppet::Util::Windows::EventLog::EventLogError.new('foo', 87)
41
- allow(FFI).to receive(:errno).and_return(87)
43
+ FFI.stubs(:errno).returns(87)
42
44
  # All we're testing here is that the constructor actually receives the exit code from FFI.errno (87)
43
45
  # We do so because `expect to...raise_error` doesn't support multiple parameter match arguments
44
46
  # We return fake_error just because `raise` expects an exception class
45
- expect(Puppet::Util::Windows::EventLog::EventLogError).to receive(:new).with(/failed to open Windows eventlog/, 87).and_return(fake_error)
47
+ Puppet::Util::Windows::EventLog::EventLogError.expects(:new).with(regexp_matches(/failed to open Windows eventlog/), 87).returns(fake_error)
46
48
  expect { Puppet::Util::Windows::EventLog.open('foo') }.to raise_error(Puppet::Util::Windows::EventLog::EventLogError)
47
49
  end
48
50
  end
@@ -51,9 +53,9 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
51
53
  describe "#close" do
52
54
  it "closes the handle to the event log" do
53
55
  @handle = "12345"
54
- allow_any_instance_of(Puppet::Util::Windows::EventLog).to receive(:RegisterEventSourceW).and_return(@handle)
56
+ Puppet::Util::Windows::EventLog.any_instance.stubs(:RegisterEventSourceW).returns(@handle)
55
57
  event_log = Puppet::Util::Windows::EventLog.new
56
- expect(event_log).to receive(:DeregisterEventSource).with(@handle).and_return(1)
58
+ event_log.expects(:DeregisterEventSource).with(@handle).returns(1)
57
59
  event_log.close
58
60
  end
59
61
  end
@@ -66,7 +68,7 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
66
68
  context "when an event report fails" do
67
69
  before do
68
70
  # ReportEventW returns 0 on failure, which is mapped to WIN32_FALSE
69
- allow(@event_log).to receive(:ReportEventW).and_return(Puppet::Util::Windows::EventLog::WIN32_FALSE)
71
+ @event_log.stubs(:ReportEventW).returns(Puppet::Util::Windows::EventLog::WIN32_FALSE)
70
72
  end
71
73
 
72
74
  it "raises an exception warning that the event report failed" do
@@ -75,17 +77,18 @@ describe Puppet::Util::Windows::EventLog, :if => Puppet::Util::Platform.windows?
75
77
 
76
78
  it "passes the exit code to the exception constructor" do
77
79
  fake_error = Puppet::Util::Windows::EventLog::EventLogError.new('foo', 5)
78
- allow(FFI).to receive(:errno).and_return(5)
80
+ FFI.stubs(:errno).returns(5)
79
81
  # All we're testing here is that the constructor actually receives the exit code from FFI.errno (5)
80
82
  # We do so because `expect to...raise_error` doesn't support multiple parameter match arguments
81
83
  # We return fake_error just because `raise` expects an exception class
82
- expect(Puppet::Util::Windows::EventLog::EventLogError).to receive(:new).with(/failed to report event/, 5).and_return(fake_error)
84
+ Puppet::Util::Windows::EventLog::EventLogError.expects(:new).with(regexp_matches(/failed to report event/), 5).returns(fake_error)
83
85
  expect { @event_log.report_event(:data => 'foo', :event_type => Puppet::Util::Windows::EventLog::EVENTLOG_ERROR_TYPE, :event_id => 0x03) }.to raise_error(Puppet::Util::Windows::EventLog::EventLogError)
84
86
  end
85
87
  end
86
88
  end
87
89
 
88
90
  describe "self.to_native" do
91
+
89
92
  it "raises an exception if the log level is not supported" do
90
93
  expect { Puppet::Util::Windows::EventLog.to_native(:foo) }.to raise_error(ArgumentError)
91
94
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/util/windows'
3
4
 
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/util/windows'
3
4
 
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
  require 'puppet/util/windows'
3
5
 
@@ -1,12 +1,13 @@
1
+ #!/usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_windows? do
4
5
  require 'puppet/util/windows'
5
6
 
6
7
  before(:each) do
7
- allow(Puppet::Util::Windows::Error).to receive(:format_error_code)
8
+ Puppet::Util::Windows::Error.stubs(:format_error_code)
8
9
  .with(anything)
9
- .and_return("fake error!")
10
+ .returns("fake error!")
10
11
  end
11
12
 
12
13
  def service_state_str(state)
@@ -21,7 +22,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
21
22
  # just an expectation of subject::SERVICE_STATUS_PROCESS.new in sequence that
22
23
  # returns the value passed in as a param
23
24
  def expect_successful_status_query_and_return(query_return)
24
- expect(subject::SERVICE_STATUS_PROCESS).to receive(:new).and_return(query_return)
25
+ subject::SERVICE_STATUS_PROCESS.expects(:new).in_sequence(status_checks).returns(query_return)
25
26
  end
26
27
 
27
28
  def expect_successful_status_queries_and_return(*query_returns)
@@ -38,33 +39,35 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
38
39
  # just an expectation of subject::QUERY_SERVICE_CONFIGW.new in sequence that
39
40
  # returns the value passed in as a param
40
41
  def expect_successful_config_query_and_return(query_return)
41
- expect(subject::QUERY_SERVICE_CONFIGW).to receive(:new).and_return(query_return)
42
+ subject::QUERY_SERVICE_CONFIGW.expects(:new).in_sequence(status_checks).returns(query_return)
42
43
  end
43
44
 
44
45
  let(:subject) { Puppet::Util::Windows::Service }
45
- let(:pointer) { double() }
46
- let(:mock_service_name) { double() }
47
- let(:service) { double() }
48
- let(:scm) { double() }
46
+ let(:pointer) { mock() }
47
+ let(:status_checks) { sequence('status_checks') }
48
+ let(:mock_service_name) { mock() }
49
+ let(:service) { mock() }
50
+ let(:scm) { mock() }
51
+ let(:timeout) { 30 }
49
52
 
50
53
  before do
51
- allow(subject).to receive(:QueryServiceStatusEx).and_return(1)
52
- allow(subject).to receive(:QueryServiceConfigW).and_return(1)
53
- allow(subject).to receive(:ChangeServiceConfigW).and_return(1)
54
- allow(subject).to receive(:OpenSCManagerW).and_return(scm)
55
- allow(subject).to receive(:OpenServiceW).and_return(service)
56
- allow(subject).to receive(:CloseServiceHandle)
57
- allow(subject).to receive(:EnumServicesStatusExW).and_return(1)
58
- allow(subject).to receive(:wide_string)
59
- allow(subject::SERVICE_STATUS_PROCESS).to receive(:new)
60
- allow(subject::QUERY_SERVICE_CONFIGW).to receive(:new)
61
- allow(subject::SERVICE_STATUS).to receive(:new).and_return({:dwCurrentState => subject::SERVICE_RUNNING})
62
- allow(FFI).to receive(:errno).and_return(0)
63
- allow(FFI::MemoryPointer).to receive(:new).and_yield(pointer)
64
- allow(pointer).to receive(:read_dword)
65
- allow(pointer).to receive(:write_dword)
66
- allow(pointer).to receive(:size)
67
- allow(subject).to receive(:sleep)
54
+ subject.stubs(:QueryServiceStatusEx).returns(1)
55
+ subject.stubs(:QueryServiceConfigW).returns(1)
56
+ subject.stubs(:ChangeServiceConfigW).returns(1)
57
+ subject.stubs(:OpenSCManagerW).returns(scm)
58
+ subject.stubs(:OpenServiceW).returns(service)
59
+ subject.stubs(:CloseServiceHandle)
60
+ subject.stubs(:EnumServicesStatusExW).returns(1)
61
+ subject.stubs(:wide_string)
62
+ subject::SERVICE_STATUS_PROCESS.stubs(:new)
63
+ subject::QUERY_SERVICE_CONFIGW.stubs(:new)
64
+ subject::SERVICE_STATUS.stubs(:new).returns({:dwCurrentState => subject::SERVICE_RUNNING})
65
+ FFI.stubs(:errno).returns(0)
66
+ FFI::MemoryPointer.stubs(:new).yields(pointer)
67
+ pointer.stubs(:read_dword)
68
+ pointer.stubs(:write_dword)
69
+ pointer.stubs(:size)
70
+ subject.stubs(:sleep)
68
71
  end
69
72
 
70
73
  describe "#exists?" do
@@ -79,7 +82,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
79
82
  let(:service) { FFI::Pointer::NULL_HANDLE }
80
83
 
81
84
  it "returns false if it fails to open because the service does not exist" do
82
- allow(FFI).to receive(:errno).and_return(Puppet::Util::Windows::Service::ERROR_SERVICE_DOES_NOT_EXIST)
85
+ FFI.stubs(:errno).returns(Puppet::Util::Windows::Service::ERROR_SERVICE_DOES_NOT_EXIST)
83
86
 
84
87
  expect(subject.exists?(mock_service_name)).to be false
85
88
  end
@@ -111,9 +114,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
111
114
  final_state_str = Puppet::Util::Windows::Service::SERVICE_STATES[final_state].to_s
112
115
 
113
116
  it "raises a Puppet::Error if the service query fails" do
114
- expect(subject).to receive(:QueryServiceStatusEx).and_return(FFI::WIN32_FALSE)
117
+ subject.expects(:QueryServiceStatusEx).in_sequence(status_checks).returns(FFI::WIN32_FALSE)
115
118
 
116
- expect { subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
119
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
117
120
  end
118
121
 
119
122
  it "raises a Puppet::Error if the service unexpectedly transitions to a state other than #{pending_state_str} or #{final_state_str}" do
@@ -121,7 +124,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
121
124
 
122
125
  expect_successful_status_query_and_return(dwCurrentState: invalid_state)
123
126
 
124
- expect { subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
127
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
125
128
  end
126
129
 
127
130
  it "waits for at least 1 second if the wait_hint/10 is < 1 second" do
@@ -130,9 +133,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
130
133
  { :dwCurrentState => final_state }
131
134
  )
132
135
 
133
- expect(subject).to receive(:sleep).with(1)
136
+ subject.expects(:sleep).with(1)
134
137
 
135
- subject.send(action, mock_service_name)
138
+ subject.send(action, mock_service_name, timeout: timeout)
136
139
  end
137
140
 
138
141
  it "waits for at most 10 seconds if wait_hint/10 is > 10 seconds" do
@@ -141,9 +144,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
141
144
  { :dwCurrentState => final_state }
142
145
  )
143
146
 
144
- expect(subject).to receive(:sleep).with(10)
147
+ subject.expects(:sleep).with(10)
145
148
 
146
- subject.send(action, mock_service_name)
149
+ subject.send(action, mock_service_name, timeout: timeout)
147
150
  end
148
151
 
149
152
  it "does not raise an error if the service makes any progress while transitioning to #{final_state_str}" do
@@ -158,7 +161,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
158
161
  { :dwCurrentState => final_state }
159
162
  )
160
163
 
161
- expect { subject.send(action, mock_service_name) }.to_not raise_error
164
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to_not raise_error
162
165
  end
163
166
 
164
167
  it "raises a Puppet::Error if it times out while waiting for the transition to #{final_state_str}" do
@@ -170,7 +173,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
170
173
  )
171
174
  end
172
175
 
173
- expect { subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
176
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
174
177
  end
175
178
  end
176
179
 
@@ -199,7 +202,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
199
202
  it "noops if the service is already in the #{final_state} state" do
200
203
  expect_successful_status_query_and_return(dwCurrentState: final_state)
201
204
 
202
- expect { subject.send(action, mock_service_name) }.to_not raise_error
205
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to_not raise_error
203
206
  end
204
207
 
205
208
  # invalid_initial_states will be empty for the #stop action
@@ -208,8 +211,8 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
208
211
  it "raises a Puppet::Error if the service's initial state is not one of #{valid_initial_states_str}" do
209
212
  invalid_initial_state = invalid_initial_states.first
210
213
  expect_successful_status_query_and_return(dwCurrentState: invalid_initial_state)
211
-
212
- expect{ subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
214
+
215
+ expect{ subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
213
216
  end
214
217
  end
215
218
 
@@ -236,7 +239,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
236
239
  # This mocks the status query to return the 'final_state' by default. Otherwise,
237
240
  # we will fail the tests in the latter parts of the code where we wait for the
238
241
  # service to finish transitioning to the 'final_state'.
239
- allow(subject::SERVICE_STATUS_PROCESS).to receive(:new).and_return(dwCurrentState: final_state)
242
+ subject::SERVICE_STATUS_PROCESS.stubs(:new).returns(dwCurrentState: final_state)
240
243
 
241
244
  # Set our service's initial state
242
245
  expect_successful_status_query_and_return(dwCurrentState: unsafe_pending_state)
@@ -262,9 +265,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
262
265
  end
263
266
 
264
267
  it "raises a Puppet::Error if the service query fails" do
265
- expect(subject).to receive(:QueryServiceStatusEx).and_return(FFI::WIN32_FALSE)
268
+ subject.expects(:QueryServiceStatusEx).in_sequence(status_checks).returns(FFI::WIN32_FALSE)
266
269
 
267
- expect { subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
270
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
268
271
  end
269
272
 
270
273
  it "waits, then queries again until it transitions to #{final_state_str}" do
@@ -274,9 +277,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
274
277
  { :dwCurrentState => final_state }
275
278
  )
276
279
 
277
- expect(subject).to receive(:sleep).with(1).twice
280
+ subject.expects(:sleep).with(1).twice
278
281
 
279
- subject.send(action, mock_service_name)
282
+ subject.send(action, mock_service_name, timeout: timeout)
280
283
  end
281
284
 
282
285
  context "when it transitions to the #{pending_state_str} state" do
@@ -294,7 +297,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
294
297
  expect_successful_status_query_and_return(dwCurrentState: initial_state)
295
298
  end
296
299
 
297
- expect { subject.send(action, mock_service_name) }.to raise_error(Puppet::Error)
300
+ expect { subject.send(action, mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
298
301
  end
299
302
  end
300
303
  end
@@ -317,14 +320,14 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
317
320
  context "when the service control manager cannot be opened" do
318
321
  let(:scm) { FFI::Pointer::NULL_HANDLE }
319
322
  it "raises a puppet error" do
320
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
323
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
321
324
  end
322
325
  end
323
326
 
324
327
  context "when the service cannot be opened" do
325
328
  let(:service) { FFI::Pointer::NULL_HANDLE }
326
329
  it "raises a puppet error" do
327
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
330
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
328
331
  end
329
332
  end
330
333
 
@@ -338,33 +341,33 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
338
341
  service::SERVICE_START_PENDING
339
342
  ]
340
343
  final_state = service::SERVICE_RUNNING
341
-
344
+
342
345
  include_examples "a service action that transitions the service state", :start, valid_initial_states, service::SERVICE_START_PENDING, final_state do
343
346
  let(:initial_state) { subject::SERVICE_STOPPED }
344
347
  let(:mock_state_transition) do
345
348
  lambda do
346
- allow(subject).to receive(:StartServiceW).and_return(1)
349
+ subject.stubs(:StartServiceW).returns(1)
347
350
  end
348
351
  end
349
352
  end
350
-
353
+
351
354
  it "raises a Puppet::Error if StartServiceW returns false" do
352
355
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_STOPPED)
353
-
354
- expect(subject).to receive(:StartServiceW).and_return(FFI::WIN32_FALSE)
355
356
 
356
- expect { subject.start(mock_service_name) }.to raise_error(Puppet::Error)
357
+ subject.expects(:StartServiceW).returns(FFI::WIN32_FALSE)
358
+
359
+ expect { subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
357
360
  end
358
-
361
+
359
362
  it "starts the service" do
360
363
  expect_successful_status_queries_and_return(
361
364
  { dwCurrentState: subject::SERVICE_STOPPED },
362
365
  { dwCurrentState: subject::SERVICE_RUNNING }
363
366
  )
364
-
365
- expect(subject).to receive(:StartServiceW).and_return(1)
366
-
367
- subject.start(mock_service_name)
367
+
368
+ subject.expects(:StartServiceW).returns(1)
369
+
370
+ subject.start(mock_service_name, timeout: timeout)
368
371
  end
369
372
  end
370
373
  end
@@ -375,14 +378,14 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
375
378
  context "when the service control manager cannot be opened" do
376
379
  let(:scm) { FFI::Pointer::NULL_HANDLE }
377
380
  it "raises a puppet error" do
378
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
381
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
379
382
  end
380
383
  end
381
384
 
382
385
  context "when the service cannot be opened" do
383
386
  let(:service) { FFI::Pointer::NULL_HANDLE }
384
387
  it "raises a puppet error" do
385
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
388
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
386
389
  end
387
390
  end
388
391
 
@@ -390,12 +393,12 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
390
393
  service = Puppet::Util::Windows::Service
391
394
  valid_initial_states = service::SERVICE_STATES.keys - [service::SERVICE_STOPPED]
392
395
  final_state = service::SERVICE_STOPPED
393
-
396
+
394
397
  include_examples "a service action that transitions the service state", :stop, valid_initial_states, service::SERVICE_STOP_PENDING, final_state do
395
398
  let(:initial_state) { subject::SERVICE_RUNNING }
396
399
  let(:mock_state_transition) do
397
400
  lambda do
398
- allow(subject).to receive(:ControlService).and_return(1)
401
+ subject.stubs(:ControlService).returns(1)
399
402
  end
400
403
  end
401
404
  end
@@ -403,20 +406,20 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
403
406
  it "raises a Puppet::Error if ControlService returns false" do
404
407
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_RUNNING)
405
408
 
406
- allow(subject).to receive(:ControlService).and_return(FFI::WIN32_FALSE)
409
+ subject.stubs(:ControlService).returns(FFI::WIN32_FALSE)
407
410
 
408
- expect { subject.stop(mock_service_name) }.to raise_error(Puppet::Error)
411
+ expect { subject.stop(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
409
412
  end
410
-
413
+
411
414
  it "stops the service" do
412
415
  expect_successful_status_queries_and_return(
413
416
  { dwCurrentState: subject::SERVICE_RUNNING },
414
417
  { dwCurrentState: subject::SERVICE_STOPPED }
415
418
  )
416
419
 
417
- expect(subject).to receive(:ControlService).and_return(1)
420
+ subject.expects(:ControlService).returns(1)
418
421
 
419
- subject.stop(mock_service_name)
422
+ subject.stop(mock_service_name, timeout: timeout)
420
423
  end
421
424
  end
422
425
  end
@@ -427,14 +430,14 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
427
430
  context "when the service control manager cannot be opened" do
428
431
  let(:scm) { FFI::Pointer::NULL_HANDLE }
429
432
  it "raises a puppet error" do
430
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
433
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
431
434
  end
432
435
  end
433
436
 
434
437
  context "when the service cannot be opened" do
435
438
  let(:service) { FFI::Pointer::NULL_HANDLE }
436
439
  it "raises a puppet error" do
437
- expect{ subject.start(mock_service_name) }.to raise_error(Puppet::Error)
440
+ expect{ subject.start(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
438
441
  end
439
442
  end
440
443
 
@@ -446,7 +449,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
446
449
  service::SERVICE_CONTINUE_PENDING
447
450
  ]
448
451
  final_state = service::SERVICE_RUNNING
449
-
452
+
450
453
  include_examples "a service action that transitions the service state", :resume, valid_initial_states, service::SERVICE_CONTINUE_PENDING, final_state do
451
454
  let(:initial_state) { service::SERVICE_PAUSED }
452
455
  let(:mock_state_transition) do
@@ -456,7 +459,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
456
459
  # performing the transition (in case it is in SERVICE_PAUSE_PENDING).
457
460
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_PAUSED)
458
461
 
459
- allow(subject).to receive(:ControlService).and_return(1)
462
+ subject.stubs(:ControlService).returns(1)
460
463
  end
461
464
  end
462
465
  end
@@ -466,11 +469,11 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
466
469
  # This mocks the status query to return the SERVICE_RUNNING state by default.
467
470
  # Otherwise, we will fail the tests in the latter parts of the code where we
468
471
  # wait for the service to finish transitioning to the 'SERVICE_RUNNING' state.
469
- allow(subject::SERVICE_STATUS_PROCESS).to receive(:new).and_return(dwCurrentState: subject::SERVICE_RUNNING)
472
+ subject::SERVICE_STATUS_PROCESS.stubs(:new).returns(dwCurrentState: subject::SERVICE_RUNNING)
470
473
 
471
474
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_PAUSE_PENDING)
472
475
 
473
- allow(subject).to receive(:ControlService).and_return(1)
476
+ subject.stubs(:ControlService).returns(1)
474
477
  end
475
478
 
476
479
  include_examples "a service action waiting on a pending transition", service::SERVICE_PAUSE_PENDING do
@@ -482,11 +485,11 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
482
485
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_PAUSED)
483
486
  expect_successful_status_query_and_return(dwCurrentState: subject::SERVICE_PAUSED)
484
487
 
485
- allow(subject).to receive(:ControlService).and_return(FFI::WIN32_FALSE)
488
+ subject.stubs(:ControlService).returns(FFI::WIN32_FALSE)
486
489
 
487
- expect { subject.resume(mock_service_name) }.to raise_error(Puppet::Error)
490
+ expect { subject.resume(mock_service_name, timeout: timeout) }.to raise_error(Puppet::Error)
488
491
  end
489
-
492
+
490
493
  it "resumes the service" do
491
494
  expect_successful_status_queries_and_return(
492
495
  { dwCurrentState: subject::SERVICE_PAUSED },
@@ -494,9 +497,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
494
497
  { dwCurrentState: subject::SERVICE_RUNNING }
495
498
  )
496
499
 
497
- expect(subject).to receive(:ControlService).and_return(1)
500
+ subject.expects(:ControlService).returns(1)
498
501
 
499
- subject.resume(mock_service_name)
502
+ subject.resume(mock_service_name, timeout: timeout)
500
503
  end
501
504
  end
502
505
  end
@@ -564,6 +567,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
564
567
  end
565
568
 
566
569
  context "when the service can be opened" do
570
+
567
571
  # We need to guard this section explicitly since rspec will always
568
572
  # construct all examples, even if it isn't going to run them.
569
573
  if Puppet.features.microsoft_windows?
@@ -580,10 +584,9 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
580
584
  end
581
585
  end
582
586
  end
583
-
584
587
  it "raises a puppet error if the service query fails" do
585
- expect(subject).to receive(:QueryServiceConfigW)
586
- expect(subject).to receive(:QueryServiceConfigW).and_return(FFI::WIN32_FALSE)
588
+ subject.expects(:QueryServiceConfigW).in_sequence(status_checks)
589
+ subject.expects(:QueryServiceConfigW).in_sequence(status_checks).returns(FFI::WIN32_FALSE)
587
590
  expect{ subject.service_start_type(mock_service_name) }.to raise_error(Puppet::Error)
588
591
  end
589
592
  end
@@ -608,7 +611,7 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
608
611
 
609
612
  context "when the service can be opened" do
610
613
  it "Raises an error on an unsuccessful change" do
611
- expect(subject).to receive(:ChangeServiceConfigW).and_return(FFI::WIN32_FALSE)
614
+ subject.expects(:ChangeServiceConfigW).returns(FFI::WIN32_FALSE)
612
615
  expect{ subject.set_startup_mode(mock_service_name, :SERVICE_DEMAND_START) }.to raise_error(Puppet::Error)
613
616
  end
614
617
  end
@@ -626,36 +629,36 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
626
629
 
627
630
  context "when the service control manager is open" do
628
631
  let(:cursor) { [ 'svc1', 'svc2', 'svc3' ] }
629
- let(:svc1name_ptr) { double() }
630
- let(:svc2name_ptr) { double() }
631
- let(:svc3name_ptr) { double() }
632
- let(:svc1displayname_ptr) { double() }
633
- let(:svc2displayname_ptr) { double() }
634
- let(:svc3displayname_ptr) { double() }
632
+ let(:svc1name_ptr) { mock() }
633
+ let(:svc2name_ptr) { mock() }
634
+ let(:svc3name_ptr) { mock() }
635
+ let(:svc1displayname_ptr) { mock() }
636
+ let(:svc2displayname_ptr) { mock() }
637
+ let(:svc3displayname_ptr) { mock() }
635
638
  let(:svc1) { { :lpServiceName => svc1name_ptr, :lpDisplayName => svc1displayname_ptr, :ServiceStatusProcess => 'foo' } }
636
639
  let(:svc2) { { :lpServiceName => svc2name_ptr, :lpDisplayName => svc2displayname_ptr, :ServiceStatusProcess => 'foo' } }
637
640
  let(:svc3) { { :lpServiceName => svc3name_ptr, :lpDisplayName => svc3displayname_ptr, :ServiceStatusProcess => 'foo' } }
638
641
 
639
642
  it "Raises an error if EnumServicesStatusExW fails" do
640
- expect(subject).to receive(:EnumServicesStatusExW)
641
- expect(subject).to receive(:EnumServicesStatusExW).and_return(FFI::WIN32_FALSE)
643
+ subject.expects(:EnumServicesStatusExW).in_sequence(pointer_sequence)
644
+ subject.expects(:EnumServicesStatusExW).in_sequence(pointer_sequence).returns(FFI::WIN32_FALSE)
642
645
  expect{ subject.services }.to raise_error(Puppet::Error)
643
646
  end
644
647
 
645
648
  it "Reads the buffer using pointer arithmetic to create a hash of service entries" do
646
649
  # the first read_dword is for reading the bytes required, let that return 3 too.
647
650
  # the second read_dword will actually read the number of services returned
648
- expect(pointer).to receive(:read_dword).twice.and_return(3)
649
- expect(FFI::Pointer).to receive(:new).with(subject::ENUM_SERVICE_STATUS_PROCESSW, pointer).and_return(cursor)
650
- expect(subject::ENUM_SERVICE_STATUS_PROCESSW).to receive(:new).with('svc1').and_return(svc1)
651
- expect(subject::ENUM_SERVICE_STATUS_PROCESSW).to receive(:new).with('svc2').and_return(svc2)
652
- expect(subject::ENUM_SERVICE_STATUS_PROCESSW).to receive(:new).with('svc3').and_return(svc3)
653
- expect(svc1name_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('svc1')
654
- expect(svc2name_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('svc2')
655
- expect(svc3name_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('svc3')
656
- expect(svc1displayname_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('service 1')
657
- expect(svc2displayname_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('service 2')
658
- expect(svc3displayname_ptr).to receive(:read_arbitrary_wide_string_up_to).and_return('service 3')
651
+ pointer.expects(:read_dword).twice.returns(3)
652
+ FFI::Pointer.expects(:new).with(subject::ENUM_SERVICE_STATUS_PROCESSW, pointer).returns(cursor)
653
+ subject::ENUM_SERVICE_STATUS_PROCESSW.expects(:new).in_sequence(pointer_sequence).with('svc1').returns(svc1)
654
+ subject::ENUM_SERVICE_STATUS_PROCESSW.expects(:new).in_sequence(pointer_sequence).with('svc2').returns(svc2)
655
+ subject::ENUM_SERVICE_STATUS_PROCESSW.expects(:new).in_sequence(pointer_sequence).with('svc3').returns(svc3)
656
+ svc1name_ptr.expects(:read_arbitrary_wide_string_up_to).returns('svc1')
657
+ svc2name_ptr.expects(:read_arbitrary_wide_string_up_to).returns('svc2')
658
+ svc3name_ptr.expects(:read_arbitrary_wide_string_up_to).returns('svc3')
659
+ svc1displayname_ptr.expects(:read_arbitrary_wide_string_up_to).returns('service 1')
660
+ svc2displayname_ptr.expects(:read_arbitrary_wide_string_up_to).returns('service 2')
661
+ svc3displayname_ptr.expects(:read_arbitrary_wide_string_up_to).returns('service 3')
659
662
  expect(subject.services).to eq({
660
663
  'svc1' => { :display_name => 'service 1', :service_status_process => 'foo' },
661
664
  'svc2' => { :display_name => 'service 2', :service_status_process => 'foo' },