Merge pull request #8875 from briancain/8716/master/dup-string-if-frozen-for-line-endings
Dup string if frozen for line endings
This commit is contained in:
commit
c0b54f74ea
|
@ -265,7 +265,7 @@ module VagrantPlugins
|
||||||
# or we're running on Windows.
|
# or we're running on Windows.
|
||||||
if !config.binary && @machine.config.vm.communicator != :winrm
|
if !config.binary && @machine.config.vm.communicator != :winrm
|
||||||
begin
|
begin
|
||||||
script.gsub!(/\r\n?$/, "\n")
|
script = script.gsub(/\r\n?$/, "\n")
|
||||||
rescue ArgumentError
|
rescue ArgumentError
|
||||||
script = script.force_encoding("ASCII-8BIT").gsub(/\r\n?$/, "\n")
|
script = script.force_encoding("ASCII-8BIT").gsub(/\r\n?$/, "\n")
|
||||||
end
|
end
|
||||||
|
|
|
@ -43,6 +43,37 @@ describe "Vagrant::Shell::Provisioner" do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with a script that was set to freeze the string" do
|
||||||
|
TEST_CONSTANT_VARIABLE = <<-TEST_CONSTANT_VARIABLE.freeze
|
||||||
|
echo test
|
||||||
|
TEST_CONSTANT_VARIABLE
|
||||||
|
|
||||||
|
let(:script) { TEST_CONSTANT_VARIABLE }
|
||||||
|
let(:config) {
|
||||||
|
double(
|
||||||
|
:config,
|
||||||
|
:args => "doesn't matter",
|
||||||
|
:env => {},
|
||||||
|
:upload_path => "arbitrary",
|
||||||
|
:remote? => false,
|
||||||
|
:path => nil,
|
||||||
|
:inline => script,
|
||||||
|
:binary => false,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
it "does not raise an exception" do
|
||||||
|
vsp = VagrantPlugins::Shell::Provisioner.new(machine, config)
|
||||||
|
|
||||||
|
RSpec::Expectations.configuration.on_potential_false_positives = :nothing
|
||||||
|
# This test should be fine, since we are specifically looking for the
|
||||||
|
# string 'freeze' when RuntimeError is raised
|
||||||
|
expect {
|
||||||
|
vsp.provision
|
||||||
|
}.not_to raise_error(RuntimeError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "with remote script" do
|
context "with remote script" do
|
||||||
|
|
||||||
context "that does not have matching sha1 checksum" do
|
context "that does not have matching sha1 checksum" do
|
||||||
|
|
Loading…
Reference in New Issue