puppet 6.1.0-x86-mingw32 → 6.2.0-x86-mingw32

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -11
  3. data/lib/puppet.rb +4 -4
  4. data/lib/puppet/application/agent.rb +3 -0
  5. data/lib/puppet/application/apply.rb +3 -0
  6. data/lib/puppet/application/device.rb +3 -0
  7. data/lib/puppet/application/script.rb +3 -0
  8. data/lib/puppet/defaults.rb +21 -11
  9. data/lib/puppet/forge.rb +4 -1
  10. data/lib/puppet/pops/issues.rb +3 -4
  11. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +60 -4
  12. data/lib/puppet/pops/model/pn_transformer.rb +5 -0
  13. data/lib/puppet/pops/parser/eparser.rb +656 -656
  14. data/lib/puppet/provider/package/pkg.rb +20 -4
  15. data/lib/puppet/provider/package/portage.rb +15 -4
  16. data/lib/puppet/rest/route.rb +1 -1
  17. data/lib/puppet/settings.rb +10 -5
  18. data/lib/puppet/transaction.rb +12 -7
  19. data/lib/puppet/util/command_line.rb +5 -1
  20. data/lib/puppet/util/log/destinations.rb +3 -0
  21. data/lib/puppet/version.rb +1 -1
  22. data/locales/puppet.pot +241 -237
  23. data/man/man5/puppet.conf.5 +14 -6
  24. data/man/man8/puppet-agent.8 +4 -1
  25. data/man/man8/puppet-apply.8 +4 -1
  26. data/man/man8/puppet-catalog.8 +1 -1
  27. data/man/man8/puppet-config.8 +1 -1
  28. data/man/man8/puppet-describe.8 +1 -1
  29. data/man/man8/puppet-device.8 +4 -1
  30. data/man/man8/puppet-doc.8 +1 -1
  31. data/man/man8/puppet-epp.8 +1 -1
  32. data/man/man8/puppet-facts.8 +1 -1
  33. data/man/man8/puppet-filebucket.8 +1 -1
  34. data/man/man8/puppet-generate.8 +1 -1
  35. data/man/man8/puppet-help.8 +1 -1
  36. data/man/man8/puppet-key.8 +1 -1
  37. data/man/man8/puppet-lookup.8 +1 -1
  38. data/man/man8/puppet-man.8 +1 -1
  39. data/man/man8/puppet-module.8 +1 -1
  40. data/man/man8/puppet-node.8 +1 -1
  41. data/man/man8/puppet-parser.8 +1 -1
  42. data/man/man8/puppet-plugin.8 +1 -1
  43. data/man/man8/puppet-report.8 +1 -1
  44. data/man/man8/puppet-resource.8 +1 -1
  45. data/man/man8/puppet-script.8 +4 -1
  46. data/man/man8/puppet-ssl.8 +1 -1
  47. data/man/man8/puppet-status.8 +1 -1
  48. data/man/man8/puppet.8 +2 -2
  49. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +11 -0
  50. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +11 -0
  51. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +11 -0
  52. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +12 -0
  53. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +9 -0
  54. data/spec/unit/forge/forge_spec.rb +4 -2
  55. data/spec/unit/pops/loaders/loaders_spec.rb +65 -3
  56. data/spec/unit/pops/model/pn_transformer_spec.rb +4 -0
  57. data/spec/unit/provider/package/pkg_spec.rb +18 -0
  58. data/spec/unit/provider/package/portage_spec.rb +16 -2
  59. data/spec/unit/provider/service/systemd_spec.rb +7 -5
  60. data/spec/unit/rest/route_spec.rb +1 -1
  61. data/spec/unit/settings_spec.rb +36 -0
  62. data/spec/unit/transaction_spec.rb +54 -0
  63. data/spec/unit/util/command_line_spec.rb +23 -2
  64. data/spec/unit/util/log/destinations_spec.rb +18 -0
  65. metadata +12 -2
@@ -42,6 +42,10 @@ describe 'Puppet::Pops::Model::PNTransformer' do
42
42
  expect(Puppet::Pops::Model::PNTransformer.transform(x.model)).to eq(
43
43
  call('hash', call('=>', 'a', 1), call('=>', 'b', 2)))
44
44
  end
45
+
46
+ it 'replaces empty/nil body with a Nop' do
47
+ expect(Puppet::Pops::Model::PNTransformer.transform(nil)).to eq(call('nop'))
48
+ end
45
49
  end
46
50
 
47
51
  def lit(value)
@@ -153,6 +153,14 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
153
153
  described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.installed'))
154
154
  provider.latest
155
155
  end
156
+
157
+ it "applies install options if available" do
158
+ resource[:install_options] = ['--foo', {'--bar' => 'baz'}]
159
+ described_class.expects(:pkg).with(:list,'-Hvn','dummy').returns File.read(my_fixture('dummy_solaris11.known'))
160
+ Puppet::Util::Execution.expects(:execute)
161
+ .with(['/bin/pkg', 'update', '-n', '--foo', '--bar=baz', 'dummy'], {failonfail: false, combine: true})
162
+ provider.latest
163
+ end
156
164
  end
157
165
 
158
166
  context ":instances" do
@@ -251,6 +259,16 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
251
259
  before :each do
252
260
  Facter.stubs(:value).with(:operatingsystemrelease).returns hash[:osrel]
253
261
  end
262
+
263
+ it "should support install options" do
264
+ resource[:install_options] = ['--foo', {'--bar' => 'baz'}]
265
+ provider.expects(:query).returns({:ensure => :absent})
266
+ provider.expects(:unhold)
267
+ Puppet::Util::Execution.expects(:execute)
268
+ .with(['/bin/pkg', 'install', *hash[:flags], '--foo', '--bar=baz', 'dummy'], {:failonfail => false, :combine => true})
269
+ provider.install
270
+ end
271
+
254
272
  it "should accept all licenses" do
255
273
  provider.expects(:query).with().returns({:ensure => :absent})
256
274
  Puppet::Util::Execution.expects(:execute)
@@ -23,14 +23,16 @@ describe provider do
23
23
  @slotted_resource.stubs(:[]).with(:name).returns(slotted_packagename)
24
24
  @slotted_resource.stubs(:[]).with(:install_options).returns(['--foo', { '--bar' => 'baz', '--baz' => 'foo' }])
25
25
 
26
- versioned_packagename = "dev-lang/ruby-1.9.3"
26
+ versioned_packagename = "=dev-lang/ruby-1.9.3"
27
27
  @versioned_resource = stub('resource', :should => true)
28
28
  @versioned_resource.stubs(:[]).with(:name).returns(versioned_packagename)
29
+ @versioned_resource.stubs(:[]).with(:install_options).returns([])
29
30
  @versioned_resource.stubs(:[]).with(:uninstall_options).returns([])
30
31
 
31
32
  versioned_slotted_packagename = "=dev-lang/ruby-1.9.3:1.9"
32
33
  @versioned_slotted_resource = stub('resource', :should => true)
33
34
  @versioned_slotted_resource.stubs(:[]).with(:name).returns(versioned_slotted_packagename)
35
+ @versioned_slotted_resource.stubs(:[]).with(:install_options).returns([])
34
36
  @versioned_slotted_resource.stubs(:[]).with(:uninstall_options).returns([])
35
37
 
36
38
  set_packagename = "@system"
@@ -49,7 +51,7 @@ describe provider do
49
51
  @slotted_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>nil, :pr=>nil, :slot=>":2.1", :pfx=>nil, :sfx=>nil})
50
52
  @slotted_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
51
53
  @versioned_provider = provider.new(@versioned_resource)
52
- @versioned_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>nil, :pfx=>nil, :sfx=>nil})
54
+ @versioned_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>nil, :pfx=>"=", :sfx=>nil})
53
55
  @versioned_provider.class.stubs(:emerge).with('--list-sets').returns(package_sets)
54
56
  @versioned_slotted_provider = provider.new(@versioned_slotted_resource)
55
57
  @versioned_slotted_provider.stubs(:qatom).returns({:category=>"dev-lang", :pn=>"ruby", :pv=>"1.9.3", :pr=>nil, :slot=>":1.9", :pfx=>"=", :sfx=>nil})
@@ -98,6 +100,18 @@ describe provider do
98
100
  @provider.uninstall
99
101
  end
100
102
 
103
+ it 'should support install of specific version' do
104
+ @versioned_provider.expects(:emerge).with(@versioned_resource[:name])
105
+
106
+ @versioned_provider.install
107
+ end
108
+
109
+ it 'should support install of specific version and slot' do
110
+ @versioned_slotted_provider.expects(:emerge).with(@versioned_slotted_resource[:name])
111
+
112
+ @versioned_slotted_provider.install
113
+ end
114
+
101
115
  it 'should support uninstall of specific version' do
102
116
  @versioned_provider.expects(:emerge).with('--rage-clean', @versioned_resource[:name])
103
117
 
@@ -33,11 +33,13 @@ describe 'Puppet::Type::Service::Provider::Systemd', unless: Puppet::Util::Platf
33
33
  end
34
34
  end
35
35
 
36
- it "should be the default provider on rhel7" do
37
- Facter.stubs(:value).with(:osfamily).returns(:redhat)
38
- Facter.stubs(:value).with(:operatingsystem).returns(:redhat)
39
- Facter.stubs(:value).with(:operatingsystemmajrelease).returns("7")
40
- expect(provider_class).to be_default
36
+ [7, 8].each do |ver|
37
+ it "should be the default provider on rhel#{ver}" do
38
+ Facter.stubs(:value).with(:osfamily).returns(:redhat)
39
+ Facter.stubs(:value).with(:operatingsystem).returns(:redhat)
40
+ Facter.stubs(:value).with(:operatingsystemmajrelease).returns(ver.to_s)
41
+ expect(provider_class).to be_default
42
+ end
41
43
  end
42
44
 
43
45
  [ 4, 5, 6 ].each do |ver|
@@ -91,7 +91,7 @@ describe Puppet::Rest::Route do
91
91
  @srv_records = [record]
92
92
 
93
93
  @dns_mock.expects(:getresources).
94
- with("_x-puppet._tcp.test_service", Resolv::DNS::Resource::IN::SRV).
94
+ with("_x-puppet-test_service._tcp.example.com", Resolv::DNS::Resource::IN::SRV).
95
95
  returns(@srv_records)
96
96
  end
97
97
 
@@ -702,6 +702,42 @@ describe Puppet::Settings do
702
702
  @settings.send(:parse_config_files)
703
703
  end
704
704
  end
705
+
706
+ describe "when the file exists" do
707
+ it "fails if the file is not readable" do
708
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(true)
709
+ @settings.expects(:read_file).raises('Permission denied')
710
+
711
+ expect{ @settings.send(:parse_config_files) }.to raise_error(RuntimeError, /Could not load #{user_config_file_default_location}: Permission denied/)
712
+ end
713
+
714
+ it "does not fail if the file is not readable and when `require_config` is false" do
715
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(true)
716
+ @settings.expects(:read_file).raises('Permission denied')
717
+
718
+ @settings.expects(:parse_config).never
719
+ Puppet.expects(:log_exception)
720
+
721
+ expect{ @settings.send(:parse_config_files, false) }.not_to raise_error
722
+ end
723
+
724
+ it "reads the file if it is readable" do
725
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(true)
726
+ @settings.expects(:read_file).returns('server = host.string')
727
+ @settings.expects(:parse_config)
728
+
729
+ @settings.send(:parse_config_files)
730
+ end
731
+ end
732
+
733
+ describe "when the file does not exist" do
734
+ it "does not attempt to parse the config file" do
735
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(false)
736
+ @settings.expects(:parse_config).never
737
+
738
+ @settings.send(:parse_config_files)
739
+ end
740
+ end
705
741
  end
706
742
 
707
743
  describe "when parsing its configuration" do
@@ -3,6 +3,7 @@ require 'matchers/include_in_order'
3
3
  require 'puppet_spec/compiler'
4
4
 
5
5
  require 'puppet/transaction'
6
+ require 'puppet/type/notify'
6
7
  require 'fileutils'
7
8
 
8
9
  describe Puppet::Transaction do
@@ -599,6 +600,30 @@ describe Puppet::Transaction do
599
600
  transaction.prefetch_if_necessary(resource)
600
601
  end
601
602
 
603
+ it "should not rescue SystemExit without future_features flag" do
604
+ Puppet.settings[:future_features] = false
605
+ resource.provider.class.expects(:prefetch).raises(SystemExit, "SystemMessage")
606
+ expect { transaction.prefetch_if_necessary(resource) }.to raise_error(SystemExit, "SystemMessage")
607
+ end
608
+
609
+ it "should not rescue SystemExit with future_features flag" do
610
+ Puppet.settings[:future_features] = true
611
+ resource.provider.class.expects(:prefetch).raises(SystemExit, "SystemMessage")
612
+ expect { transaction.prefetch_if_necessary(resource) }.to raise_error(SystemExit, "SystemMessage")
613
+ end
614
+
615
+ it "should rescue LoadError without future_features flag" do
616
+ Puppet.settings[:future_features] = false
617
+ resource.provider.class.expects(:prefetch).raises(LoadError, "LoadMessage")
618
+ expect { transaction.prefetch_if_necessary(resource) }.not_to raise_error
619
+ end
620
+
621
+ it "should rescue LoadError with future_features flag" do
622
+ Puppet.settings[:future_features] = true
623
+ resource.provider.class.expects(:prefetch).raises(LoadError, "LoadMessage")
624
+ expect { transaction.prefetch_if_necessary(resource) }.not_to raise_error
625
+ end
626
+
602
627
  describe "and prefetching fails" do
603
628
  before :each do
604
629
  resource.provider.class.expects(:prefetch).raises(Puppet::Error, "message")
@@ -612,6 +637,11 @@ describe Puppet::Transaction do
612
637
  it "should not rescue prefetch executions" do
613
638
  expect { transaction.prefetch_if_necessary(resource) }.to raise_error(Puppet::Error)
614
639
  end
640
+
641
+ it "should log the exception during prefetch" do
642
+ Puppet.expects(:log_exception).with(anything, "Could not prefetch package provider 'pkgng': message")
643
+ expect { transaction.prefetch_if_necessary(resource) }.to raise_error(Puppet::Error, "message")
644
+ end
615
645
  end
616
646
 
617
647
  context "with future_features flag" do
@@ -896,6 +926,30 @@ describe Puppet::Transaction do
896
926
  expect(transaction.report.resource_statuses['Notify[b]']).to be_skipped
897
927
  end
898
928
  end
929
+
930
+ describe "failed dependency is depended on multiple times" do
931
+ it "notifies the failed dependency once" do
932
+ command_string = File.expand_path('/my/command')
933
+ Puppet::Util::Execution.stubs(:execute).with([command_string]).raises(Puppet::ExecutionFailure, "Failed")
934
+
935
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:notice, "Dependency Exec[exec1] has failures: true")
936
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:notice, "Dependency Exec[exec2] has failures: true")
937
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:notice, "Dependency Exec[exec3] has failures: true")
938
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:notice, "Dependency Exec[exec4] has failures: true")
939
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:notice, "Dependency Exec[exec5] has failures: true")
940
+
941
+ Puppet::Type::Notify.any_instance.expects(:send_log).with(:warning, "Skipping because of failed dependencies").times(3)
942
+
943
+ apply_compiled_manifest(<<-MANIFEST)
944
+ exec { ['exec1', 'exec2', 'exec3', 'exec4', 'exec5']:
945
+ command => '#{command_string}'
946
+ } ->
947
+ notify { ['notify1', 'notify2', 'notify3']: }
948
+ MANIFEST
949
+
950
+ end
951
+ end
952
+
899
953
  end
900
954
 
901
955
  describe Puppet::Transaction, " when determining tags" do
@@ -67,8 +67,8 @@ describe Puppet::Util::CommandLine do
67
67
  end
68
68
  end
69
69
 
70
- %w{--help -h}.each do|arg|
71
- it "should print help" do
70
+ %w{--help -h help}.each do|arg|
71
+ it "should print help and exit if #{arg} is given" do
72
72
  commandline = Puppet::Util::CommandLine.new("puppet", [arg])
73
73
  commandline.expects(:exec).never
74
74
 
@@ -77,6 +77,27 @@ describe Puppet::Util::CommandLine do
77
77
  }.to have_printed(/Usage: puppet <subcommand> \[options\] <action> \[options\]/).and_exit_with(0)
78
78
  end
79
79
  end
80
+
81
+ it "should fail if the config file isn't readable and we're running a subcommand that requires a readable config file" do
82
+ Puppet::FileSystem.stubs(:exist?).with(Puppet[:config]).returns(true)
83
+ Puppet::Settings.any_instance.stubs(:read_file).returns('')
84
+ Puppet::Settings.any_instance.expects(:read_file).with(Puppet[:config]).raises('Permission denied')
85
+
86
+ expect{ described_class.new("puppet", ['config']).execute }.to raise_error(SystemExit)
87
+ end
88
+
89
+ it "should not fail if the config file isn't readable and we're running a subcommand that does not require a readable config file" do
90
+ Puppet::FileSystem.stubs(:exist?)
91
+ Puppet::FileSystem.stubs(:exist?).with(Puppet[:config]).returns(true)
92
+ Puppet::Settings.any_instance.stubs(:read_file).returns('')
93
+ Puppet::Settings.any_instance.expects(:read_file).with(Puppet[:config]).raises('Permission denied')
94
+
95
+ commandline = described_class.new("puppet", ['help'])
96
+
97
+ expect {
98
+ commandline.execute
99
+ }.to have_printed(/Usage: puppet <subcommand> \[options\] <action> \[options\]/).and_exit_with(0)
100
+ end
80
101
  end
81
102
 
82
103
  describe "when dealing with puppet commands" do
@@ -92,6 +92,24 @@ describe Puppet::Util::Log.desttypes[:file] do
92
92
  expect(JSON.parse(File.read(abspath) + ']')).to include(a_hash_including({"message" => "don't panic"}))
93
93
  end
94
94
  end
95
+
96
+ describe "with a JSON lines file" do
97
+ let (:abspath) { '/tmp/log.jsonl' }
98
+ let (:relpath) { 'log.jsonl' }
99
+
100
+ it_behaves_like "file destination"
101
+
102
+ it "should log messages as JSON lines" do
103
+ msg1 = Puppet::Util::Log.new(:level => :info, :message => "don't panic")
104
+ msg2 = Puppet::Util::Log.new(:level => :err, :message => "panic!")
105
+ dest = @class.new(abspath)
106
+ dest.handle(msg1)
107
+ dest.handle(msg2)
108
+ lines = IO.readlines(abspath)
109
+ expect(JSON.parse(lines[-2])).to include("level" => "info", "message" => "don't panic")
110
+ expect(JSON.parse(lines[-1])).to include("level" => "err", "message" => "panic!")
111
+ end
112
+ end
95
113
  end
96
114
 
97
115
  describe "on Windows systems", :if => Puppet::Util::Platform.windows? do
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.1.0
4
+ version: 6.2.0
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-17 00:00:00.000000000 Z
11
+ date: 2019-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -1637,8 +1637,13 @@ files:
1637
1637
  - spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp
1638
1638
  - spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp
1639
1639
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb
1640
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb
1641
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb
1642
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb
1643
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb
1640
1644
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb
1641
1645
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb
1646
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb
1642
1647
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json
1643
1648
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp
1644
1649
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp
@@ -2835,8 +2840,13 @@ test_files:
2835
2840
  - spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp
2836
2841
  - spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp
2837
2842
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb
2843
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb
2844
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb
2845
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb
2846
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb
2838
2847
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb
2839
2848
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb
2849
+ - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb
2840
2850
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json
2841
2851
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp
2842
2852
  - spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp