puppet 6.19.1 → 6.23.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.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +3 -1
- data/Gemfile.lock +51 -40
- data/ext/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +2 -2
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +12 -4
- data/lib/puppet/application/apply.rb +4 -2
- data/lib/puppet/application/device.rb +2 -0
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/resource.rb +2 -1
- data/lib/puppet/application/script.rb +2 -0
- data/lib/puppet/application/ssl.rb +11 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +28 -18
- data/lib/puppet/configurer/downloader.rb +2 -1
- data/lib/puppet/defaults.rb +51 -23
- data/lib/puppet/environments.rb +54 -55
- data/lib/puppet/face/config.rb +10 -0
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +158 -0
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_serving/fileset.rb +14 -2
- data/lib/puppet/file_system/memory_file.rb +8 -1
- data/lib/puppet/file_system/windows.rb +2 -0
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +13 -5
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +12 -4
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/tree_each.rb +7 -9
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/http/resolver/server_list.rb +15 -4
- data/lib/puppet/http/service/compiler.rb +69 -0
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -0
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +3 -58
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/formats.rb +69 -1
- data/lib/puppet/network/http/factory.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +70 -17
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +34 -2
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +11 -6
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/service/systemd.rb +14 -4
- data/lib/puppet/provider/service/windows.rb +38 -0
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +25 -12
- data/lib/puppet/provider/user/useradd.rb +62 -8
- data/lib/puppet/reference/configuration.rb +7 -6
- data/lib/puppet/settings.rb +33 -28
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/type/file.rb +19 -1
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/service.rb +18 -38
- data/lib/puppet/type/tidy.rb +21 -2
- data/lib/puppet/type/user.rb +38 -20
- data/lib/puppet/util/autoload.rb +1 -8
- data/lib/puppet/util/fact_dif.rb +81 -0
- data/lib/puppet/util/monkey_patches.rb +7 -0
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/selinux.rb +30 -4
- data/lib/puppet/util/windows/adsi.rb +46 -0
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +9 -2
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/sid.rb +4 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +372 -288
- data/man/man5/puppet.conf.5 +282 -254
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +90 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- 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 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +4 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +5 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
- data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/ca.pem +57 -35
- data/spec/fixtures/ssl/crl.pem +28 -18
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +33 -24
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +108 -58
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
- data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
- data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
- data/spec/fixtures/ssl/intermediate.pem +57 -36
- data/spec/fixtures/ssl/pluto-key.pem +107 -57
- data/spec/fixtures/ssl/pluto.pem +52 -30
- data/spec/fixtures/ssl/request-key.pem +107 -57
- data/spec/fixtures/ssl/request.pem +47 -26
- data/spec/fixtures/ssl/revoked-key.pem +107 -57
- data/spec/fixtures/ssl/revoked.pem +52 -30
- data/spec/fixtures/ssl/signed-key.pem +107 -57
- data/spec/fixtures/ssl/signed.pem +52 -30
- data/spec/fixtures/ssl/tampered-cert.pem +52 -30
- data/spec/fixtures/ssl/tampered-csr.pem +47 -26
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
- data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-ca.pem +55 -33
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +160 -3
- data/spec/integration/application/apply_spec.rb +19 -0
- data/spec/integration/application/plugin_spec.rb +1 -1
- data/spec/integration/application/resource_spec.rb +30 -0
- data/spec/integration/defaults_spec.rb +0 -7
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/http/client_spec.rb +12 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/util/windows/adsi_spec.rb +21 -1
- data/spec/integration/util/windows/principal_spec.rb +21 -0
- data/spec/integration/util/windows/registry_spec.rb +6 -10
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/spec_helper.rb +12 -5
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +7 -3
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/facts_spec.rb +482 -3
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/ssl_spec.rb +23 -0
- data/spec/unit/application_spec.rb +51 -9
- data/spec/unit/configurer/downloader_spec.rb +6 -0
- data/spec/unit/configurer_spec.rb +23 -0
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +8 -2
- data/spec/unit/defaults_spec.rb +36 -1
- data/spec/unit/environments_spec.rb +221 -68
- data/spec/unit/face/config_spec.rb +27 -32
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +0 -11
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +60 -0
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_system_spec.rb +9 -0
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/gettext/config_spec.rb +12 -0
- data/spec/unit/http/service/compiler_spec.rb +172 -0
- data/spec/unit/http/service_spec.rb +1 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +95 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/formats_spec.rb +41 -0
- data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
- data/spec/unit/network/http/factory_spec.rb +19 -0
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +28 -23
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/service/init_spec.rb +1 -0
- data/spec/unit/provider/service/openwrt_spec.rb +3 -1
- data/spec/unit/provider/service/systemd_spec.rb +53 -8
- data/spec/unit/provider/service/windows_spec.rb +202 -0
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +71 -3
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -10
- data/spec/unit/settings_spec.rb +419 -242
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
- data/spec/unit/ssl/state_machine_spec.rb +19 -5
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -9
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction_spec.rb +18 -11
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +3 -5
- data/spec/unit/type/file_spec.rb +0 -6
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +60 -189
- data/spec/unit/type/tidy_spec.rb +17 -8
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +163 -68
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util/windows/sid_spec.rb +6 -0
- data/spec/unit/util_spec.rb +13 -6
- data/tasks/generate_cert_fixtures.rake +2 -2
- metadata +25 -14
- data/spec/integration/application/config_spec.rb +0 -74
- data/spec/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/module_spec.rb +0 -3
@@ -158,6 +158,12 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
|
|
158
158
|
# this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
|
159
159
|
expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
|
160
160
|
end
|
161
|
+
|
162
|
+
it "should print a debug message on failures" do
|
163
|
+
expect(Puppet).to receive(:debug).with(/Could not retrieve raw SID bytes from 'NonExistingUser'/)
|
164
|
+
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
165
|
+
subject.name_to_principal('NonExistingUser')
|
166
|
+
end
|
161
167
|
end
|
162
168
|
|
163
169
|
context "#ads_to_principal" do
|
data/spec/unit/util_spec.rb
CHANGED
@@ -315,7 +315,7 @@ describe Puppet::Util do
|
|
315
315
|
|
316
316
|
describe "when using platform :posix" do
|
317
317
|
before :each do
|
318
|
-
allow(Puppet.features).to receive(:posix).and_return(true)
|
318
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
319
319
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
320
320
|
end
|
321
321
|
|
@@ -328,7 +328,7 @@ describe Puppet::Util do
|
|
328
328
|
|
329
329
|
describe "when using platform :windows" do
|
330
330
|
before :each do
|
331
|
-
allow(Puppet.features).to receive(:posix).and_return(false)
|
331
|
+
allow(Puppet.features).to receive(:posix?).and_return(false)
|
332
332
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
333
333
|
end
|
334
334
|
|
@@ -462,7 +462,7 @@ describe Puppet::Util do
|
|
462
462
|
|
463
463
|
describe "when using platform :posix" do
|
464
464
|
before :each do
|
465
|
-
allow(Puppet.features).to receive(:posix).and_return(true)
|
465
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
466
466
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
467
467
|
end
|
468
468
|
|
@@ -501,7 +501,7 @@ describe Puppet::Util do
|
|
501
501
|
|
502
502
|
describe "when using platform :windows" do
|
503
503
|
before :each do
|
504
|
-
allow(Puppet.features).to receive(:posix).and_return(false)
|
504
|
+
allow(Puppet.features).to receive(:posix?).and_return(false)
|
505
505
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
506
506
|
end
|
507
507
|
|
@@ -539,7 +539,6 @@ describe Puppet::Util do
|
|
539
539
|
expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
|
540
540
|
end
|
541
541
|
|
542
|
-
|
543
542
|
[
|
544
543
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
|
545
544
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
|
@@ -589,7 +588,15 @@ describe Puppet::Util do
|
|
589
588
|
end
|
590
589
|
end
|
591
590
|
|
592
|
-
describe "safe_posix_fork" do
|
591
|
+
describe "safe_posix_fork on Windows and JRuby", if: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
592
|
+
it "raises not implemented error" do
|
593
|
+
expect {
|
594
|
+
Puppet::Util.safe_posix_fork
|
595
|
+
}.to raise_error(NotImplementedError, /fork/)
|
596
|
+
end
|
597
|
+
end
|
598
|
+
|
599
|
+
describe "safe_posix_fork", unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
593
600
|
let(:pid) { 5501 }
|
594
601
|
|
595
602
|
before :each do
|
@@ -173,12 +173,12 @@ task(:gen_cert_fixtures) do
|
|
173
173
|
|
174
174
|
# Create a request, but replace its public key after it's signed
|
175
175
|
tampered_csr = ca.create_request('signed')[:csr]
|
176
|
-
tampered_csr.public_key = OpenSSL::PKey::RSA.new(
|
176
|
+
tampered_csr.public_key = OpenSSL::PKey::RSA.new(2048).public_key
|
177
177
|
save(dir, 'tampered-csr.pem', tampered_csr)
|
178
178
|
|
179
179
|
# Create a cert issued from the real intermediate CA, but replace its
|
180
180
|
# public key
|
181
181
|
tampered_cert = ca.create_cert('signed', inter[:cert], inter[:private_key])[:cert]
|
182
|
-
tampered_cert.public_key = OpenSSL::PKey::RSA.new(
|
182
|
+
tampered_cert.public_key = OpenSSL::PKey::RSA.new(2048).public_key
|
183
183
|
save(dir, 'tampered-cert.pem', tampered_cert)
|
184
184
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -422,6 +422,9 @@ files:
|
|
422
422
|
- lib/puppet/feature/ssh.rb
|
423
423
|
- lib/puppet/feature/telnet.rb
|
424
424
|
- lib/puppet/feature/zlib.rb
|
425
|
+
- lib/puppet/ffi/posix.rb
|
426
|
+
- lib/puppet/ffi/posix/constants.rb
|
427
|
+
- lib/puppet/ffi/posix/functions.rb
|
425
428
|
- lib/puppet/file_bucket.rb
|
426
429
|
- lib/puppet/file_bucket/dipper.rb
|
427
430
|
- lib/puppet/file_bucket/file.rb
|
@@ -596,7 +599,9 @@ files:
|
|
596
599
|
- lib/puppet/indirector/errors.rb
|
597
600
|
- lib/puppet/indirector/exec.rb
|
598
601
|
- lib/puppet/indirector/face.rb
|
602
|
+
- lib/puppet/indirector/fact_search.rb
|
599
603
|
- lib/puppet/indirector/facts/facter.rb
|
604
|
+
- lib/puppet/indirector/facts/json.rb
|
600
605
|
- lib/puppet/indirector/facts/memory.rb
|
601
606
|
- lib/puppet/indirector/facts/network_device.rb
|
602
607
|
- lib/puppet/indirector/facts/rest.rb
|
@@ -627,6 +632,7 @@ files:
|
|
627
632
|
- lib/puppet/indirector/memory.rb
|
628
633
|
- lib/puppet/indirector/msgpack.rb
|
629
634
|
- lib/puppet/indirector/node/exec.rb
|
635
|
+
- lib/puppet/indirector/node/json.rb
|
630
636
|
- lib/puppet/indirector/node/memory.rb
|
631
637
|
- lib/puppet/indirector/node/msgpack.rb
|
632
638
|
- lib/puppet/indirector/node/plain.rb
|
@@ -635,6 +641,7 @@ files:
|
|
635
641
|
- lib/puppet/indirector/node/yaml.rb
|
636
642
|
- lib/puppet/indirector/none.rb
|
637
643
|
- lib/puppet/indirector/plain.rb
|
644
|
+
- lib/puppet/indirector/report/json.rb
|
638
645
|
- lib/puppet/indirector/report/msgpack.rb
|
639
646
|
- lib/puppet/indirector/report/processor.rb
|
640
647
|
- lib/puppet/indirector/report/rest.rb
|
@@ -1139,6 +1146,7 @@ files:
|
|
1139
1146
|
- lib/puppet/scheduler/splay_job.rb
|
1140
1147
|
- lib/puppet/scheduler/timer.rb
|
1141
1148
|
- lib/puppet/settings.rb
|
1149
|
+
- lib/puppet/settings/alias_setting.rb
|
1142
1150
|
- lib/puppet/settings/array_setting.rb
|
1143
1151
|
- lib/puppet/settings/autosign_setting.rb
|
1144
1152
|
- lib/puppet/settings/base_setting.rb
|
@@ -1247,6 +1255,7 @@ files:
|
|
1247
1255
|
- lib/puppet/util/errors.rb
|
1248
1256
|
- lib/puppet/util/execution.rb
|
1249
1257
|
- lib/puppet/util/execution_stub.rb
|
1258
|
+
- lib/puppet/util/fact_dif.rb
|
1250
1259
|
- lib/puppet/util/feature.rb
|
1251
1260
|
- lib/puppet/util/file_watcher.rb
|
1252
1261
|
- lib/puppet/util/fileparsing.rb
|
@@ -1401,6 +1410,7 @@ files:
|
|
1401
1410
|
- man/man8/puppet.8
|
1402
1411
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
1403
1412
|
- spec/fixtures/hiera.yaml
|
1413
|
+
- spec/fixtures/integration/application/agent/cached_deferred_catalog.json
|
1404
1414
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
|
1405
1415
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
|
1406
1416
|
- spec/fixtures/integration/node/environment/sitedir/00_a.pp
|
@@ -1777,6 +1787,7 @@ files:
|
|
1777
1787
|
- spec/fixtures/unit/provider/service/smf/svcs_fmri.out
|
1778
1788
|
- spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
|
1779
1789
|
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services
|
1790
|
+
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
|
1780
1791
|
- spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
|
1781
1792
|
- spec/fixtures/unit/reports/tagmail/tagmail_email.conf
|
1782
1793
|
- spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
|
@@ -1800,13 +1811,13 @@ files:
|
|
1800
1811
|
- spec/integration/agent/logging_spec.rb
|
1801
1812
|
- spec/integration/application/agent_spec.rb
|
1802
1813
|
- spec/integration/application/apply_spec.rb
|
1803
|
-
- spec/integration/application/config_spec.rb
|
1804
1814
|
- spec/integration/application/doc_spec.rb
|
1805
1815
|
- spec/integration/application/filebucket_spec.rb
|
1806
1816
|
- spec/integration/application/help_spec.rb
|
1807
1817
|
- spec/integration/application/lookup_spec.rb
|
1808
1818
|
- spec/integration/application/module_spec.rb
|
1809
1819
|
- spec/integration/application/plugin_spec.rb
|
1820
|
+
- spec/integration/application/resource_spec.rb
|
1810
1821
|
- spec/integration/configurer_spec.rb
|
1811
1822
|
- spec/integration/data_binding_spec.rb
|
1812
1823
|
- spec/integration/defaults_spec.rb
|
@@ -1821,7 +1832,6 @@ files:
|
|
1821
1832
|
- spec/integration/indirector/facts/facter_spec.rb
|
1822
1833
|
- spec/integration/indirector/file_content/file_server_spec.rb
|
1823
1834
|
- spec/integration/indirector/file_metadata/file_server_spec.rb
|
1824
|
-
- spec/integration/indirector/report/yaml.rb
|
1825
1835
|
- spec/integration/network/authconfig_spec.rb
|
1826
1836
|
- spec/integration/network/formats_spec.rb
|
1827
1837
|
- spec/integration/network/http/api/indirected_routes_spec.rb
|
@@ -1867,10 +1877,8 @@ files:
|
|
1867
1877
|
- spec/integration/util/windows/user_spec.rb
|
1868
1878
|
- spec/integration/util_spec.rb
|
1869
1879
|
- spec/lib/matchers/containment_matchers.rb
|
1870
|
-
- spec/lib/matchers/include.rb
|
1871
1880
|
- spec/lib/matchers/include_in_order.rb
|
1872
1881
|
- spec/lib/matchers/include_in_order_spec.rb
|
1873
|
-
- spec/lib/matchers/include_spec.rb
|
1874
1882
|
- spec/lib/matchers/json.rb
|
1875
1883
|
- spec/lib/matchers/match_tokens2.rb
|
1876
1884
|
- spec/lib/matchers/relationship_graph_matchers.rb
|
@@ -1967,7 +1975,6 @@ files:
|
|
1967
1975
|
- spec/unit/environments_spec.rb
|
1968
1976
|
- spec/unit/etc_spec.rb
|
1969
1977
|
- spec/unit/external/pson_spec.rb
|
1970
|
-
- spec/unit/face/catalog_spec.rb
|
1971
1978
|
- spec/unit/face/config_spec.rb
|
1972
1979
|
- spec/unit/face/epp_face_spec.rb
|
1973
1980
|
- spec/unit/face/facts_spec.rb
|
@@ -1979,7 +1986,6 @@ files:
|
|
1979
1986
|
- spec/unit/face/module/search_spec.rb
|
1980
1987
|
- spec/unit/face/module/uninstall_spec.rb
|
1981
1988
|
- spec/unit/face/module/upgrade_spec.rb
|
1982
|
-
- spec/unit/face/module_spec.rb
|
1983
1989
|
- spec/unit/face/node_spec.rb
|
1984
1990
|
- spec/unit/face/parser_spec.rb
|
1985
1991
|
- spec/unit/face/plugin_spec.rb
|
@@ -2124,6 +2130,7 @@ files:
|
|
2124
2130
|
- spec/unit/indirector/exec_spec.rb
|
2125
2131
|
- spec/unit/indirector/face_spec.rb
|
2126
2132
|
- spec/unit/indirector/facts/facter_spec.rb
|
2133
|
+
- spec/unit/indirector/facts/json_spec.rb
|
2127
2134
|
- spec/unit/indirector/facts/network_device_spec.rb
|
2128
2135
|
- spec/unit/indirector/facts/rest_spec.rb
|
2129
2136
|
- spec/unit/indirector/facts/store_configs_spec.rb
|
@@ -2148,6 +2155,7 @@ files:
|
|
2148
2155
|
- spec/unit/indirector/memory_spec.rb
|
2149
2156
|
- spec/unit/indirector/msgpack_spec.rb
|
2150
2157
|
- spec/unit/indirector/node/exec_spec.rb
|
2158
|
+
- spec/unit/indirector/node/json_spec.rb
|
2151
2159
|
- spec/unit/indirector/node/memory_spec.rb
|
2152
2160
|
- spec/unit/indirector/node/msgpack_spec.rb
|
2153
2161
|
- spec/unit/indirector/node/plain_spec.rb
|
@@ -2156,6 +2164,7 @@ files:
|
|
2156
2164
|
- spec/unit/indirector/node/yaml_spec.rb
|
2157
2165
|
- spec/unit/indirector/none_spec.rb
|
2158
2166
|
- spec/unit/indirector/plain_spec.rb
|
2167
|
+
- spec/unit/indirector/report/json_spec.rb
|
2159
2168
|
- spec/unit/indirector/report/msgpack_spec.rb
|
2160
2169
|
- spec/unit/indirector/report/processor_spec.rb
|
2161
2170
|
- spec/unit/indirector/report/rest_spec.rb
|
@@ -2280,6 +2289,7 @@ files:
|
|
2280
2289
|
- spec/unit/pops/evaluator/collections_ops_spec.rb
|
2281
2290
|
- spec/unit/pops/evaluator/comparison_ops_spec.rb
|
2282
2291
|
- spec/unit/pops/evaluator/conditionals_spec.rb
|
2292
|
+
- spec/unit/pops/evaluator/deferred_resolver_spec.rb
|
2283
2293
|
- spec/unit/pops/evaluator/evaluating_parser_spec.rb
|
2284
2294
|
- spec/unit/pops/evaluator/evaluator_rspec_helper.rb
|
2285
2295
|
- spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
|
@@ -2670,6 +2680,7 @@ summary: Puppet, an automated configuration management tool
|
|
2670
2680
|
test_files:
|
2671
2681
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
2672
2682
|
- spec/fixtures/hiera.yaml
|
2683
|
+
- spec/fixtures/integration/application/agent/cached_deferred_catalog.json
|
2673
2684
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
|
2674
2685
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
|
2675
2686
|
- spec/fixtures/integration/node/environment/sitedir/00_a.pp
|
@@ -3046,6 +3057,7 @@ test_files:
|
|
3046
3057
|
- spec/fixtures/unit/provider/service/smf/svcs_fmri.out
|
3047
3058
|
- spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
|
3048
3059
|
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services
|
3060
|
+
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
|
3049
3061
|
- spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
|
3050
3062
|
- spec/fixtures/unit/reports/tagmail/tagmail_email.conf
|
3051
3063
|
- spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
|
@@ -3069,13 +3081,13 @@ test_files:
|
|
3069
3081
|
- spec/integration/agent/logging_spec.rb
|
3070
3082
|
- spec/integration/application/agent_spec.rb
|
3071
3083
|
- spec/integration/application/apply_spec.rb
|
3072
|
-
- spec/integration/application/config_spec.rb
|
3073
3084
|
- spec/integration/application/doc_spec.rb
|
3074
3085
|
- spec/integration/application/filebucket_spec.rb
|
3075
3086
|
- spec/integration/application/help_spec.rb
|
3076
3087
|
- spec/integration/application/lookup_spec.rb
|
3077
3088
|
- spec/integration/application/module_spec.rb
|
3078
3089
|
- spec/integration/application/plugin_spec.rb
|
3090
|
+
- spec/integration/application/resource_spec.rb
|
3079
3091
|
- spec/integration/configurer_spec.rb
|
3080
3092
|
- spec/integration/data_binding_spec.rb
|
3081
3093
|
- spec/integration/defaults_spec.rb
|
@@ -3090,7 +3102,6 @@ test_files:
|
|
3090
3102
|
- spec/integration/indirector/facts/facter_spec.rb
|
3091
3103
|
- spec/integration/indirector/file_content/file_server_spec.rb
|
3092
3104
|
- spec/integration/indirector/file_metadata/file_server_spec.rb
|
3093
|
-
- spec/integration/indirector/report/yaml.rb
|
3094
3105
|
- spec/integration/network/authconfig_spec.rb
|
3095
3106
|
- spec/integration/network/formats_spec.rb
|
3096
3107
|
- spec/integration/network/http/api/indirected_routes_spec.rb
|
@@ -3136,10 +3147,8 @@ test_files:
|
|
3136
3147
|
- spec/integration/util/windows/user_spec.rb
|
3137
3148
|
- spec/integration/util_spec.rb
|
3138
3149
|
- spec/lib/matchers/containment_matchers.rb
|
3139
|
-
- spec/lib/matchers/include.rb
|
3140
3150
|
- spec/lib/matchers/include_in_order.rb
|
3141
3151
|
- spec/lib/matchers/include_in_order_spec.rb
|
3142
|
-
- spec/lib/matchers/include_spec.rb
|
3143
3152
|
- spec/lib/matchers/json.rb
|
3144
3153
|
- spec/lib/matchers/match_tokens2.rb
|
3145
3154
|
- spec/lib/matchers/relationship_graph_matchers.rb
|
@@ -3236,7 +3245,6 @@ test_files:
|
|
3236
3245
|
- spec/unit/environments_spec.rb
|
3237
3246
|
- spec/unit/etc_spec.rb
|
3238
3247
|
- spec/unit/external/pson_spec.rb
|
3239
|
-
- spec/unit/face/catalog_spec.rb
|
3240
3248
|
- spec/unit/face/config_spec.rb
|
3241
3249
|
- spec/unit/face/epp_face_spec.rb
|
3242
3250
|
- spec/unit/face/facts_spec.rb
|
@@ -3248,7 +3256,6 @@ test_files:
|
|
3248
3256
|
- spec/unit/face/module/search_spec.rb
|
3249
3257
|
- spec/unit/face/module/uninstall_spec.rb
|
3250
3258
|
- spec/unit/face/module/upgrade_spec.rb
|
3251
|
-
- spec/unit/face/module_spec.rb
|
3252
3259
|
- spec/unit/face/node_spec.rb
|
3253
3260
|
- spec/unit/face/parser_spec.rb
|
3254
3261
|
- spec/unit/face/plugin_spec.rb
|
@@ -3393,6 +3400,7 @@ test_files:
|
|
3393
3400
|
- spec/unit/indirector/exec_spec.rb
|
3394
3401
|
- spec/unit/indirector/face_spec.rb
|
3395
3402
|
- spec/unit/indirector/facts/facter_spec.rb
|
3403
|
+
- spec/unit/indirector/facts/json_spec.rb
|
3396
3404
|
- spec/unit/indirector/facts/network_device_spec.rb
|
3397
3405
|
- spec/unit/indirector/facts/rest_spec.rb
|
3398
3406
|
- spec/unit/indirector/facts/store_configs_spec.rb
|
@@ -3417,6 +3425,7 @@ test_files:
|
|
3417
3425
|
- spec/unit/indirector/memory_spec.rb
|
3418
3426
|
- spec/unit/indirector/msgpack_spec.rb
|
3419
3427
|
- spec/unit/indirector/node/exec_spec.rb
|
3428
|
+
- spec/unit/indirector/node/json_spec.rb
|
3420
3429
|
- spec/unit/indirector/node/memory_spec.rb
|
3421
3430
|
- spec/unit/indirector/node/msgpack_spec.rb
|
3422
3431
|
- spec/unit/indirector/node/plain_spec.rb
|
@@ -3425,6 +3434,7 @@ test_files:
|
|
3425
3434
|
- spec/unit/indirector/node/yaml_spec.rb
|
3426
3435
|
- spec/unit/indirector/none_spec.rb
|
3427
3436
|
- spec/unit/indirector/plain_spec.rb
|
3437
|
+
- spec/unit/indirector/report/json_spec.rb
|
3428
3438
|
- spec/unit/indirector/report/msgpack_spec.rb
|
3429
3439
|
- spec/unit/indirector/report/processor_spec.rb
|
3430
3440
|
- spec/unit/indirector/report/rest_spec.rb
|
@@ -3549,6 +3559,7 @@ test_files:
|
|
3549
3559
|
- spec/unit/pops/evaluator/collections_ops_spec.rb
|
3550
3560
|
- spec/unit/pops/evaluator/comparison_ops_spec.rb
|
3551
3561
|
- spec/unit/pops/evaluator/conditionals_spec.rb
|
3562
|
+
- spec/unit/pops/evaluator/deferred_resolver_spec.rb
|
3552
3563
|
- spec/unit/pops/evaluator/evaluating_parser_spec.rb
|
3553
3564
|
- spec/unit/pops/evaluator/evaluator_rspec_helper.rb
|
3554
3565
|
- spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
|
@@ -1,74 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'puppet/application/config'
|
4
|
-
|
5
|
-
#describe "puppet config" do
|
6
|
-
describe Puppet::Face[:config, '0.0.1'] do
|
7
|
-
include PuppetSpec::Files
|
8
|
-
|
9
|
-
# different UTF-8 widths
|
10
|
-
# 1-byte A
|
11
|
-
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
12
|
-
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
13
|
-
# 4-byte 𠜎 - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
14
|
-
MIXED_UTF8 = "A\u06FF\u16A0\u{2070E}" # Aۿᚠ𠜎
|
15
|
-
|
16
|
-
let(:tmp_config) { tmpfile('puppet.conf') }
|
17
|
-
let(:config) { Puppet::Application[:config] }
|
18
|
-
|
19
|
-
def read_utf8(path)
|
20
|
-
File.read(tmp_config, :encoding => 'UTF-8')
|
21
|
-
end
|
22
|
-
|
23
|
-
def write_utf8(path, content)
|
24
|
-
File.write(tmp_config, content, 0, :encoding => 'UTF-8')
|
25
|
-
end
|
26
|
-
|
27
|
-
it "reads a UTF-8 value" do
|
28
|
-
write_utf8(tmp_config, <<~EOF)
|
29
|
-
[main]
|
30
|
-
tags=#{MIXED_UTF8}
|
31
|
-
EOF
|
32
|
-
|
33
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
34
|
-
config.command_line.args = ['print', 'tags' ]
|
35
|
-
|
36
|
-
expect {
|
37
|
-
config.run
|
38
|
-
}.to exit_with(0)
|
39
|
-
.and output("#{MIXED_UTF8}\n").to_stdout
|
40
|
-
end
|
41
|
-
|
42
|
-
it "sets a UTF-8 value" do
|
43
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
44
|
-
config.command_line.args = ['set', 'tags', MIXED_UTF8 ]
|
45
|
-
|
46
|
-
expect {
|
47
|
-
config.run
|
48
|
-
}.to exit_with(0)
|
49
|
-
|
50
|
-
expect(read_utf8(tmp_config)).to eq(<<~EOF)
|
51
|
-
[main]
|
52
|
-
tags = #{MIXED_UTF8}
|
53
|
-
EOF
|
54
|
-
end
|
55
|
-
|
56
|
-
it "deletes a key" do
|
57
|
-
write_utf8(tmp_config, <<~EOF)
|
58
|
-
[main]
|
59
|
-
tags=#{MIXED_UTF8}
|
60
|
-
EOF
|
61
|
-
|
62
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
63
|
-
config.command_line.args = ['delete', 'tags']
|
64
|
-
|
65
|
-
expect {
|
66
|
-
config.run
|
67
|
-
}.to exit_with(0)
|
68
|
-
.and output(/Deleted setting from 'main': 'tags=#{MIXED_UTF8}'/).to_stdout
|
69
|
-
|
70
|
-
expect(read_utf8(tmp_config)).to eq(<<~EOF)
|
71
|
-
[main]
|
72
|
-
EOF
|
73
|
-
end
|
74
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Matchers; module Include
|
2
|
-
extend RSpec::Matchers::DSL
|
3
|
-
|
4
|
-
matcher :include_in_any_order do |*matchers|
|
5
|
-
match do |enumerable|
|
6
|
-
@not_matched = []
|
7
|
-
expected_as_array.each do |matcher|
|
8
|
-
if enumerable.empty?
|
9
|
-
break
|
10
|
-
end
|
11
|
-
|
12
|
-
if found = enumerable.find { |elem| matcher.matches?(elem) }
|
13
|
-
enumerable = enumerable.reject { |elem| elem == found }
|
14
|
-
else
|
15
|
-
@not_matched << matcher
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
@not_matched.empty? && enumerable.empty?
|
21
|
-
end
|
22
|
-
|
23
|
-
failure_message do |enumerable|
|
24
|
-
"did not match #{@not_matched.collect(&:description).join(', ')} in #{enumerable.inspect}: <#{@not_matched.collect(&:failure_message).join('>, <')}>"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end; end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'matchers/include'
|
3
|
-
|
4
|
-
describe "include matchers" do
|
5
|
-
include Matchers::Include
|
6
|
-
|
7
|
-
context :include_in_any_order do
|
8
|
-
it "matches an empty list" do
|
9
|
-
expect([]).to include_in_any_order()
|
10
|
-
end
|
11
|
-
|
12
|
-
it "matches a list with a single element" do
|
13
|
-
expect([1]).to include_in_any_order(eq(1))
|
14
|
-
end
|
15
|
-
|
16
|
-
it "does not match when an expected element is missing" do
|
17
|
-
expect([1]).to_not include_in_any_order(eq(2))
|
18
|
-
end
|
19
|
-
|
20
|
-
it "matches a list with 2 elements in a different order from the expectation" do
|
21
|
-
expect([1, 2]).to include_in_any_order(eq(2), eq(1))
|
22
|
-
end
|
23
|
-
|
24
|
-
it "does not match when there are more than just the expected elements" do
|
25
|
-
expect([1, 2]).to_not include_in_any_order(eq(1))
|
26
|
-
end
|
27
|
-
|
28
|
-
it "matches multiple, equal elements when there are multiple, equal exepectations" do
|
29
|
-
expect([1, 1]).to include_in_any_order(eq(1), eq(1))
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|