puppet 5.5.20 → 5.5.21

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -19
  3. data/lib/puppet/agent.rb +3 -3
  4. data/lib/puppet/application/agent.rb +3 -1
  5. data/lib/puppet/daemon.rb +1 -1
  6. data/lib/puppet/defaults.rb +2 -2
  7. data/lib/puppet/file_system/uniquefile.rb +4 -0
  8. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  9. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  10. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  11. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  12. data/lib/puppet/parser/environment_compiler.rb +3 -0
  13. data/lib/puppet/parser/resource.rb +3 -2
  14. data/lib/puppet/parser/resource/param.rb +6 -0
  15. data/lib/puppet/pops/issues.rb +5 -0
  16. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  17. data/lib/puppet/pops/validation/checker4_0.rb +10 -0
  18. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  19. data/lib/puppet/provider/package/dnfmodule.rb +24 -4
  20. data/lib/puppet/provider/package/pip.rb +6 -4
  21. data/lib/puppet/provider/package/zypper.rb +1 -0
  22. data/lib/puppet/provider/service/systemd.rb +22 -4
  23. data/lib/puppet/provider/user/useradd.rb +16 -5
  24. data/lib/puppet/resource/type.rb +8 -0
  25. data/lib/puppet/test/test_helper.rb +8 -10
  26. data/lib/puppet/type.rb +6 -0
  27. data/lib/puppet/type/package.rb +16 -1
  28. data/lib/puppet/type/service.rb +1 -7
  29. data/lib/puppet/type/user.rb +1 -7
  30. data/lib/puppet/util.rb +12 -13
  31. data/lib/puppet/util/log/destinations.rb +1 -10
  32. data/lib/puppet/util/windows/api_types.rb +45 -32
  33. data/lib/puppet/util/windows/eventlog.rb +1 -6
  34. data/lib/puppet/util/windows/principal.rb +8 -6
  35. data/lib/puppet/util/windows/registry.rb +11 -11
  36. data/lib/puppet/version.rb +1 -1
  37. data/locales/puppet.pot +97 -93
  38. data/man/man5/puppet.conf.5 +2 -2
  39. data/man/man8/puppet-agent.8 +2 -2
  40. data/man/man8/puppet-apply.8 +1 -1
  41. data/man/man8/puppet-ca.8 +1 -1
  42. data/man/man8/puppet-catalog.8 +1 -1
  43. data/man/man8/puppet-cert.8 +1 -1
  44. data/man/man8/puppet-certificate.8 +1 -1
  45. data/man/man8/puppet-certificate_request.8 +1 -1
  46. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  47. data/man/man8/puppet-config.8 +1 -1
  48. data/man/man8/puppet-describe.8 +1 -1
  49. data/man/man8/puppet-device.8 +1 -1
  50. data/man/man8/puppet-doc.8 +1 -1
  51. data/man/man8/puppet-epp.8 +1 -1
  52. data/man/man8/puppet-facts.8 +1 -1
  53. data/man/man8/puppet-filebucket.8 +1 -1
  54. data/man/man8/puppet-generate.8 +1 -1
  55. data/man/man8/puppet-help.8 +1 -1
  56. data/man/man8/puppet-key.8 +1 -1
  57. data/man/man8/puppet-lookup.8 +1 -1
  58. data/man/man8/puppet-man.8 +1 -1
  59. data/man/man8/puppet-master.8 +1 -1
  60. data/man/man8/puppet-module.8 +1 -1
  61. data/man/man8/puppet-node.8 +1 -1
  62. data/man/man8/puppet-parser.8 +1 -1
  63. data/man/man8/puppet-plugin.8 +1 -1
  64. data/man/man8/puppet-report.8 +1 -1
  65. data/man/man8/puppet-resource.8 +1 -1
  66. data/man/man8/puppet-script.8 +1 -1
  67. data/man/man8/puppet-status.8 +1 -1
  68. data/man/man8/puppet.8 +2 -2
  69. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
  70. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  71. data/spec/integration/defaults_spec.rb +1 -2
  72. data/spec/integration/parser/compiler_spec.rb +11 -0
  73. data/spec/integration/util/windows/adsi_spec.rb +5 -0
  74. data/spec/integration/util/windows/registry_spec.rb +7 -7
  75. data/spec/unit/agent_spec.rb +1 -1
  76. data/spec/unit/daemon_spec.rb +0 -1
  77. data/spec/unit/file_system/uniquefile_spec.rb +11 -0
  78. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  79. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  80. data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
  81. data/spec/unit/provider/package/pip_spec.rb +42 -16
  82. data/spec/unit/provider/package/zypper_spec.rb +13 -0
  83. data/spec/unit/provider/service/systemd_spec.rb +93 -20
  84. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  85. data/spec/unit/provider/user/useradd_spec.rb +30 -16
  86. data/spec/unit/test/test_helper_spec.rb +17 -0
  87. data/spec/unit/type/service_spec.rb +9 -8
  88. data/spec/unit/type/user_spec.rb +19 -13
  89. data/spec/unit/util/log/destinations_spec.rb +1 -29
  90. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  91. metadata +7 -7
  92. data/spec/integration/test/test_helper_spec.rb +0 -31
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe "TestHelper" do
4
+ context "#after_each_test" do
5
+ it "restores the original environment" do
6
+ varname = 'test_helper_spec-test_variable'
7
+ Puppet::Util.set_env(varname, "\u16A0")
8
+
9
+ expect(Puppet::Util.get_env(varname)).to eq("\u16A0")
10
+
11
+ # Prematurely trigger the after_each_test method
12
+ Puppet::Test::TestHelper.after_each_test
13
+
14
+ expect(Puppet::Util::get_env(varname)).to be_nil
15
+ end
16
+ end
17
+ end
@@ -234,20 +234,21 @@ describe Puppet::Type.type(:service), "when changing the host" do
234
234
  @service.property(:enable).sync
235
235
  end
236
236
 
237
- it "should always consider the enable state of a static service to be in sync" do
237
+ it "should let superclass implementation resolve insyncness when provider does not respond to the 'enabled_insync?' method" do
238
238
  allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
239
- expect(@service.provider).to receive(:cached_enabled?).and_return('static')
240
- @service[:enable] = false
241
- expect(Puppet).to receive(:debug).with("Unable to enable or disable static service yay")
239
+ @service[:enable] = true
240
+ allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(false)
241
+
242
242
  expect(@service.property(:enable).insync?(:true)).to eq(true)
243
243
  end
244
244
 
245
- it "should determine insyncness normally when the service is not static" do
245
+ it "insyncness should be resolved by provider instead of superclass implementation when provider responds to the 'enabled_insync?' method" do
246
246
  allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
247
- expect(@service.provider).to receive(:cached_enabled?).and_return('true')
248
247
  @service[:enable] = true
249
- expect(Puppet).not_to receive(:debug)
250
- expect(@service.property(:enable).insync?(:true)).to eq(true)
248
+ allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(true)
249
+ allow(@service.provider).to receive(:enabled_insync?).and_return(false)
250
+
251
+ expect(@service.property(:enable).insync?(:true)).to eq(false)
251
252
  end
252
253
 
253
254
  it "should sync the service's enable state when changing the state of :ensure if :enable is being managed" do
@@ -1,4 +1,4 @@
1
- # encoding: UTF-8
1
+ # encoding: utf-8
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Puppet::Type.type(:user) do
@@ -484,22 +484,20 @@ describe Puppet::Type.type(:user) do
484
484
  end
485
485
 
486
486
  context "with no home directory specified" do
487
- it "should not accept true" do
488
- expect {
489
- described_class.new(:name => "a", :purge_ssh_keys => true)
490
- }.to raise_error(Puppet::Error, /purge_ssh_keys can only be true for users with a defined home directory/)
487
+ before(:each) do
488
+ allow(Dir).to receive(:home).with('a').and_return('/home/a')
491
489
  end
492
490
 
493
- it "should not accept the ~ wildcard" do
494
- expect {
495
- described_class.new(:name => "a", :purge_ssh_keys => "~/keys")
496
- }.to raise_error(Puppet::Error, /meta character ~ or %h only allowed for users with a defined home directory/)
491
+ it "should accept true" do
492
+ described_class.new(:name => "a", :purge_ssh_keys => true)
497
493
  end
498
494
 
499
- it "should not accept the %h wildcard" do
500
- expect {
501
- described_class.new(:name => "a", :purge_ssh_keys => "%h/keys")
502
- }.to raise_error(Puppet::Error, /meta character ~ or %h only allowed for users with a defined home directory/)
495
+ it "should accept the ~ wildcard" do
496
+ described_class.new(:name => "a", :purge_ssh_keys => "~/keys")
497
+ end
498
+
499
+ it "should accept the %h wildcard" do
500
+ described_class.new(:name => "a", :purge_ssh_keys => "%h/keys")
503
501
  end
504
502
  end
505
503
 
@@ -508,6 +506,10 @@ describe Puppet::Type.type(:user) do
508
506
  [ "/dev/null", "/tmp/keyfile" ].map { |path| File.expand_path(path) }
509
507
  end
510
508
 
509
+ before(:each) do
510
+ allow(Dir).to receive(:home).with('test').and_return('/home/test')
511
+ end
512
+
511
513
  subject do
512
514
  res = described_class.new(:name => "test", :purge_ssh_keys => paths)
513
515
  res.catalog = Puppet::Resource::Catalog.new
@@ -534,6 +536,10 @@ describe Puppet::Type.type(:user) do
534
536
  res
535
537
  end
536
538
 
539
+ before(:each) do
540
+ allow(Dir).to receive(:home).with('test_user_name').and_return('/home/test_user_name')
541
+ end
542
+
537
543
  context "when purging is disabled" do
538
544
  let(:purge_param) { false }
539
545
 
@@ -44,41 +44,13 @@ describe Puppet::Util::Log.desttypes[:file] do
44
44
  end
45
45
  end
46
46
 
47
- describe "on POSIX systems", :if => Puppet.features.posix? do
47
+ describe "on POSIX systems", :unless => Puppet::Util::Platform.windows? do
48
48
  describe "with a normal file" do
49
49
  let (:parent) { Pathname.new('/tmp') }
50
50
  let (:abspath) { '/tmp/log' }
51
51
  let (:relpath) { 'log' }
52
52
 
53
53
  it_behaves_like "file destination"
54
-
55
- it "logs an error if it can't chown the file owner & group" do
56
- allow(File).to receive(:exist?).with(parent).and_return(true)
57
- expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
58
- expect(FileUtils).to receive(:chown).with(Puppet[:user], Puppet[:group], abspath).and_raise(Errno::EPERM)
59
- expect(Puppet.features).to receive(:root?).and_return(true)
60
- expect(Puppet).to receive(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
61
-
62
- @class.new(abspath)
63
- end
64
-
65
- it "doesn't attempt to chown when running as non-root" do
66
- allow(File).to receive(:exist?).with(parent).and_return(true)
67
- expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
68
- expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
69
- expect(Puppet.features).to receive(:root?).and_return(false)
70
-
71
- @class.new(abspath)
72
- end
73
-
74
- it "doesn't attempt to chown when file already exists" do
75
- allow(File).to receive(:exist?).with(parent).and_return(true)
76
- expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(true)
77
- expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
78
- expect(Puppet.features).to receive(:root?).and_return(true)
79
-
80
- @class.new(abspath)
81
- end
82
54
  end
83
55
 
84
56
  describe "with a JSON file" do
@@ -4,62 +4,86 @@ require 'spec_helper'
4
4
 
5
5
  describe "FFI::MemoryPointer", :if => Puppet.features.microsoft_windows? do
6
6
  # use 2 bad bytes at end so we have even number of bytes / characters
7
- let (:bad_string) { "hello invalid world".encode(Encoding::UTF_16LE) + "\xDD\xDD".force_encoding(Encoding::UTF_16LE) }
8
- let (:bad_string_bytes) { bad_string.bytes.to_a }
7
+ let(:bad_string) { "hello invalid world".encode(Encoding::UTF_16LE) + "\xDD\xDD".force_encoding(Encoding::UTF_16LE) }
8
+ let(:bad_string_bytes) { bad_string.bytes.to_a }
9
+ let(:a_wide_bytes) { "A".encode(Encoding::UTF_16LE).bytes.to_a }
10
+ let(:b_wide_bytes) { "B".encode(Encoding::UTF_16LE).bytes.to_a }
9
11
 
10
12
  context "read_wide_string" do
11
13
  let (:string) { "foo_bar" }
12
14
 
13
15
  it "should properly roundtrip a given string" do
14
- read_string = nil
15
16
  FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
16
- read_string = ptr.read_wide_string(string.length)
17
+ expect(ptr.read_wide_string(string.length)).to eq(string)
17
18
  end
18
-
19
- expect(read_string).to eq(string)
20
19
  end
21
20
 
22
21
  it "should return a given string in UTF-8" do
23
- read_string = nil
24
22
  FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
25
23
  read_string = ptr.read_wide_string(string.length)
24
+ expect(read_string.encoding).to eq(Encoding::UTF_8)
26
25
  end
27
-
28
- expect(read_string.encoding).to eq(Encoding::UTF_8)
29
26
  end
30
27
 
31
28
  it "should raise an error and emit a debug message when receiving a string containing invalid bytes in the destination encoding" do
32
- # enable a debug output sink to local string array
33
- Puppet.debug = true
34
- arraydest = []
35
- Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(arraydest))
36
-
37
- read_string = nil
29
+ Puppet[:log_level] = 'debug'
38
30
 
39
31
  expect {
40
32
  FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
41
33
  # uchar here is synonymous with byte
42
34
  ptr.put_array_of_uchar(0, bad_string_bytes)
43
35
 
44
- read_string = ptr.read_wide_string(bad_string.length)
36
+ ptr.read_wide_string(bad_string.length)
45
37
  end
46
38
  }.to raise_error(Encoding::InvalidByteSequenceError)
47
39
 
48
- expect(read_string).to be_nil
49
- expect(arraydest.last.message).to eq("Unable to convert value #{bad_string.dump} to encoding UTF-8 due to #<Encoding::InvalidByteSequenceError: \"\\xDD\\xDD\" on UTF-16LE>")
40
+ expect(@logs.last.message).to eq("Unable to convert value #{bad_string.dump} to encoding UTF-8 due to #<Encoding::InvalidByteSequenceError: \"\\xDD\\xDD\" on UTF-16LE>")
50
41
  end
51
42
 
52
43
  it "should not raise an error when receiving a string containing invalid bytes in the destination encoding, when specifying :invalid => :replace" do
53
- read_string = nil
54
-
55
44
  FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
56
45
  # uchar here is synonymous with byte
57
46
  ptr.put_array_of_uchar(0, bad_string_bytes)
58
47
 
59
- read_string = ptr.read_wide_string(bad_string.length, Encoding::UTF_8, :invalid => :replace)
48
+ read_string = ptr.read_wide_string(bad_string.length, Encoding::UTF_8, false, :invalid => :replace)
49
+ expect(read_string).to eq("hello invalid world\uFFFD")
60
50
  end
51
+ end
61
52
 
62
- expect(read_string).to eq("hello invalid world\uFFFD")
53
+ it "raises an IndexError if asked to read more characters than there are bytes allocated" do
54
+ expect {
55
+ FFI::MemoryPointer.new(:byte, 1) do |ptr|
56
+ ptr.read_wide_string(1) # 1 wchar = 2 bytes
57
+ end
58
+ }.to raise_error(IndexError, /out of bounds/)
59
+ end
60
+
61
+ it "raises an IndexError if asked to read a negative number of characters" do
62
+ expect {
63
+ FFI::MemoryPointer.new(:byte, 1) do |ptr|
64
+ ptr.read_wide_string(-1)
65
+ end
66
+ }.to raise_error(IndexError, /out of bounds/)
67
+ end
68
+
69
+ it "returns an empty string if asked to read 0 characters" do
70
+ FFI::MemoryPointer.new(:byte, 1) do |ptr|
71
+ expect(ptr.read_wide_string(0)).to eq("")
72
+ end
73
+ end
74
+
75
+ it "returns a substring if asked to read fewer characters than are in the byte array" do
76
+ FFI::MemoryPointer.new(:byte, 4) do |ptr|
77
+ ptr.write_array_of_uint8("AB".encode('UTF-16LE').bytes.to_a)
78
+ expect(ptr.read_wide_string(1)).to eq("A")
79
+ end
80
+ end
81
+
82
+ it "preserves wide null characters in the string" do
83
+ FFI::MemoryPointer.new(:byte, 6) do |ptr|
84
+ ptr.write_array_of_uint8(a_wide_bytes + [0, 0] + b_wide_bytes)
85
+ expect(ptr.read_wide_string(3)).to eq("A\x00B")
86
+ end
63
87
  end
64
88
  end
65
89
 
@@ -69,52 +93,92 @@ describe "FFI::MemoryPointer", :if => Puppet.features.microsoft_windows? do
69
93
  let (:double_null_string) { string + "\x00\x00" }
70
94
 
71
95
  it "should read a short single null terminated string" do
72
- read_string = nil
73
96
  FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
74
- read_string = ptr.read_arbitrary_wide_string_up_to()
97
+ expect(ptr.read_arbitrary_wide_string_up_to).to eq(string)
75
98
  end
76
-
77
- expect(read_string).to eq(string)
78
99
  end
79
100
 
80
101
  it "should read a short double null terminated string" do
81
- read_string = nil
82
102
  FFI::MemoryPointer.from_string_to_wide_string(double_null_string) do |ptr|
83
- read_string = ptr.read_arbitrary_wide_string_up_to(512, :double_null)
103
+ expect(ptr.read_arbitrary_wide_string_up_to(512, :double_null)).to eq(string)
84
104
  end
105
+ end
106
+
107
+ it "detects trailing single null wchar" do
108
+ FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
109
+ expect(ptr).to receive(:read_wide_string).with(string.length, anything, anything, anything).and_call_original
85
110
 
86
- expect(read_string).to eq(string)
111
+ expect(ptr.read_arbitrary_wide_string_up_to).to eq(string)
112
+ end
87
113
  end
88
114
 
89
- it "should return a string of max_length characters when specified" do
90
- read_string = nil
115
+ it "detects trailing double null wchar" do
116
+ FFI::MemoryPointer.from_string_to_wide_string(double_null_string) do |ptr|
117
+ expect(ptr).to receive(:read_wide_string).with(string.length, anything, anything, anything).and_call_original
118
+
119
+ expect(ptr.read_arbitrary_wide_string_up_to(512, :double_null)).to eq(string)
120
+ end
121
+ end
122
+
123
+ it "should raises an IndexError if max_length is negative" do
124
+ FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
125
+ expect {
126
+ ptr.read_arbitrary_wide_string_up_to(-1)
127
+ }.to raise_error(IndexError, /out of bounds/)
128
+ end
129
+ end
130
+
131
+ it "should return an empty string when the max_length is 0" do
91
132
  FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
92
- read_string = ptr.read_arbitrary_wide_string_up_to(3)
133
+ expect(ptr.read_arbitrary_wide_string_up_to(0)).to eq("")
93
134
  end
135
+ end
94
136
 
95
- expect(read_string).to eq(string[0..2])
137
+ it "should return a string of max_length characters when specified" do
138
+ FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
139
+ expect(ptr.read_arbitrary_wide_string_up_to(3)).to eq(string[0..2])
140
+ end
96
141
  end
97
142
 
98
143
  it "should return wide strings in UTF-8" do
99
- read_string = nil
100
144
  FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
101
- read_string = ptr.read_arbitrary_wide_string_up_to()
145
+ read_string = ptr.read_arbitrary_wide_string_up_to
146
+ expect(read_string.encoding).to eq(Encoding::UTF_8)
102
147
  end
103
-
104
- expect(read_string.encoding).to eq(Encoding::UTF_8)
105
148
  end
106
149
 
107
150
  it "should not raise an error when receiving a string containing invalid bytes in the destination encoding, when specifying :invalid => :replace" do
108
- read_string = nil
109
-
110
151
  FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
111
152
  # uchar here is synonymous with byte
112
153
  ptr.put_array_of_uchar(0, bad_string_bytes)
113
154
 
114
155
  read_string = ptr.read_arbitrary_wide_string_up_to(ptr.size / 2, :single_null, :invalid => :replace)
156
+ expect(read_string).to eq("hello invalid world\uFFFD")
157
+ end
158
+ end
159
+
160
+ it "should raise an IndexError if there isn't a null terminator" do
161
+ # This only works when using a memory pointer with a known number of cells
162
+ # and size per cell, but not arbitrary Pointers
163
+ FFI::MemoryPointer.new(:wchar, 1) do |ptr|
164
+ ptr.write_array_of_uint8(a_wide_bytes)
165
+
166
+ expect {
167
+ ptr.read_arbitrary_wide_string_up_to(42)
168
+ }.to raise_error(IndexError, /out of bounds/)
115
169
  end
170
+ end
171
+
172
+ it "should raise an IndexError if there isn't a double null terminator" do
173
+ # This only works when using a memory pointer with a known number of cells
174
+ # and size per cell, but not arbitrary Pointers
175
+ FFI::MemoryPointer.new(:wchar, 1) do |ptr|
176
+ ptr.write_array_of_uint8(a_wide_bytes)
116
177
 
117
- expect(read_string).to eq("hello invalid world\uFFFD")
178
+ expect {
179
+ ptr.read_arbitrary_wide_string_up_to(42, :double_null)
180
+ }.to raise_error(IndexError, /out of bounds/)
181
+ end
118
182
  end
119
183
  end
120
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: 5.5.20
4
+ version: 5.5.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-29 00:00:00.000000000 Z
11
+ date: 2020-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -1716,7 +1716,7 @@ files:
1716
1716
  - spec/fixtures/unit/provider/mount/parsed/solaris.fstab
1717
1717
  - spec/fixtures/unit/provider/mount/parsed/solaris.mount
1718
1718
  - spec/fixtures/unit/provider/naginator/define_empty_param
1719
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
1719
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt
1720
1720
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
1721
1721
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
1722
1722
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -1858,7 +1858,6 @@ files:
1858
1858
  - spec/integration/ssl/certificate_revocation_list_spec.rb
1859
1859
  - spec/integration/ssl/host_spec.rb
1860
1860
  - spec/integration/ssl/key_spec.rb
1861
- - spec/integration/test/test_helper_spec.rb
1862
1861
  - spec/integration/transaction/report_spec.rb
1863
1862
  - spec/integration/transaction_spec.rb
1864
1863
  - spec/integration/type/exec_spec.rb
@@ -2531,6 +2530,7 @@ files:
2531
2530
  - spec/unit/ssl/validator_spec.rb
2532
2531
  - spec/unit/status_spec.rb
2533
2532
  - spec/unit/task_spec.rb
2533
+ - spec/unit/test/test_helper_spec.rb
2534
2534
  - spec/unit/transaction/additional_resource_generator_spec.rb
2535
2535
  - spec/unit/transaction/event_manager_spec.rb
2536
2536
  - spec/unit/transaction/event_spec.rb
@@ -2705,7 +2705,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2705
2705
  - !ruby/object:Gem::Version
2706
2706
  version: 1.3.1
2707
2707
  requirements: []
2708
- rubygems_version: 3.0.6
2708
+ rubygems_version: 3.0.8
2709
2709
  signing_key:
2710
2710
  specification_version: 4
2711
2711
  summary: Puppet, an automated configuration management tool
@@ -3035,7 +3035,7 @@ test_files:
3035
3035
  - spec/fixtures/unit/provider/mount/parsed/solaris.fstab
3036
3036
  - spec/fixtures/unit/provider/mount/parsed/solaris.mount
3037
3037
  - spec/fixtures/unit/provider/naginator/define_empty_param
3038
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
3038
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt
3039
3039
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
3040
3040
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
3041
3041
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -3177,7 +3177,6 @@ test_files:
3177
3177
  - spec/integration/ssl/certificate_revocation_list_spec.rb
3178
3178
  - spec/integration/ssl/host_spec.rb
3179
3179
  - spec/integration/ssl/key_spec.rb
3180
- - spec/integration/test/test_helper_spec.rb
3181
3180
  - spec/integration/transaction/report_spec.rb
3182
3181
  - spec/integration/transaction_spec.rb
3183
3182
  - spec/integration/type/exec_spec.rb
@@ -3850,6 +3849,7 @@ test_files:
3850
3849
  - spec/unit/ssl/validator_spec.rb
3851
3850
  - spec/unit/status_spec.rb
3852
3851
  - spec/unit/task_spec.rb
3852
+ - spec/unit/test/test_helper_spec.rb
3853
3853
  - spec/unit/transaction/additional_resource_generator_spec.rb
3854
3854
  - spec/unit/transaction/event_manager_spec.rb
3855
3855
  - spec/unit/transaction/event_spec.rb
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Windows UTF8 environment variables", :if => Puppet.features.microsoft_windows? do
4
- # The Puppet::Util::Windows::Process class is used to manipulate environment variables as it is known to handle UTF8 characters. Where as the implementation of ENV in ruby does not.
5
- # before and end all are used to inject environment variables before the test helper 'before_each_test' function is called
6
- # Do not use before and after hooks in these tests as it may have unintended consequences
7
-
8
- before(:all) {
9
- @varname = 'test_helper_spec-test_variable'
10
- @rune_utf8 = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
11
-
12
- Puppet::Util::Windows::Process.set_environment_variable(@varname, @rune_utf8)
13
- }
14
- after(:all) {
15
- # Need to cleanup this environment variable otherwise it contaminates any subsequent tests
16
- Puppet::Util::Windows::Process.set_environment_variable(@varname, nil)
17
- }
18
-
19
- it "#after_each_test should preserve UTF8 environment variables" do
20
- envhash = Puppet::Util::Windows::Process.get_environment_strings
21
- expect(envhash[@varname]).to eq(@rune_utf8)
22
- # Change the value in the test to force test_helper to restore the environment
23
- ENV[@varname] = 'bad foo'
24
-
25
- # Prematurely trigger the after_each_test method
26
- Puppet::Test::TestHelper.after_each_test
27
-
28
- envhash = Puppet::Util::Windows::Process.get_environment_strings
29
- expect(envhash[@varname]).to eq(@rune_utf8)
30
- end
31
- end