puppet 5.5.20-x64-mingw32 → 5.5.21-x64-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 (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: x64-mingw32
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
@@ -1800,7 +1800,7 @@ files:
1800
1800
  - spec/fixtures/unit/provider/mount/parsed/solaris.fstab
1801
1801
  - spec/fixtures/unit/provider/mount/parsed/solaris.mount
1802
1802
  - spec/fixtures/unit/provider/naginator/define_empty_param
1803
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
1803
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt
1804
1804
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
1805
1805
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
1806
1806
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -1942,7 +1942,6 @@ files:
1942
1942
  - spec/integration/ssl/certificate_revocation_list_spec.rb
1943
1943
  - spec/integration/ssl/host_spec.rb
1944
1944
  - spec/integration/ssl/key_spec.rb
1945
- - spec/integration/test/test_helper_spec.rb
1946
1945
  - spec/integration/transaction/report_spec.rb
1947
1946
  - spec/integration/transaction_spec.rb
1948
1947
  - spec/integration/type/exec_spec.rb
@@ -2615,6 +2614,7 @@ files:
2615
2614
  - spec/unit/ssl/validator_spec.rb
2616
2615
  - spec/unit/status_spec.rb
2617
2616
  - spec/unit/task_spec.rb
2617
+ - spec/unit/test/test_helper_spec.rb
2618
2618
  - spec/unit/transaction/additional_resource_generator_spec.rb
2619
2619
  - spec/unit/transaction/event_manager_spec.rb
2620
2620
  - spec/unit/transaction/event_spec.rb
@@ -2789,7 +2789,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2789
2789
  - !ruby/object:Gem::Version
2790
2790
  version: 1.3.1
2791
2791
  requirements: []
2792
- rubygems_version: 3.0.6
2792
+ rubygems_version: 3.0.8
2793
2793
  signing_key:
2794
2794
  specification_version: 4
2795
2795
  summary: Puppet, an automated configuration management tool
@@ -3119,7 +3119,7 @@ test_files:
3119
3119
  - spec/fixtures/unit/provider/mount/parsed/solaris.fstab
3120
3120
  - spec/fixtures/unit/provider/mount/parsed/solaris.mount
3121
3121
  - spec/fixtures/unit/provider/naginator/define_empty_param
3122
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
3122
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt
3123
3123
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
3124
3124
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
3125
3125
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -3261,7 +3261,6 @@ test_files:
3261
3261
  - spec/integration/ssl/certificate_revocation_list_spec.rb
3262
3262
  - spec/integration/ssl/host_spec.rb
3263
3263
  - spec/integration/ssl/key_spec.rb
3264
- - spec/integration/test/test_helper_spec.rb
3265
3264
  - spec/integration/transaction/report_spec.rb
3266
3265
  - spec/integration/transaction_spec.rb
3267
3266
  - spec/integration/type/exec_spec.rb
@@ -3934,6 +3933,7 @@ test_files:
3934
3933
  - spec/unit/ssl/validator_spec.rb
3935
3934
  - spec/unit/status_spec.rb
3936
3935
  - spec/unit/task_spec.rb
3936
+ - spec/unit/test/test_helper_spec.rb
3937
3937
  - spec/unit/transaction/additional_resource_generator_spec.rb
3938
3938
  - spec/unit/transaction/event_manager_spec.rb
3939
3939
  - 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