puppet 5.4.0 → 5.5.0
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.
- data/Gemfile +3 -3
- data/MAINTAINERS +0 -19
- data/README.md +5 -5
- data/Rakefile +26 -0
- data/conf/auth.conf +5 -0
- data/ext/project_data.yaml +1 -0
- data/ext/regexp_nodes/regexp_nodes.rb +3 -4
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/cert.rb +3 -1
- data/lib/puppet/application/device.rb +100 -13
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/lookup.rb +12 -2
- data/lib/puppet/configurer.rb +37 -17
- data/lib/puppet/confine.rb +4 -1
- data/lib/puppet/datatypes.rb +1 -1
- data/lib/puppet/environments.rb +1 -1
- data/lib/puppet/error.rb +6 -3
- data/lib/puppet/external/dot.rb +0 -7
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/face/config.rb +92 -10
- data/lib/puppet/face/epp.rb +31 -6
- data/lib/puppet/face/facts.rb +49 -0
- data/lib/puppet/face/help.rb +33 -35
- data/lib/puppet/face/help/action.erb +1 -1
- data/lib/puppet/face/help/face.erb +1 -1
- data/lib/puppet/face/man.rb +55 -12
- data/lib/puppet/face/parser.rb +30 -3
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +10 -10
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/functions.rb +1 -3
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +6 -6
- data/lib/puppet/functions/annotate.rb +10 -10
- data/lib/puppet/functions/any.rb +6 -6
- data/lib/puppet/functions/assert_type.rb +4 -4
- data/lib/puppet/functions/binary_file.rb +14 -2
- data/lib/puppet/functions/break.rb +31 -2
- data/lib/puppet/functions/call.rb +4 -4
- data/lib/puppet/functions/contain.rb +19 -3
- data/lib/puppet/functions/convert_to.rb +6 -5
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +11 -9
- data/lib/puppet/functions/dig.rb +26 -2
- data/lib/puppet/functions/each.rb +8 -8
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +79 -0
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
- data/lib/puppet/functions/filter.rb +7 -7
- data/lib/puppet/functions/find_file.rb +15 -1
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/hiera.rb +6 -6
- data/lib/puppet/functions/hiera_array.rb +6 -6
- data/lib/puppet/functions/hiera_hash.rb +6 -6
- data/lib/puppet/functions/hiera_include.rb +8 -8
- data/lib/puppet/functions/include.rb +28 -2
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +2 -2
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +2 -2
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +2 -1
- data/lib/puppet/functions/map.rb +10 -9
- data/lib/puppet/functions/match.rb +6 -6
- data/lib/puppet/functions/new.rb +995 -2
- data/lib/puppet/functions/next.rb +1 -1
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -6
- data/lib/puppet/functions/regsubst.rb +9 -3
- data/lib/puppet/functions/require.rb +36 -2
- data/lib/puppet/functions/return.rb +1 -1
- data/lib/puppet/functions/reverse_each.rb +71 -2
- data/lib/puppet/functions/slice.rb +23 -9
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +73 -1
- data/lib/puppet/functions/strftime.rb +176 -2
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +19 -19
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +8 -4
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +6 -4
- data/lib/puppet/functions/yaml_data.rb +3 -1
- data/lib/puppet/indirector/certificate_status/file.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +1 -3
- data/lib/puppet/indirector/facts/rest.rb +21 -0
- data/lib/puppet/indirector/facts/yaml.rb +0 -4
- data/lib/puppet/indirector/rest.rb +2 -2
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module/task.rb +2 -3
- data/lib/puppet/module_tool/applications/application.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +3 -3
- data/lib/puppet/network/authconfig.rb +1 -1
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +5 -7
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
- data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
- data/lib/puppet/network/http/error.rb +3 -3
- data/lib/puppet/network/resolver.rb +1 -2
- data/lib/puppet/parser/compiler.rb +12 -5
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
- data/lib/puppet/parser/functions/new.rb +31 -46
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +11 -11
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
- data/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/lib/puppet/pops/issue_reporter.rb +18 -1
- data/lib/puppet/pops/issues.rb +6 -3
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
- data/lib/puppet/pops/loaders.rb +18 -7
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
- data/lib/puppet/pops/model/factory.rb +6 -3
- data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/lib/puppet/pops/parser/egrammar.ra +1 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -1
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/lexer_support.rb +3 -2
- data/lib/puppet/pops/parser/locator.rb +0 -2
- data/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/lib/puppet/pops/pcore.rb +17 -17
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/types/class_loader.rb +6 -3
- data/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/lib/puppet/pops/types/p_object_type.rb +3 -3
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
- data/lib/puppet/pops/types/ruby_generator.rb +3 -4
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_factory.rb +0 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +14 -7
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +6 -2
- data/lib/puppet/provider/group/groupadd.rb +3 -1
- data/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/package/pacman.rb +4 -4
- data/lib/puppet/provider/package/pip.rb +3 -3
- data/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/lib/puppet/provider/package/pkgutil.rb +2 -2
- data/lib/puppet/provider/package/portage.rb +9 -9
- data/lib/puppet/provider/package/zypper.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +6 -2
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/type.rb +11 -11
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/capability_finder.rb +5 -5
- data/lib/puppet/resource/catalog.rb +6 -3
- data/lib/puppet/resource/status.rb +9 -2
- data/lib/puppet/resource/type.rb +1 -1
- data/lib/puppet/settings.rb +31 -19
- data/lib/puppet/settings/base_setting.rb +5 -0
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +0 -2
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +18 -12
- data/lib/puppet/type.rb +9 -13
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +11 -6
- data/lib/puppet/type/exec.rb +1 -1
- data/lib/puppet/type/file.rb +4 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/k5login.rb +30 -54
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/schedule.rb +12 -12
- data/lib/puppet/type/scheduled_task.rb +2 -2
- data/lib/puppet/type/ssh_authorized_key.rb +5 -5
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +26 -5
- data/lib/puppet/util.rb +0 -4
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/json.rb +68 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/log.rb +2 -5
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -8
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +15 -18
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/file.rb +2 -2
- data/lib/puppet/util/windows/principal.rb +7 -6
- data/lib/puppet/util/windows/sid.rb +60 -7
- data/lib/puppet/util/windows/taskscheduler.rb +0 -9
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +53 -48
- data/locales/ja/puppet.po +1357 -912
- data/locales/puppet.pot +549 -466
- data/man/man5/puppet.conf.5 +103 -20
- data/man/man8/puppet-agent.8 +6 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +35 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +33 -11
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +34 -12
- data/man/man8/puppet-facts.8 +50 -1
- data/man/man8/puppet-filebucket.8 +38 -11
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +10 -4
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +15 -6
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +31 -8
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +67 -0
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +3 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/integration/application/apply_spec.rb +15 -15
- data/spec/integration/application/lookup_spec.rb +21 -0
- data/spec/integration/faces/config_spec.rb +16 -4
- data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/collection_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +17 -18
- data/spec/integration/parser/pcore_resource_spec.rb +2 -2
- data/spec/integration/parser/scope_spec.rb +2 -2
- data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/key_spec.rb +1 -1
- data/spec/integration/transaction/report_spec.rb +3 -3
- data/spec/integration/transaction_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +10 -11
- data/spec/integration/type_spec.rb +1 -2
- data/spec/integration/util/windows/adsi_spec.rb +86 -1
- data/spec/integration/util/windows/principal_spec.rb +11 -2
- data/spec/integration/util/windows/security_spec.rb +2 -2
- data/spec/lib/matchers/json.rb +4 -4
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/shared_behaviours/file_server_terminus.rb +0 -2
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/application/cert_spec.rb +21 -9
- data/spec/unit/application/device_spec.rb +96 -2
- data/spec/unit/application/face_base_spec.rb +2 -2
- data/spec/unit/application/lookup_spec.rb +0 -1
- data/spec/unit/configurer_spec.rb +14 -0
- data/spec/unit/confine_spec.rb +16 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
- data/spec/unit/datatypes_spec.rb +49 -0
- data/spec/unit/environments_spec.rb +7 -0
- data/spec/unit/face/config_spec.rb +116 -12
- data/spec/unit/face/epp_face_spec.rb +53 -2
- data/spec/unit/face/facts_spec.rb +53 -0
- data/spec/unit/face/help_spec.rb +62 -69
- data/spec/unit/face/man_spec.rb +26 -0
- data/spec/unit/face/module/list_spec.rb +0 -1
- data/spec/unit/face/parser_spec.rb +78 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -4
- data/spec/unit/file_serving/content_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
- data/spec/unit/forge_spec.rb +1 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +77 -0
- data/spec/unit/functions/epp_spec.rb +1 -1
- data/spec/unit/functions/flatten_spec.rb +31 -0
- data/spec/unit/functions/include_spec.rb +2 -2
- data/spec/unit/functions/inline_epp_spec.rb +1 -1
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
- data/spec/unit/functions/lookup_spec.rb +52 -0
- data/spec/unit/functions/shared.rb +1 -1
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +30 -32
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
- data/spec/unit/indirector/facts/rest_spec.rb +45 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +2 -2
- data/spec/unit/indirector/request_spec.rb +0 -2
- data/spec/unit/indirector/rest_spec.rb +2 -2
- data/spec/unit/indirector_spec.rb +0 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_manager_spec.rb +1 -1
- data/spec/unit/interface/action_spec.rb +1 -1
- data/spec/unit/module_spec.rb +0 -5
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
- data/spec/unit/network/formats_spec.rb +5 -13
- data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
- data/spec/unit/network/http/connection_spec.rb +1 -1
- data/spec/unit/network/http/handler_spec.rb +3 -2
- data/spec/unit/node/environment_spec.rb +1 -1
- data/spec/unit/node_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/environment_compiler_spec.rb +8 -8
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -1
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
- data/spec/unit/parser/functions/realize_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +0 -1
- data/spec/unit/parser/scope_spec.rb +3 -3
- data/spec/unit/parser/type_loader_spec.rb +1 -1
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +5 -5
- data/spec/unit/pops/issues_spec.rb +23 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
- data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
- data/spec/unit/pops/pn_spec.rb +148 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
- data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
- data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
- data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
- data/spec/unit/pops/types/string_converter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +3 -1
- data/spec/unit/property_spec.rb +2 -2
- data/spec/unit/provider/aixobject_spec.rb +1 -1
- data/spec/unit/provider/cron/crontab_spec.rb +3 -3
- data/spec/unit/provider/exec/posix_spec.rb +6 -6
- data/spec/unit/provider/group/groupadd_spec.rb +4 -4
- data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
- data/spec/unit/provider/ldap_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +5 -5
- data/spec/unit/provider/package/rpm_spec.rb +3 -4
- data/spec/unit/provider/package/yum_spec.rb +6 -2
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/init_spec.rb +2 -2
- data/spec/unit/provider/service/openrc_spec.rb +2 -2
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/smf_spec.rb +2 -0
- data/spec/unit/provider/service/systemd_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_spec.rb +7 -7
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +15 -9
- data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
- data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/resource/catalog_spec.rb +8 -3
- data/spec/unit/resource/status_spec.rb +15 -4
- data/spec/unit/resource/type_spec.rb +2 -3
- data/spec/unit/settings_spec.rb +9 -4
- data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
- data/spec/unit/ssl/certificate_request_spec.rb +1 -2
- data/spec/unit/transaction/report_spec.rb +41 -0
- data/spec/unit/transaction_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +7 -9
- data/spec/unit/type/file/selinux_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +4 -3
- data/spec/unit/type/k5login_spec.rb +79 -10
- data/spec/unit/type/mount_spec.rb +1 -1
- data/spec/unit/type/nagios_spec.rb +6 -6
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +18 -0
- data/spec/unit/type/zfs_spec.rb +1 -1
- data/spec/unit/type_spec.rb +14 -15
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/execution_spec.rb +0 -1
- data/spec/unit/util/inifile_spec.rb +35 -4
- data/spec/unit/util/log/destinations_spec.rb +2 -2
- data/spec/unit/util/log_spec.rb +6 -5
- data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
- data/spec/unit/util/plist_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +1 -7
- data/spec/unit/util/windows/adsi_spec.rb +31 -27
- data/spec/unit/util/windows/sid_spec.rb +86 -15
- data/spec/unit/util_spec.rb +2 -2
- data/spec/watchr.rb +0 -1
- data/tasks/benchmark.rake +37 -0
- data/tasks/manpages.rake +1 -1
- metadata +71 -11
- checksums.yaml +0 -7
@@ -31,22 +31,18 @@ describe 'when converting to 3.x' do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'converts the symbol :undef to the undef value' do
|
34
|
-
v = SemanticPuppet::Version.parse('1.0.0')
|
35
34
|
expect(converter.convert(:undef, {}, 'undef value')).to eql('undef value')
|
36
35
|
end
|
37
36
|
|
38
37
|
it 'converts the nil to the undef value' do
|
39
|
-
v = SemanticPuppet::Version.parse('1.0.0')
|
40
38
|
expect(converter.convert(nil, {}, 'undef value')).to eql('undef value')
|
41
39
|
end
|
42
40
|
|
43
41
|
it 'does not convert a symbol nested in an array' do
|
44
|
-
v = SemanticPuppet::Version.parse('1.0.0')
|
45
42
|
expect(converter.convert({'foo' => :undef}, {}, 'undef value')).to eql({'foo' => :undef})
|
46
43
|
end
|
47
44
|
|
48
45
|
it 'converts nil to :undef when nested in an array' do
|
49
|
-
v = SemanticPuppet::Version.parse('1.0.0')
|
50
46
|
expect(converter.convert({'foo' => nil}, {}, 'undef value')).to eql({'foo' => :undef})
|
51
47
|
end
|
52
48
|
|
@@ -191,7 +191,7 @@ describe Puppet::Pops::Model::Factory do
|
|
191
191
|
it "should handle 'just a string'" do
|
192
192
|
model = string('blah blah').model
|
193
193
|
expect(model.class).to eq(Puppet::Pops::Model::ConcatenatedString)
|
194
|
-
model.segments.size
|
194
|
+
expect(model.segments.size).to eq(1)
|
195
195
|
expect(model.segments[0].class).to eq(Puppet::Pops::Model::LiteralString)
|
196
196
|
expect(model.segments[0].value).to eq("blah blah")
|
197
197
|
end
|
@@ -199,7 +199,7 @@ describe Puppet::Pops::Model::Factory do
|
|
199
199
|
it "should handle one expression in the middle" do
|
200
200
|
model = string('blah blah', TEXT(literal(1)+literal(2)), 'blah blah').model
|
201
201
|
expect(model.class).to eq(Puppet::Pops::Model::ConcatenatedString)
|
202
|
-
model.segments.size
|
202
|
+
expect(model.segments.size).to eq(3)
|
203
203
|
expect(model.segments[0].class).to eq(Puppet::Pops::Model::LiteralString)
|
204
204
|
expect(model.segments[0].value).to eq("blah blah")
|
205
205
|
expect(model.segments[1].class).to eq(Puppet::Pops::Model::TextExpression)
|
@@ -211,7 +211,7 @@ describe Puppet::Pops::Model::Factory do
|
|
211
211
|
it "should handle one expression at the end" do
|
212
212
|
model = string('blah blah', TEXT(literal(1)+literal(2))).model
|
213
213
|
expect(model.class).to eq(Puppet::Pops::Model::ConcatenatedString)
|
214
|
-
model.segments.size
|
214
|
+
expect(model.segments.size).to eq(2)
|
215
215
|
expect(model.segments[0].class).to eq(Puppet::Pops::Model::LiteralString)
|
216
216
|
expect(model.segments[0].value).to eq("blah blah")
|
217
217
|
expect(model.segments[1].class).to eq(Puppet::Pops::Model::TextExpression)
|
@@ -221,7 +221,7 @@ describe Puppet::Pops::Model::Factory do
|
|
221
221
|
it "should handle only one expression" do
|
222
222
|
model = string(TEXT(literal(1)+literal(2))).model
|
223
223
|
expect(model.class).to eq(Puppet::Pops::Model::ConcatenatedString)
|
224
|
-
model.segments.size
|
224
|
+
expect(model.segments.size).to eq(1)
|
225
225
|
expect(model.segments[0].class).to eq(Puppet::Pops::Model::TextExpression)
|
226
226
|
expect(model.segments[0].expr.class).to eq(Puppet::Pops::Model::ArithmeticExpression)
|
227
227
|
end
|
@@ -229,7 +229,7 @@ describe Puppet::Pops::Model::Factory do
|
|
229
229
|
it "should handle several expressions" do
|
230
230
|
model = string(TEXT(literal(1)+literal(2)), TEXT(literal(1)+literal(2))).model
|
231
231
|
expect(model.class).to eq(Puppet::Pops::Model::ConcatenatedString)
|
232
|
-
model.segments.size
|
232
|
+
expect(model.segments.size).to eq(2)
|
233
233
|
expect(model.segments[0].class).to eq(Puppet::Pops::Model::TextExpression)
|
234
234
|
expect(model.segments[0].expr.class).to eq(Puppet::Pops::Model::ArithmeticExpression)
|
235
235
|
expect(model.segments[1].class).to eq(Puppet::Pops::Model::TextExpression)
|
@@ -34,24 +34,25 @@ describe "Puppet::Pops::IssueReporter" do
|
|
34
34
|
stub("positioned_#{number}", :line => number, :pos => number)
|
35
35
|
end
|
36
36
|
|
37
|
-
def diagnostic(severity, number)
|
37
|
+
def diagnostic(severity, number, args)
|
38
38
|
Puppet::Pops::Validation::Diagnostic.new(
|
39
39
|
severity,
|
40
40
|
Puppet::Pops::Issues::Issue.new(number) { "#{severity}#{number}" },
|
41
41
|
"#{severity}file",
|
42
|
-
fake_positioned(number)
|
42
|
+
fake_positioned(number),
|
43
|
+
args)
|
43
44
|
end
|
44
45
|
|
45
|
-
def warning(number)
|
46
|
-
diagnostic(:warning, number)
|
46
|
+
def warning(number, args = {})
|
47
|
+
diagnostic(:warning, number, args)
|
47
48
|
end
|
48
49
|
|
49
|
-
def deprecation(number)
|
50
|
-
diagnostic(:deprecation, number)
|
50
|
+
def deprecation(number, args = {})
|
51
|
+
diagnostic(:deprecation, number, args)
|
51
52
|
end
|
52
53
|
|
53
|
-
def error(number)
|
54
|
-
diagnostic(:error, number)
|
54
|
+
def error(number, args = {})
|
55
|
+
diagnostic(:error, number, args)
|
55
56
|
end
|
56
57
|
|
57
58
|
context "given warnings" do
|
@@ -98,6 +99,13 @@ describe "Puppet::Pops::IssueReporter" do
|
|
98
99
|
Puppet::Log.expects(:create).once.with(has_entries(:level => :warning, :message => regexp_matches(/warning1/)))
|
99
100
|
Puppet::Pops::IssueReporter.assert_and_report(acceptor, { :emit_warnings => true })
|
100
101
|
end
|
102
|
+
|
103
|
+
it "includes diagnostic arguments in logged entry" do
|
104
|
+
acceptor.accept( warning(2, :n => 'a') )
|
105
|
+
Puppet::Log.expects(:create).twice.with(has_entries(:level => :warning, :message => regexp_matches(/warning1|deprecation1/)))
|
106
|
+
Puppet::Log.expects(:create).once.with(has_entries(:level => :warning, :message => regexp_matches(/warning2/), :arguments => {:n => 'a'}))
|
107
|
+
Puppet::Pops::IssueReporter.assert_and_report(acceptor, { :emit_warnings => true })
|
108
|
+
end
|
101
109
|
end
|
102
110
|
|
103
111
|
context "given errors" do
|
@@ -175,6 +183,13 @@ describe "Puppet::Pops::IssueReporter" do
|
|
175
183
|
Puppet::Pops::IssueReporter.assert_and_report(acceptor, { })
|
176
184
|
end.to raise_error(Puppet::ParseError, /Giving up/)
|
177
185
|
end
|
186
|
+
|
187
|
+
it "includes diagnostic arguments in raised error" do
|
188
|
+
acceptor.accept( error(1, :n => 'a') )
|
189
|
+
expect do
|
190
|
+
Puppet::Pops::IssueReporter.assert_and_report(acceptor, { })
|
191
|
+
end.to raise_error(Puppet::ParseErrorWithIssue, /error1/) { |ex| expect(ex.arguments).to eq(:n => 'a')}
|
192
|
+
end
|
178
193
|
end
|
179
194
|
|
180
195
|
context "given both" do
|
@@ -194,7 +194,7 @@ describe 'loaders' do
|
|
194
194
|
|
195
195
|
def compile_and_get_notifications(code)
|
196
196
|
Puppet[:code] = code
|
197
|
-
catalog = block_given? ? compiler.compile { |
|
197
|
+
catalog = block_given? ? compiler.compile { |c| yield(compiler.topscope); c } : compiler.compile
|
198
198
|
catalog.resources.map(&:ref).select { |r| r.start_with?('Notify[') }.map { |r| r[7..-2] }
|
199
199
|
end
|
200
200
|
|
@@ -271,7 +271,7 @@ describe 'loaders' do
|
|
271
271
|
File.stubs(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).raises Errno::ENOENT
|
272
272
|
File.stubs(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).raises Errno::ENOENT
|
273
273
|
Puppet[:code] = "$case_number = #{case_number}\ninclude ::user"
|
274
|
-
expect {
|
274
|
+
expect { compiler.compile }.to raise_error(Puppet::Error, /Unknown function/)
|
275
275
|
end
|
276
276
|
end
|
277
277
|
end
|
@@ -534,6 +534,20 @@ describe 'loaders' do
|
|
534
534
|
},
|
535
535
|
'metadata.json' => sprintf(metadata_json, 'c', '')
|
536
536
|
},
|
537
|
+
'd' => {
|
538
|
+
'types' => {
|
539
|
+
'init_typeset.pp' => <<-PUPPET.unindent,
|
540
|
+
type D = TypeSet[{
|
541
|
+
pcore_version => '1.0.0',
|
542
|
+
types => {
|
543
|
+
P => Object[{}],
|
544
|
+
O => Object[{ parent => P }]
|
545
|
+
}
|
546
|
+
}]
|
547
|
+
PUPPET
|
548
|
+
},
|
549
|
+
'metadata.json' => sprintf(metadata_json, 'd', '')
|
550
|
+
}
|
537
551
|
}
|
538
552
|
}
|
539
553
|
end
|
@@ -624,6 +638,14 @@ describe 'loaders' do
|
|
624
638
|
expect(type).to be_a(Puppet::Pops::Types::PTypeAliasType)
|
625
639
|
expect(type.resolved_type).to be_a(Puppet::Pops::Types::PFloatType)
|
626
640
|
end
|
641
|
+
|
642
|
+
it 'loads an object type from a typeset that references another type defined in the same typeset' do
|
643
|
+
l = Puppet::Pops::Loaders.find_loader('d').private_loader
|
644
|
+
p = Puppet::Pops::Types::TypeParser.singleton
|
645
|
+
type = p.parse('D::O', l)
|
646
|
+
expect(type).to be_a(Puppet::Pops::Types::PObjectType)
|
647
|
+
expect(type.resolved_parent).to be_a(Puppet::Pops::Types::PObjectType)
|
648
|
+
end
|
627
649
|
end
|
628
650
|
end
|
629
651
|
|
@@ -91,7 +91,7 @@ describe 'the static loader' do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
context 'without init_runtime3 initialization' do
|
94
|
-
let(:loader) {
|
94
|
+
let(:loader) { Puppet::Pops::Loader::StaticLoader.new() }
|
95
95
|
|
96
96
|
it 'does not provide access to resource types built into puppet' do
|
97
97
|
expect(loader.load(:type, 'file')).to be_nil
|
@@ -25,6 +25,11 @@ describe 'Puppet::Pops::Lookup::Interpolation' do
|
|
25
25
|
found = sub_lookup(name, lookup_invocation, segments, found) unless segments.empty?
|
26
26
|
@interpolator.interpolate(found, lookup_invocation, true)
|
27
27
|
end
|
28
|
+
|
29
|
+
# ignore requests for lookup options when testing interpolation
|
30
|
+
def lookup_lookup_options(_, _)
|
31
|
+
nil
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
30
35
|
let(:interpolator) { Class.new { include Lookup::Interpolation }.new }
|
@@ -119,6 +119,62 @@ describe 'The lookup API' do
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
|
+
context 'when hiera YAML data is corrupt' do
|
123
|
+
let(:mod_content) do
|
124
|
+
{
|
125
|
+
'hiera.yaml' => 'version: 5',
|
126
|
+
'data' => {
|
127
|
+
'common.yaml' => <<-YAML.unindent
|
128
|
+
---
|
129
|
+
#mod::classes:
|
130
|
+
- cls1
|
131
|
+
- cls2
|
132
|
+
|
133
|
+
mod::somevar: 1
|
134
|
+
YAML
|
135
|
+
},
|
136
|
+
}
|
137
|
+
end
|
138
|
+
let(:msg) { /file does not contain a valid yaml hash/ }
|
139
|
+
|
140
|
+
%w(off warning).each do |strict|
|
141
|
+
it "logs a warning when --strict is '#{strict}'" do
|
142
|
+
Puppet[:strict] = strict
|
143
|
+
logs = []
|
144
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
145
|
+
expect(Lookup.lookup('mod::somevar', nil, nil, true, nil, invocation)).to be_nil
|
146
|
+
end
|
147
|
+
expect(logs.map(&:message)).to contain_exactly(msg)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'fails when --strict is "error"' do
|
152
|
+
Puppet[:strict] = 'error'
|
153
|
+
expect { Lookup.lookup('mod::somevar', nil, nil, true, nil, invocation) }.to raise_error(msg)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context 'when hiera YAML data is empty' do
|
158
|
+
let(:mod_content) do
|
159
|
+
{
|
160
|
+
'hiera.yaml' => 'version: 5',
|
161
|
+
'data' => { 'common.yaml' => '' },
|
162
|
+
}
|
163
|
+
end
|
164
|
+
let(:msg) { /file does not contain a valid yaml hash/ }
|
165
|
+
|
166
|
+
%w(off warning error).each do |strict|
|
167
|
+
it "logs a warning when --strict is '#{strict}'" do
|
168
|
+
Puppet[:strict] = strict
|
169
|
+
logs = []
|
170
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
171
|
+
expect(Lookup.lookup('mod::somevar', nil, nil, true, nil, invocation)).to be_nil
|
172
|
+
end
|
173
|
+
expect(logs.map(&:message)).to contain_exactly(msg)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
122
178
|
context 'when doing lookup' do
|
123
179
|
it 'finds data in global layer' do
|
124
180
|
expect(Lookup.lookup('a', nil, nil, false, nil, invocation)).to eql('a (from global)')
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'puppet/pops'
|
4
|
+
require 'puppet/pops/pn'
|
5
|
+
|
6
|
+
module Puppet::Pops
|
7
|
+
module Model
|
8
|
+
|
9
|
+
describe 'Puppet::Pops::Model::PNTransformer' do
|
10
|
+
def call(name, *elements)
|
11
|
+
PN::Call.new(name, *elements.map { |e| lit(e) })
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'transforms the expression' do
|
15
|
+
it '"\'hello\'" into the corresponding literal' do
|
16
|
+
x = Factory.literal('hello')
|
17
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(lit('hello'))
|
18
|
+
end
|
19
|
+
|
20
|
+
it '"32" into into the corresponding literal' do
|
21
|
+
x = Factory.literal(32)
|
22
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(lit(32))
|
23
|
+
end
|
24
|
+
|
25
|
+
it '"true" into into the corresponding literal' do
|
26
|
+
x = Factory.literal(true)
|
27
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(lit(true))
|
28
|
+
end
|
29
|
+
|
30
|
+
it '"10 + 20" into (+ 10 20)' do
|
31
|
+
x = Factory.literal(10) + Factory.literal(20)
|
32
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(call('+', 10, 20))
|
33
|
+
end
|
34
|
+
|
35
|
+
it '"[10, 20]" into into (array 10 20)' do
|
36
|
+
x = Factory.literal([10, 20])
|
37
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(call('array', 10, 20))
|
38
|
+
end
|
39
|
+
|
40
|
+
it '"{a => 1, b => 2}" into into (hash (=> ("a" 1)) (=> ("b" 2)))' do
|
41
|
+
x = Factory.HASH([Factory.KEY_ENTRY(Factory.literal('a'), Factory.literal(1)), Factory.KEY_ENTRY(Factory.literal('b'), Factory.literal(2))])
|
42
|
+
expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(
|
43
|
+
call('hash', call('=>', 'a', 1), call('=>', 'b', 2)))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def lit(value)
|
48
|
+
value.is_a?(PN) ? value : PN::Literal.new(value)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
@@ -7,13 +7,13 @@ module EgrammarLexer2Spec
|
|
7
7
|
def tokens_scanned_from(s)
|
8
8
|
lexer = Puppet::Pops::Parser::Lexer2.new
|
9
9
|
lexer.string = s
|
10
|
-
|
10
|
+
lexer.fullscan[0..-2]
|
11
11
|
end
|
12
12
|
|
13
13
|
def epp_tokens_scanned_from(s)
|
14
14
|
lexer = Puppet::Pops::Parser::Lexer2.new
|
15
15
|
lexer.string = s
|
16
|
-
|
16
|
+
lexer.fullscan_epp[0..-2]
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -540,6 +540,15 @@ describe 'Lexer2' do
|
|
540
540
|
expect_issue(code, Puppet::Pops::Issues::HEREDOC_WITHOUT_TEXT)
|
541
541
|
end
|
542
542
|
|
543
|
+
it 'detects and reports HEREDOC_EMPTY_ENDTAG' do
|
544
|
+
code = <<-CODE
|
545
|
+
@("")
|
546
|
+
Text
|
547
|
+
|-END
|
548
|
+
CODE
|
549
|
+
expect_issue(code, Puppet::Pops::Issues::HEREDOC_EMPTY_ENDTAG)
|
550
|
+
end
|
551
|
+
|
543
552
|
it 'detects and reports HEREDOC_MULTIPLE_AT_ESCAPES' do
|
544
553
|
code = <<-CODE
|
545
554
|
@(END:syntax/tst)
|
@@ -867,8 +876,8 @@ describe Puppet::Pops::Parser::Lexer2 do
|
|
867
876
|
# Section 3.2.1.3 of Ruby spec guarantees that \u strings are encoded as UTF-8
|
868
877
|
# Runes (may show up as garbage if font is not available): ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ
|
869
878
|
let (:rune_utf8) {
|
870
|
-
"\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2"
|
871
|
-
"\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA"
|
879
|
+
"\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2" +
|
880
|
+
"\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA" +
|
872
881
|
"\u16B3\u16A2\u16D7"
|
873
882
|
}
|
874
883
|
|
@@ -893,7 +902,7 @@ describe Puppet::Pops::Parser::Lexer2 do
|
|
893
902
|
manifest = file_containing('manifest.pp', manifest_code)
|
894
903
|
|
895
904
|
expect {
|
896
|
-
|
905
|
+
described_class.new.lex_file(manifest)
|
897
906
|
}.to raise_error(Puppet::ParseErrorWithIssue,
|
898
907
|
'Illegal UTF-8 Byte Order mark at beginning of input: [EF BB BF] - remove these from the puppet source')
|
899
908
|
end
|
@@ -234,7 +234,7 @@ describe "egrammar parsing basic expressions" do
|
|
234
234
|
|
235
235
|
context 'When parsing type aliases' do
|
236
236
|
it 'type A = B' do
|
237
|
-
expect(dump(parse('type A = B'))).to eq('(type-alias A
|
237
|
+
expect(dump(parse('type A = B'))).to eq('(type-alias A B)')
|
238
238
|
end
|
239
239
|
|
240
240
|
it 'type A = B[]' do
|
@@ -246,19 +246,19 @@ describe "egrammar parsing basic expressions" do
|
|
246
246
|
end
|
247
247
|
|
248
248
|
it 'type A = B[C]' do
|
249
|
-
expect(dump(parse('type A = B[C]'))).to eq('(type-alias A (slice
|
249
|
+
expect(dump(parse('type A = B[C]'))).to eq('(type-alias A (slice B C))')
|
250
250
|
end
|
251
251
|
|
252
252
|
it 'type A = B[C,]' do
|
253
|
-
expect(dump(parse('type A = B[C,]'))).to eq('(type-alias A (slice
|
253
|
+
expect(dump(parse('type A = B[C,]'))).to eq('(type-alias A (slice B C))')
|
254
254
|
end
|
255
255
|
|
256
256
|
it 'type A = B[C,D]' do
|
257
|
-
expect(dump(parse('type A = B[C,D]'))).to eq('(type-alias A (slice
|
257
|
+
expect(dump(parse('type A = B[C,D]'))).to eq('(type-alias A (slice B (C D)))')
|
258
258
|
end
|
259
259
|
|
260
260
|
it 'type A = B[C,D,]' do
|
261
|
-
expect(dump(parse('type A = B[C,D,]'))).to eq('(type-alias A (slice
|
261
|
+
expect(dump(parse('type A = B[C,D,]'))).to eq('(type-alias A (slice B (C D)))')
|
262
262
|
end
|
263
263
|
end
|
264
264
|
|
@@ -339,11 +339,11 @@ describe "egrammar parsing basic expressions" do
|
|
339
339
|
|
340
340
|
context "When parsing string interpolation" do
|
341
341
|
it "should interpolate a bare word as a variable name, \"${var}\"" do
|
342
|
-
expect(dump(parse("$a = \"$var\""))).to eq("(= $a (cat
|
342
|
+
expect(dump(parse("$a = \"$var\""))).to eq("(= $a (cat (str $var)))")
|
343
343
|
end
|
344
344
|
|
345
345
|
it "should interpolate a variable in a text expression, \"${$var}\"" do
|
346
|
-
expect(dump(parse("$a = \"${$var}\""))).to eq("(= $a (cat
|
346
|
+
expect(dump(parse("$a = \"${$var}\""))).to eq("(= $a (cat (str $var)))")
|
347
347
|
end
|
348
348
|
|
349
349
|
it "should interpolate a variable, \"yo${var}yo\"" do
|
@@ -372,11 +372,11 @@ describe "egrammar parsing basic expressions" do
|
|
372
372
|
end
|
373
373
|
|
374
374
|
it "should interpolate interpolated expressions with a variable, \"yo${\"$var\"}yo\"" do
|
375
|
-
expect(dump(parse("$a = \"yo${\"$var\"}yo\""))).to eq("(= $a (cat 'yo' (str (cat
|
375
|
+
expect(dump(parse("$a = \"yo${\"$var\"}yo\""))).to eq("(= $a (cat 'yo' (str (cat (str $var))) 'yo'))")
|
376
376
|
end
|
377
377
|
|
378
378
|
it "should interpolate interpolated expressions with an expression, \"yo${\"${$var+2}\"}yo\"" do
|
379
|
-
expect(dump(parse("$a = \"yo${\"${$var+2}\"}yo\""))).to eq("(= $a (cat 'yo' (str (cat
|
379
|
+
expect(dump(parse("$a = \"yo${\"${$var+2}\"}yo\""))).to eq("(= $a (cat 'yo' (str (cat (str (+ $var 2)))) 'yo'))")
|
380
380
|
end
|
381
381
|
end
|
382
382
|
end
|
@@ -138,7 +138,7 @@ describe "egrammar parsing function calls" do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
it 'notice Hash.assert_type(a => 42)' do
|
141
|
-
expect(dump(parse('notice Hash.assert_type(a => 42)'))).to eq('(invoke notice (call-method (.
|
141
|
+
expect(dump(parse('notice Hash.assert_type(a => 42)'))).to eq('(invoke notice (call-method (. Hash assert_type) ({} (a 42))))')
|
142
142
|
end
|
143
143
|
|
144
144
|
it "notice 42.type(detailed)" do
|