diff options
author | Brice Figureau <brice-puppet@daysofwonder.com> | 2009-07-28 19:56:34 +0200 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-08-01 11:15:29 +1000 |
commit | 3ebf148bf3d82d25e690aec6ec49975e0837e604 (patch) | |
tree | b94504992e575d8b4181440b90bdf510cf67ef8c /test | |
parent | ef68967f2b72e609a9d69e53771a61fd9f522149 (diff) | |
download | puppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.tar.gz puppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.tar.xz puppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.zip |
Enhance selector and case statements to match with regexp
The case and selector statements define ephemeral vars, like 'if'.
Usage:
case statement:
$var = "foobar"
case $var {
"foo": {
notify { "got a foo": }
}
/(.*)bar$/: {
notify{ "hey we got a $1": }
}
}
and for selector:
$val = $test ? {
/^match.*$/ => "matched",
default => "default"
}
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/data/snippets/casestatement.pp | 7 | ||||
-rw-r--r-- | test/data/snippets/selectorvalues.pp | 7 | ||||
-rwxr-xr-x | test/language/snippets.rb | 3 | ||||
-rw-r--r-- | test/lib/puppettest/parsertesting.rb | 5 |
4 files changed, 21 insertions, 1 deletions
diff --git a/test/data/snippets/casestatement.pp b/test/data/snippets/casestatement.pp index 955982819..66ecd72b9 100644 --- a/test/data/snippets/casestatement.pp +++ b/test/data/snippets/casestatement.pp @@ -56,3 +56,10 @@ case $yay { default: { file { "/tmp/existsfile5": mode => 711, ensure => file } } } + +$regexvar = "exists regex" +case $regexvar { + "no match": { file { "/tmp/existsfile6": mode => 644, ensure => file } } + /(.*) regex$/: { file { "/tmp/${1}file6": mode => 755, ensure => file } } + default: { file { "/tmp/existsfile6": mode => 711, ensure => file } } +} diff --git a/test/data/snippets/selectorvalues.pp b/test/data/snippets/selectorvalues.pp index cd8cf77a7..d80d26c36 100644 --- a/test/data/snippets/selectorvalues.pp +++ b/test/data/snippets/selectorvalues.pp @@ -34,9 +34,16 @@ $mode6 = $mode5 ? { 755 => 755 } +$mode7 = "test regex" ? { + /regex$/ => 755, + default => 644 +} + + file { "/tmp/selectorvalues1": ensure => file, mode => $mode1 } file { "/tmp/selectorvalues2": ensure => file, mode => $mode2 } file { "/tmp/selectorvalues3": ensure => file, mode => $mode3 } file { "/tmp/selectorvalues4": ensure => file, mode => $mode4 } file { "/tmp/selectorvalues5": ensure => file, mode => $mode5 } file { "/tmp/selectorvalues6": ensure => file, mode => $mode6 } +file { "/tmp/selectorvalues7": ensure => file, mode => $mode7 } diff --git a/test/language/snippets.rb b/test/language/snippets.rb index cfca10e13..5c7805c0a 100755 --- a/test/language/snippets.rb +++ b/test/language/snippets.rb @@ -237,6 +237,7 @@ class TestSnippets < Test::Unit::TestCase /tmp/existsfile3 /tmp/existsfile4 /tmp/existsfile5 + /tmp/existsfile6 } paths.each { |path| @@ -281,7 +282,7 @@ class TestSnippets < Test::Unit::TestCase end def snippet_selectorvalues - nums = %w{1 2 3 4 5} + nums = %w{1 2 3 4 5 6 7} files = nums.collect { |n| "/tmp/selectorvalues%s" % n } diff --git a/test/lib/puppettest/parsertesting.rb b/test/lib/puppettest/parsertesting.rb index 8186bf304..dee38eb3a 100644 --- a/test/lib/puppettest/parsertesting.rb +++ b/test/lib/puppettest/parsertesting.rb @@ -33,6 +33,11 @@ module PuppetTest::ParserTesting def safeevaluate(*args) evaluate() end + + def evaluate_match(othervalue, scope, options={}) + value = evaluate() + othervalue == value + end end def astarray(*args) |