Disable tests that fail on 2.6.x due to #15912

In Puppet 2.6.x there is a bug where a function may be incorrectly detected as
an rvalue when it is not, or not detected when it is. This means that in tests
the correct syntax for calling a function will be rejected. This disables
those tests on 2.6.x, as there is no straightforward way to write them to be
compatible with both 2.6.x and newer versions of Puppet.
This commit is contained in:
Patrick Carlisle 2012-08-10 11:43:36 -07:00
parent 09322ad943
commit e27eccb356
3 changed files with 13 additions and 0 deletions

View file

@ -6,6 +6,7 @@ describe Puppet::Parser::Functions.function(:getvar) do
describe 'when calling getvar from puppet' do describe 'when calling getvar from puppet' do
it "should not compile when no arguments are passed" do it "should not compile when no arguments are passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = '$foo = getvar()' Puppet[:code] = '$foo = getvar()'
expect { expect {
scope.compiler.compile scope.compiler.compile
@ -13,6 +14,7 @@ describe Puppet::Parser::Functions.function(:getvar) do
end end
it "should not compile when too many arguments are passed" do it "should not compile when too many arguments are passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = '$foo = getvar("foo::bar", "baz")' Puppet[:code] = '$foo = getvar("foo::bar", "baz")'
expect { expect {
scope.compiler.compile scope.compiler.compile
@ -20,6 +22,7 @@ describe Puppet::Parser::Functions.function(:getvar) do
end end
it "should lookup variables in other namespaces" do it "should lookup variables in other namespaces" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = <<-'ENDofPUPPETcode' Puppet[:code] = <<-'ENDofPUPPETcode'
class site::data { $foo = 'baz' } class site::data { $foo = 'baz' }
include site::data include site::data

View file

@ -6,6 +6,7 @@ describe Puppet::Parser::Functions.function(:has_key) do
describe 'when calling has_key from puppet' do describe 'when calling has_key from puppet' do
it "should not compile when no arguments are passed" do it "should not compile when no arguments are passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = '$x = has_key()' Puppet[:code] = '$x = has_key()'
expect { expect {
scope.compiler.compile scope.compiler.compile
@ -13,6 +14,7 @@ describe Puppet::Parser::Functions.function(:has_key) do
end end
it "should not compile when 1 argument is passed" do it "should not compile when 1 argument is passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = "$x = has_key('foo')" Puppet[:code] = "$x = has_key('foo')"
expect { expect {
scope.compiler.compile scope.compiler.compile
@ -20,6 +22,7 @@ describe Puppet::Parser::Functions.function(:has_key) do
end end
it "should require the first value to be a Hash" do it "should require the first value to be a Hash" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = "$x = has_key('foo', 'bar')" Puppet[:code] = "$x = has_key('foo', 'bar')"
expect { expect {
scope.compiler.compile scope.compiler.compile

View file

@ -7,33 +7,40 @@ describe Puppet::Parser::Functions.function(:merge) do
describe 'when calling merge from puppet' do describe 'when calling merge from puppet' do
it "should not compile when no arguments are passed" do it "should not compile when no arguments are passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = '$x = merge()' Puppet[:code] = '$x = merge()'
expect { expect {
scope.compiler.compile scope.compiler.compile
}.to raise_error(Puppet::ParseError, /wrong number of arguments/) }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
end end
it "should not compile when 1 argument is passed" do it "should not compile when 1 argument is passed" do
pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./
Puppet[:code] = "$my_hash={'one' => 1}\n$x = merge($my_hash)" Puppet[:code] = "$my_hash={'one' => 1}\n$x = merge($my_hash)"
expect { expect {
scope.compiler.compile scope.compiler.compile
}.to raise_error(Puppet::ParseError, /wrong number of arguments/) }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
end end
end end
describe 'when calling merge on the scope instance' do describe 'when calling merge on the scope instance' do
it 'should require all parameters are hashes' do it 'should require all parameters are hashes' do
expect { new_hash = scope.function_merge([{}, '2'])}.should raise_error(Puppet::ParseError, /unexpected argument type String/) expect { new_hash = scope.function_merge([{}, '2'])}.should raise_error(Puppet::ParseError, /unexpected argument type String/)
end end
it 'should be able to merge two hashes' do it 'should be able to merge two hashes' do
new_hash = scope.function_merge([{'one' => '1', 'two' => '1'}, {'two' => '2', 'three' => '2'}]) new_hash = scope.function_merge([{'one' => '1', 'two' => '1'}, {'two' => '2', 'three' => '2'}])
new_hash['one'].should == '1' new_hash['one'].should == '1'
new_hash['two'].should == '2' new_hash['two'].should == '2'
new_hash['three'].should == '2' new_hash['three'].should == '2'
end end
it 'should merge multiple hashes' do it 'should merge multiple hashes' do
hash = scope.function_merge([{'one' => 1}, {'one' => '2'}, {'one' => '3'}]) hash = scope.function_merge([{'one' => 1}, {'one' => '2'}, {'one' => '3'}])
hash['one'].should == '3' hash['one'].should == '3'
end end
it 'should accept empty hashes' do it 'should accept empty hashes' do
scope.function_merge([{},{},{}]).should == {} scope.function_merge([{},{},{}]).should == {}
end end