Prevent generating environment variables with invalid empty names
This commit is contained in:
parent
159fca9d13
commit
25a2bdd279
|
@ -226,7 +226,9 @@ module Vagrant
|
||||||
ENV.each do |k,v|
|
ENV.each do |k,v|
|
||||||
if k.start_with?("VAGRANT_OLD_ENV")
|
if k.start_with?("VAGRANT_OLD_ENV")
|
||||||
key = k.sub(/^VAGRANT_OLD_ENV_/, "")
|
key = k.sub(/^VAGRANT_OLD_ENV_/, "")
|
||||||
h[key] = v
|
if !key.empty?
|
||||||
|
h[key] = v
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
require File.expand_path("../../../base", __FILE__)
|
||||||
|
|
||||||
|
require 'vagrant/util/env'
|
||||||
|
|
||||||
|
describe Vagrant::Util::Env do
|
||||||
|
context "with valid environment variables" do
|
||||||
|
before do
|
||||||
|
ENV["VAGRANT_TEST"] = "1"
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
ENV.delete("VAGRANT_TEST")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should execute block with original environment variables" do
|
||||||
|
Vagrant::Util::Env.with_original_env do
|
||||||
|
expect(ENV["VAGRANT_TEST"]).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should replace environment variables after executing block" do
|
||||||
|
Vagrant::Util::Env.with_original_env do
|
||||||
|
expect(ENV["VAGRANT_TEST"]).to be_nil
|
||||||
|
end
|
||||||
|
expect(ENV["VAGRANT_TEST"]).to eq("1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with invalid environment variables" do
|
||||||
|
it "should not attempt to restore invalid environment variable" do
|
||||||
|
invalid_vars = ENV.to_hash.merge("VAGRANT_OLD_ENV_" => "INVALID")
|
||||||
|
mock = expect(ENV).to receive(:each)
|
||||||
|
invalid_vars.each do |k,v|
|
||||||
|
mock.and_yield(k, v)
|
||||||
|
end
|
||||||
|
expect do
|
||||||
|
Vagrant::Util::Env.with_original_env do
|
||||||
|
expect(ENV["VAGRANT_TEST"]).to be_nil
|
||||||
|
end
|
||||||
|
end.not_to raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue